Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2076
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    50

Alle Inhalte von Whiz-zarD

  1. Ich frage mich, wofür überhaupt das Skript auf jedem Client gebraucht wird? Die benötigten Informationen werden schon im AD gespeichert. Die Daten müssen doch nur noch aufbereitet werden. Z.B. über ein ETL-Prozess.
  2. Wirklich optimal ist der Code auch nicht, da du gnadenlos jeden Teilabschnitt durchläufst, auch wenn klar ist, dass schon ein Teilabschnitt nicht genug Kapazität besitzt und die Route somit ausgeschlossen werden kann. Also müsstest du die Abbruchbedingung der for-Schleife noch anpassen. Aber hier sieht man die Tücken, wenn eine Funktion mehr als eine Sache tun soll. Es wird schnell unübersichtlich. Zum einen wird man am Anfang der Funktion mit Variablendeklarationen erschlagen. Variablen sollten so lokal wie möglich deklariert werden. z.B. streckeOkay brauchst du nur in der foreach-schleife aber sie wurde außerhalb des Scopes deklariert und steht somit der gesamten Funktion zur Verfügung. Zum anderen muss man sehr viel "Schmutz" einbauen, damit der Code auch funktioniert, wie z.B. streckeOkay = true; so etwas stört den Lesefluss. Ja, ich habe sowas auch drinnen aber im Nachhinein ist die Variante mit der Initialisierung des günstigsten Preises auf -1 wohl eine bessere Alternative und ich könnte mir die isInitialized-Variable sparen. Man sollte sich immer im klaren sein, dass Code mehr gelesen wird, als geschrieben. Daher sollte der Code sauber und klar sein. Man kann schon an den Kommentaren erkennen, dass der Code eben nicht klar und sauber ist, weil die Kommentare den Code erklären müssen. Wenn man Kommentare schreiben muss, um den Code zu erklären, sollte man die Finger von der Tastatur nehmen und mal überlegen, wieso es ein Kommentar bedarf und nicht der Code für sich selbst sprechen kann? Der folgende Code ist schon großer Mindfuck. if ((streckeOkay == true && guenstigsterPreis == -1.0) || (streckeOkay == true && preis < guenstigsterPreis && guenstigsterPreis != -1.0)) { ... } Das muss man mehrmals lesen, um es überhaupt richtig zu verstehen. Man kann es auch einfacher schreiben: if (streckeOkay && (preis < guenstigsterPreis || guenstigsterPreis == -1.0)) { ... } Dann wird es vielleicht schneller deutlicher, was gemeint ist und bedarf ggf. kein Kommentar mehr. Auch in Sachen Testbarkeit ist es nicht klug, mehr Dinge auf einmal zu tun (Streckenabschnitt überprüfen, Preis berechnen und günstigste Route ermitteln). Wenn in der Funktion ein Fehler auftreten sollte, muss die gesamte Funktion überprüft werden und das ist wesentlich aufwendiger, als wenn man in einer Unterfunktion den Fehler findet. Daher: Funktionen so klein wie möglich halten und Teilaufgaben in Unterfunktionen ausgliedern. Die Funktion findeRoute() soll die günstigste Route finden. Nicht mehr und auch nicht weniger. Es ist nicht ihre Aufgabe, den Preis zu ermitteln oder schauen, welche Routen geeignet sind. Das sollen Unterfunktionen erledigen, die dann isoliert betrachtet und getestet werden können. Das ist vielleicht alles Meckern auf hohem Niveau und für die Abschlussarbeit reicht es aber im produktiven Einsatz wäre so ein Code mehr hinderlich als nützlich. Man hat hier schon angefangen Code zu optimieren (eine Route wird einmal durchgegangen) aber durch die Optimierung muss man einiges drumherum bauen, was eben stört und man hat sich damit sogar einiges verbaut.
  3. Nicht unbedingt. Man könnte doch auch ein Projekt anlegen, wo man noch nicht weiß, was die Tasks sind. Auch das kann man mit "nicht unbedingt" beantworten. Möchte man im Vorwege Personen einem Projekt zuteilen, ohne dass sie explizit schon Tasks im Projekt übernommen haben, so braucht man diese Tabelle. Es ist also eine Frage des späteren Workflows der Projektverwaltung.
  4. Da habe ich auch so meine Bedenken, dass es da welche gibt, die Punkte abziehen, wenn es von der offiziellen Lösung abweicht. Zu mal viele der offiziellen Lösungen falsch sind.
  5. Ich würde versuchen, nicht alles in eine Methode zu klopfen, sondern daraus mehrere Methoden machen, um da ein Überblick zu behalten. Mein Anfang würde so aussehen: findeRoute(Gewicht : Integer) : Integer { int indexGuenstigsteRoute; double preisGuenstigeRoute; bool isInitialized; for(int i = 0; i < Routen.Length; i++) { route = Routen[i]; if(hatGenugKapazitaet(route, Gewicht)) { preisRoute = berechnePreis(route); if(preisRoute < preisGuenstigeRoute || !isInitialized) { indexGuenstigsteRoute = i; preisGuenstigeRoute = preisRoute; isInitialized = true; } } } return indexGuenstigsteRoute; } Jetzt müsste man noch die Methode hatGenugKapazitaet() und berechnePreis() implementieren: hatGenugKapazitaet(Route : Route, Gewicht : Integer) : Boolean { for(int i = 0; i < Route.Length - 1; i++) { if(holeStreckeGewicht(route[i], route[i + 1]) < Gewicht) return false; } return true; } berechnePreis(Route : Route) : double { double preis = 0; for(int i = 0; i < Route.Length - 1; i++) { preis = preis + holeStreckePreis(route[i], route[i + 1]); } return preis; } Glücklich bin ich aber mit der Lösung nicht. Da sind noch einige Dinge, die man evtl. verbessern kann. Zu deiner Frage: Wir nehmen die Route A - D - E - B: Wenn es genug Kapazität bei A - D gibt aber bei D - E nicht, dann muss false zurückgegeben werden, weil die Route von A nach B in einer Teilstrecke nicht genug Kapazität hat. So verstehe ich zumindest die Aufgabe.
  6. strecken_beginn = Zeile.Spalten[0]; strecken_ende = Zeile.Spalten.Anzahl - 1; frachtkapazitaet = holeStreckeGewicht(strecken_beginn, strecken_ende); Das kann doch nicht funktionieren, da strecken_beginn immer A und strecken_ende immer B ist. Demnach ist frachtkapazitaet immer gleich. Auch ist strecken_ende bei dir ein Integer ist und kein String. Demnach müsste man z.B. bei der zweiten Route ( A - C - B ) die freie Kapazität für A - C und C - B ermitteln. Hier müsste man also eine verschachtelte Schleife bauen, die für alle Streckenabschnitte ermittelt, ob eine Strecke genügend Kapazität liefert
  7. Ganz ehrlich: Warum sollte man sich unnötig so einen Stress antun? Bei guten schulischen Leistungen kann man schon im Vorwege vertraglich regeln, die Ausbildung früher zu beenden. Selbst wenn man das im Vorwege nicht tut, kann man weiterhin die Abschlussprüfung vorziehen. Im Endeffekt kommt man da auch mit 21 Jahren raus und es ist wesentlich stressfreier. Mit Abitur ist man ca. mit 19 Jahren fertig. Wenn man dann die Ausbildung anfängt und dann auf 2 Jahre verkürzt, ist man 21. Auch ohne Abendschule. Das eine Jahr würde ich mir schon gönnen, um das Leben stressfreier zu machen. Eines sollte man nicht vergessen: Wir Menschen werden immer älter. Warum also schon zum Anfang des Berufsleben so einen Stress machen? Wir müssen noch lang genug arbeiten.
  8. Ich finde, du solltest vielleicht erst mal von deinem hohen Ross runterkommen. Mag vielleicht nicht so sein aber deine Texte klingen doch sehr überheblich. In den letzten zwei Jahren habe ich viele solcher "Wunderkinder" gesehen, die von sich behaupten, sie seien die coolsten Hacker, weil sie das eine oder andere Projekt auf Github veröffentlicht und in einer Firma 0815-Arbeit getan haben, was Mami und Papi arrangiert haben, weil der kleine Sprössling ja so gut mit Computer umgehen kann aber was sie produziert haben, war für den professionellen und alltäglichen Einsatz nicht zu gebrauchen. Sie sind ja noch Kinder ohne Erfahrung. Nur weil du die Syntax und ggf. einige Frameworks einer Sprache kennst, heißt es noch lange nicht, dass du auch ein guter Entwickler bist, denn dazu gehört z.B. auch ein Verständnis für, wie man sauberen und gut strukturierten Code schreibt, denn Code wird mehr gelesen, als geschrieben. Was ich schon merkwürdig finde ist, dass du schreibst du hättest Erfahrung mit Visual Studio aber in deiner Liste der Programmiersprachen taucht kein Visual Basic, C# oder F# auf. Vielleicht meinst du ja mit C++ aber auch Microsofts C++/CLI. Zwischen C++ und C++/CLI gibt es noch viele Unterschiede. Wie man Reverse Engineering gut beherrschen kann, ist mir auch ein Rätsel. Nur weil man evtl. ein paar Sprungmarken umschreiben kann, um somit die Passwortabfrage zu umgehen, heißt es noch lange nicht, dass man den tatsächlichen Algorithmus dahinter verstanden hat. Ich selber würde erst mal das Abitur fertig machen. Schaden kann es nicht und wenn man gute schulische Leistungen erbringt, kann man auch die Ausbildungszeit verkürzen oder die Abschlussprüfung vorziehen. Ein Abbrechen des Abiturs halte ich nicht für schlau.
  9. Eine App ist eine Software. Also kannst du auch eine App als Projektarbeit wählen. Allerdings muss dir klar sein, dass du für die gesamte Projektarbeit nur maximal 70 Stunden zur Verfügung steht. Also mit Anforderungsanalyse, Dokumentation, Test, etc. Eine komplette App wirst du in dieser Zeit wohl nicht schaffen (je nachdem wie groß die App werden soll). Daher wird es wohl eher ein Teilbereich, wie z.B. die Implementierung eines Feature.
  10. 2015 war die letzte Express-Version. Es gab da mehrere Express-Editionen für unterschiedliche Aufgaben (Desktop, Web, UWP, Quellcodeverwaltung). Die Express-Version wurde aber nun komplett eingestellt, weil sie aufgrund der Community-Version überflüssig wurde. Du entwickelst aber mit ASP.NET keine Client-Anwendung, sondern eine Client-Server-Anwendung. Der Code wird also auf dem Server ausgeführt und der Client stellt das Ergebnis nur grafisch dar. Mit dem neueren ASP.NET MVC benutzt stark das MVC-Pattern (Model-View-Controller) und zwingt den Entwickler auch dazu, dies einzuhalten. Da brauchst also schon ein bisschen technisches Verständnis, wie dieses Pattern funktioniert. Du hast dort auch kein GUI-Designer wie in WinForms- oder WPF-Anwendungen.
  11. Ich hätte mir da auch ein Struct gebaut, was mir die benötigten Informationen der Textdatei bereitstellt und hätte das Struct mittels einer Funktion gefüllt. Der Name der Funktion getDate() suggeriert auch was anderes. Vor allem ist der Parameter "anzahl" totaler Unfug. Erstmal stimmt der Name nicht, weil man nicht irgendeine Anzahl (von was?) reinreicht, sondern die Zeilennummer, wo das Datum steht. Warum muss der Aufrufer der Funktion dies überhaupt wissen? Das nächste ist, dass der Aufrufer der Funktion wissen muss, dass nur zwei Werte erlaubt sind (18 und 33). Alle anderen Zahlen führen zu einem NULL. Wenn sich auch mal die Zeilennummer ändert, dann muss man auch noch zu allem Übel zwei Stellen im Code anpassen. Da die getDate()-Funktion sowohl das Datum von Zeile 18 als auch das Datum aus Zeile 33 zurückgibt, macht die Funktion zwei Dinge und somit erhöht sich auch die Komplexität der Funktion und wird schlechter les- und testbar. Da sie eben im Grunde auch zwei Mal das gleiche tut, haben wir hier sogar noch eine Codeverdoppelung und müssen im Falle eines Fehlers wieder zwei Stellen im Code anpassen.
  12. Mir ist das schon alles klar. Ich will nur sagen, dass es sich die IHK schwerer macht, als es wirklich sein muss. Ich arbeite beruflich selbst mit vielen Gesetzestexten, die Banken betreffen und erlebe es immer wieder, dass Banken Gesetzestexte zu streng oder falsch interpretieren oder nach dem Motto: "Das haben wir schon immer so gemacht!" arbeiten und somit sich selbst eine hohe Bürokratie und somit hohe Kosten aussetzen, die der Gesetzgeber gar nicht verlangt, weil man die Gesetzeslage nach ihrer eigentlichen Intention nicht hinterfragt. Man sollte sich also einfach mal überlegen, was man der Projektarbeit erreichen möchte? Möchte man die Azubis mit Bürokratie, Situationen und Schumelleien nerven, die in der Praxis in dieser Form nicht vorkommen oder möchte man überprüfen, ob sie die berufliche Handlungsfähigkeit erlangt haben? Wenn zweites: Welche Rolle spielt es denn, ob in der Zeitplanung 67 oder 70 Stunden stehen? Es kann ein Indiz sein, dass es nicht erreicht wurde, ja aber ausschließen kann man es nicht. Sicherlich ist es schwer, solche Abschlussprüfungen zu bewerten aber ich denke, dass viele Bewertungen eh schon aus dem Bauch und/oder aus Erfahrungen entstehen, anstatt aus vorgegebenen Vorschriften, weil man eh schon weiß, dass Theorie und Praxis auseinandergehen. Als ich damals den Projekt-Antrag zur Abschlussprüfung als Mechatroniker bei der IHK (im Jahr 2003) eingereicht hatte, musste es sogar noch mit Uhrzeiten geschehen, wann ich welches Werkstück anfertige. Das war absoluter Bullshit. Inzwischen werden aber immer mehr Ausbildungsordnungen dahingehend verändert, dass sog. gestreckte Abschlussprüfungen absolviert werden. Die damalige Zwischenprüfung wird somit ein Teil der Abschlussprüfung. Auch die Ordnung des Mechatronikers wurde 2011 dahingehend verändert. Diese Änderung betrifft inzwischen sogar viele Handwerks- und auch kaufmännische Berufe. Ob man auch den Fachinformatiker dahingehend verändern möchte, weiß ich nicht aber die Entwicklung zeigt schon, dass man mit den Abschlussprojekten nicht das erreicht hat, was man eigentlich wollte und zwar ob die Azubis die berufliche Handlungsfähigkeit erlangt haben?
  13. Aber genau damit macht es sich die IHK und den Azubis das Leben schwerer, als es in Wirklichkeit sein muss. Die Ausbildungsordnung erzählt nichts von exakten 35/70 Stunden, sondern das tut einzig und allein die IHK. Die Vorgabe des Gesetzgebers ist lediglich nur, dass die Stunden nicht überschritten werden dürfen. Demnach muss man sich ein Projekt aussuchen, was mit ein bisschen Luft nach Oben in diese Zeit passt und das ist wirklich nicht viel, was da reinpasst. Wenn man jetzt anfängt, das Projekt in der Planung exakt auf 35/70 Stunden aufzublähen, kommt man zwangsweise immer in die Bredouille, dass man Zeiten verschieben muss oder sogar Zeiten, die dadrüber oder dadrunter liegen verschweigen muss. Auch wenn ein Projekt laut Dokumentation exakt 35/70 Stunden dauerte, kann man sich nicht sicher sein, dass es wirklich so ist. Der Azubi hat nur bewiesen, dass er Zahlen addieren kann und sie so verschieben kann, dass 35/70 als Endergebnis rauskommt. Ein Prüfer kann also gar nicht wissen, ob der Azubi jetzt nur 10 oder 100 Stunden mit dem Projekt beschäftigt war, daher finde ich die Begründung mit der Vergleichbarkeit falsch. Man macht sich hier nur was vor. Im Endeffekt bleibt hier also nichts anderes übrig, als den Worten des Azubis zu vertrauen und jedes Abschlussprojekt individuell zu benoten und dann spielt es keine Rolle, ob man 33 oder 67 Stunden dafür benötigt hat. Ich mein, es gibt ja auch keine Punktabzüge, wenn man schneller mit der schriftlichen Prüfung fertig ist, sondern nur Abzüge, wenn man dadrüber liegt, weil man die restlichen Aufgaben nicht mehr schaffen konnte. Genauso kann es auch in der praktischen Prüfung aussehen. Der eine kennt vielleicht ein paar mehr Kniffe und kann Problem X schneller lösen als ein anderer Azubi. Wie soll man denn anhand eines Zeitplans aus benoten? Azubi 1 braucht fürs Aufsetzen eines Servers eine Stunde. Azubi 2 braucht dafür eine halbe Stunde. Wird Azubi 2 nun dafür besser benotet? Wie gesagt, im Endeffekt bleibt eh nichts anderes übrig, als jedes Abschlussprojekt individuell zu benoten und dann kann man auch auf diese Vergleichbarkeit des Zeitplans scheißen.
  14. Regeln der Objektorientierung: Alles ist ein Objekt Objekte kommunizieren durch das Senden und Empfangen von Nachrichten (welche aus Objekten bestehen) Objekte haben ihren eigenen Speicher (strukturiert als Objekte) Jedes Objekt ist die Instanz einer Klasse (welche ein Objekt sein muss) Die Klasse beinhaltet das Verhalten aller ihrer Instanzen (in der Form von Objekten in einer Programmliste) Um eine Programmliste auszuführen, wird die Ausführungskontrolle dem ersten Objekt gegeben und das Verbleibende als dessen Nachricht behandelt Du kannst also keine Methode implementieren, die nicht in einer Klasse steckt. Eine .exe ist im Grunde auch nichts anderes als eine .dll. Die .exe besitzt aber als Information, dass sie ausführbar ist und weil sie ausführbar ist, braucht sie einen Einstiegspunkt. Unter C# gilt als Einstiegspunkt immer eine Klasse, die die statische Main()-Methode implementiert. Du kannst ja mal gerne versuchen, eine weitere Klasse zu erzeugen, die eine statische Main()-Methode besitzt. Du wirst ein Kompilierfehler bekommen, weil er nun nicht weiß, welchen Einstiegspunkt er nehmen soll. Die Methode muss auch statisch sein, weil sie ein Merkmal der Klasse ist und nicht einer Instanz. Im Zuge mit .Net Core wird es auch wohl in ferner Zukunft keine .exe mehr geben, sondern nur noch .dll, weil man die Anwendungen für verschiedene Systeme kompilieren kann und über die Runtime sagt, welche .dll man starten möchte.
  15. Namespaces dienen dazu, Klassen eindeutig zu identifizieren. Angenommen du entwirfst die Klasse Auto und lädst eine Drittbibliothek, die ebenfalls eine Klasse Auto besitzt. Welche Klasse soll dann genommen werden? Deine Klasse Hello, kannst du auch im vollqualifizierten Namen schreiben: HelloWorld.Hello Beispiel: Hello hello1 = new Hello(); HelloWorld.Hello hello2 = new HelloWorld.Hello(); Beide Zeilen machen exakt das selbe. Die zweite Zeile benutzt aber den vollqualifizierten Namen der Klasse. Du gibst ja auch was aus der Konsole aus. Die Steuerung der Konsole machst du ja über die Klasse Console. Die Klasse befindet sich im Namespace System. Darum findest du in der ersten Zeile auch using System; Mit der using-Direktive weiß der Compiler, wo er nach den Klassen suchen soll, wenn du nicht den vollqualifizierten Namen der Klasse angibst. Genauso gut könntest du auch diese Zeile löschen und anstatt Console.WriteLine() schreibst du System.Console.WriteLine().
  16. Das ja, weil die zuständige Stelle die berufliche Handlungsfähigkeit prüfen muss aber die Planung, die die Stellen haben wollen, schießen meiner Meinung über das Ziel hinaus. Wer sagt das? Die Ordnung sagt dazu nichts. Genauso wenig wie das BBiG. Die Ordnung erlaubt sogar, darunter zu bleiben. Es geht um die berufliche Handlungsfähigkeit und nicht um willkürliche Regeln der zuständigen Stellen und wenn man die berufliche Handlungsfähigkeit auch in 65 Stunden beweisen kann, wieso nicht? Edit: Ich sage nicht, dass die Vorgaben der IHK sinnlos seien aber es sollten meiner Meinung Empfehlungen sein, und keine exakten Richtlinien, die auf biegen und brechen eingehalten werden müssen. Allein schon aus gutem Menschenverstand wird man versuchen die 35/70 Stunden vollzubekommen, um somit ein besseres Ziel zu erreichen aber je exakter und detaillierter ein Plan ist, desto eher wird dieser nicht eingehalten.
  17. Nein, eben nicht, weil das Projekt die 35/70 Stunden nicht überschreiten darf. Das heißt aber nicht, dass es exakt 35/70 Stunden sein muss. Ich mache gerade mein AdA-Schein und hatte vorgestern meine schriftliche Prüfung. Ich habe die Ordnung auch direkt vor mir liegen. Ich bin also noch up-to-date. Ja, sowas passiert. Daher soll man auch ein Projekt wählen, was überschaubar ist. Wir reden hier ja nicht von 30 PT, sondern höchstens von ca. 4 oder 8 PT. Wobei in dieser Zeit auch die Analyse, Dokumentation, etc. drinnen ist. Da fällt also für die tatsächliche Arbeit viel Zeit weg. Natürlich kann es passieren, dass ein Azubi sich auch hier verschätzt aber warum nicht? Das Umgehen mit solchen Situationen gehört auch zur beruflichen Handlungsfähigkeit.
  18. Die Vorgabe in der Ausbildungsordnung heißt höchstens 35/70 Stunden und nicht exakt 35/70 Stunden. Das ist ein himmelweiter Unterschied. Also könnte man sehr wohl ein Projekt auch unter diesen Stunden absolvieren. Es darf nur nicht mehr sein. Also könnte sehr wohl ein Azubi ein 2 Stunden-Projekt machen. Die Frage ist dann nur, ob das reicht, um die berufliche Handlungsfähigkeit zu beweisen? Allein deswegen sollte ein Azubi schon bemüht sein, die Stunden voll auszufüllen aber eine zwingende Angabe von exakt 35/70 Stunden halte ich für nicht sinnvoll. Das ist aber nicht wirtschaftlich, wenn man 40 Stunden arbeitet aber nur 35 Stunden bezahlt bekommt, denn der Azubi soll "belegen, daß er Arbeitsabläufe und Teilaufgaben zielorientiert unter Beachtung wirtschaftlicher, technischer, organisatorischer und zeitlicher Vorgaben selbständig planen und kundengerecht" umsetzen kann. Ebenso ist es nicht wirtschaftlich, wenn man zwar 35/70 Stunden angibt aber tatsächlich nur 10 Stunden benötigt. Für einen selbst ist es wirtschaftlich ja, aber nicht für den Kunden und hier greift das Wort "kundengerecht". Also sollte man auch mit der Zeitplanung offen und ehrlich umgehen und das bedeutet nun mal, wenn die Planung sagt, dass ein Projekt 60 Stunden dauert, dann dauert es 60 Stunden und nicht 70. Wobei man gerade in der Softwareentwicklung sich von Zeitangaben langsam verabschiedet. Man kann sich aber jetzt hier streiten, wie man lustig ist. Ändern kann man in diesem Fall eh nichts mehr aber ich finde schon, dass man auch mal darüber spricht, diskutiert und auch die Umstände hinterfragt, denn nur so kann auch was geändert werden.
  19. Ja und Nein. Ja, es gehört zum Job und Nein, das sollte in der Ausbildung nicht der Normalfall sein, denn Google kann gute Ausbildung nicht ersetzen. Der Azubi sollte schon in der Lage sein, die Aufgabe zu lösen. Wenn er aber sich erstmal die Grundlagen zu SQL, PHP sich alleine beibringen muss, wird es schnell demotivierend. Ein Ausbilder oder ein Ausbildungsbeauftragter sollte bestmöglich immer zur Rat und Tat zur Seite stehen. Dass es nicht immer möglich ist, ist klar aber es sollte nicht der Normalzustand sein. Dann bringt auch die Ausbildung nichts. Schon mal gerade über PHP sehr viel Schrott im Internet zu finden ist, da PHP eine Sprache ist, die gerne von Anfängern gewählt wird, die dann gefährliches Halbwissen in den Äther pusten. Genau wegen diesem Desaster haben wir es zu verdanken, dass viele Webseiten selbst heute noch Passwörter mit MD5 hashen und dies als "Verschlüsselung" verkaufen.
  20. Ein Ausbilder ist dafür da, dass er ausbildet, ansonsten macht die Ausbildung keinen Sinn und man könnte sich ein Buch kaufen, es durchlesen und auf die Ausbildung scheißen... Die Datenbank-Abfrage ist eine simple SQL-Abfrage. Hast du mit SQL schon Erfahrung? Um E-Mails mit PHP zu verschicken, gibt es die mail()-Funktion. Hast du mit PHP schon mal gearbeitet? Ich persönlich bin aber kein Freund von stiller Post mit E-Mails. Auch ist die Lösung sehr fehleranfällig. Was ist, wenn der Server nicht erreichbar ist? Oder die E-Mail nicht versendet werden kann? etc.
  21. Da ist das Klassendiagramm eben sehr inkonsequent, weil im Klassendiagramm auch private Felder und private Methoden aufgelistet werden sollen, die mit der Schnittstelle nach Außen nichts zu tun haben. Private Felder- oder Methoden sind ebenfalls vom Entwickler abhängig. Der Entwickler kann also durchaus auf die Idee kommen, einen Einzeiler in eine Methode zu packen, damit diese Zeile einen sprechenden Namen hat, wenn es nicht sofort ersichtlich ist, was diese Zeile eigentlich tut. Diese Methode würde ebenfalls im Klassendiagramm auftauchen aber ohne den Kontext zu kennen, wird es schwer, zu verstehen, was sie dort soll. Wenn man also schon solche Details weglässt, wie die Definition der Liste, dann sollte im Klassendiagramm auch nur die Schnittstelle nach Außen und deren Abhängigkeiten sichtbar sein, denn alles andere ist Sache des Entwicklers und auch der verwendeten Sprache. Die aufgeführten Felder brauche ich in C# nicht mal und könnte sie als Properties abbilden. Der Compiler macht daraus zwar private Felder aber sie wären im Code nicht sichtbar. In Java bräuchte man sie hingegen schon. Auch der aufgeführte Konstruktor ist in C# nicht relevant, weil Felder über den Memory Manager immer mit einem Default-Wert initialisiert werden. Man kann aus Zusätzlicher Absicherung die Initialisierung hinschreiben aber die würde der Compiler wegoptimieren. Das Klassendiagramm vermischt also zwei Sachen: Es wird vorgegeben, wie die Klasse nach Außen und Intern auszusehen hat aber gleichzeitig gibt man den Entwickler freie Hand, wie er die Verbindungen implementiert. Das passt einfach nicht zusammen.
  22. Du kannst im Trigger den Usernamen erfragen und daraufhin nachschauen, ob er überhaupt Schreibgeräte auf die jeweilige Spalte hat.
  23. HTML und CSS sind keine Programmiersprachen. Ganz böse! Streiche das bitte aus deinem Wortschatz!. If-Schleifen gibt es nicht. Als FISI wird man auch nicht so viel programmieren. Man schreibt vielleicht hin und wieder mal ein kleines Skript, was vielleicht if-Abfragen oder Schleifen besitzt, aber man wird nicht anfangen, Datenstrukturen, wie binäre Bäume oder Caches implementieren. Inzwischen geht zwar der Trend in Richtung DevOps aber da sind meist beide Fachrichtungen vertreten. Und dennoch könnte die Frage aufkommen, denn der Betrieb muss auch schauen, ob der Azubi wirklich für das Thema interessiert oder zu der "Ich will irgendwas mit Computer machen!"-Fraktion gehört und nach einigen Wochen doch kein Bock mehr hat, weil er bemerkt, dass "irgendwas mit Computer" doch nicht nur "Zocken" bedeutet. Wenn man dann ein Ausbildungsplatz in der IT-Branche sucht aber im Zeugnis eine 4 in Informatik steht, könnte es also schon den Eindruck erwecken, dass er eben zu der o.g. Fraktion gehört. Auf die Berufsschule sollte sich aber eine Firma nicht verlassen. Die haben ihren eigenen Plan, der vom Ausbildungsrahmenplan unabhängig ist. Ich würde halt die Wahrheit erzählen, dass du dich halt sehr für das Thema interessierst und auch privat dich damit ein wenig beschäftigst aber halt noch Verständnisprobleme hast. Wie schon gesagt wurde, es geht hier um eine Ausbildung. Da braucht man keine Vorkenntnisse. Bei einem Vorstellungsgespräch geht es erst mal nur ums Kennenlernen und abzuwägen, ob du die gesamte Ausbildungszeit und darüberhinaus motiviert bleibst.
  24. Es sind ja nicht nur die Frameworks. Auch objektorientierte Sprachen folgen nicht immer den gleichen Konzepten. Es gibt auch objektorientierte Sprachen, die klassenlos sind, wie z.B. JavaScript. Da reicht es nicht, einfach die Syntax zu lernen, wenn man aus der Java- oder C#-Welt kommt. Eine Unterart der Objektorientierung ist ja noch die aspektorientierte Programmierung, wie z.B. AspectJ. Wenn man sich hingegen PHP anschaut, dann ist es eher eine Mischung aus OOP und prozeduraler Programmierung. Auch gibt es noch weitere Paradigmen, außer Objektorientierung, wie z.B. funktionale Programmierung. Da kommt man mit OOP überhaupt nicht weit. Beispiele wären dafür z.B. F# oder Haskell. Dann gibt es sogar Sprachen, die OOP und funktionale Programmierung mischen, wie z.B. Scala.
  25. Ist zwar richtig aber sowohl Java als Webplattform als auch ASP.NET verlieren ihre Bedeutung im Web, da der Trend Richtung Single Page Applications (SPAs) und Web-APIs geht. Im Frontend-Bereich werden dann JavaScript-Frameworks wie z.B. AngularJS oder React eingesetzt und im Backend ist es dann egal, welche Sprache man nimmt. Man ist dort nicht mehr so auf ein Technologie-Stack beschränkt, sondern kann das einsetzen, was am Besten für eine Situation ist. Das Frontend lässt sich dann auch leicht gegen eine andere Technologie austauschen, da die UI explizit vom Technologie-Stack der Logik getrennt wird. Dies ist bei ASP.NET oder JavaServer Pages nicht möglich. Ich persönlich finde ASP.NET und Java Server Pages für kleine Applikationen zu schwergewichtig und für größere Applikationen, bei denen z.B. Nebenläufigkeiten (z.B. aufgrund von langen Berechnungszeiten) wichtig sind, ungeeignet. Auch verbraten diese Technologien sehr viel Rechenkapazitäten beim Rendern vom HTML, was auch der Client übernehmen könnte, was eben ein weiterer Vorteil von SPAs ist. Um auf das Topic zurückzukommen: Ich denke auch, dass Java derzeit noch mehr verwendet wird. Vor allem weil auch für Android Java verwendet wird aber Java ist mit seinen Sprachfeatures schon etwas rückständig. C# holt da gerade massiv auf, weil es nun dank .Net Core auch Crossplattform-tauglich wird und es unterstützt auch self-containing, sodass man nicht mal mehr das .Net-Framework installieren braucht, sondern die erforderlichen .Net-Komponenten können gleich in die Binärdatei gepackt werden.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...