Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.018
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Ich sehe da schon ein großes Problem. Das sind alles Leute, die die Software historisch hysterisch gewachsen gesehen haben und auch dafür verantwortlich waren. Die fühlen sich da pudelwohl, denn das ist deren Baby. Wenn ihr da aber mit PL/SQL rumhühnert, gehe ich stark davon aus, dass sie sich in den 30 Jahren nicht weitergebildet haben. Die Softwareentwicklung sah vor 30 Jahren anders aus, als heute. Ich hab auch mit solchen Leuten zu tun und ich schlage oft meine Hände über den Kopf, wenn ich deren Code sehe. Es hapert schon oft an den Grundlagen und wenn ich da so mit einigen Beratern über Senior Entwickler spreche, sind sie auch oft mit solchen Menschen konfrontiert, die ihre Werkzeuge überhaupt nicht kennen und noch beratungsresistent sind. Das muss nicht alle Senior Entwickler betreffen aber heutige Entwickler haben oft ganz andere Vorstellungen über die Entwicklung selbst. Genau das habe ich mich auch gefragt. Es klingt so, als sei man der Meinung, dass man nach 6 Monaten alleine vorankommen muss und jegliche Hilfe untersagt. Bei einer hysterisch gewachsenen Software ist das aber oft schwer. Einige kommen damit besser klar, andere wieder nicht. Man darf eines nicht vergessen: Es sind auch nur Menschen. Die Frage sollte also nicht "Was sind sinnvolle Aufgaben für Einstellungstests?" lauten, sondern "Wie können wir neu Eingestellte besser unterstützen?", denn offenbar halten sie es bei euch nicht lange aus. Ihr solltet also nicht nur die Fehler bei den Bewerbern suchen, sondern auch die Fehler bei euch und da wäre Pair Programming schon mal ein Anfang, um sie zu begleiten. Evtl. sogar noch ein paar interne, fachbezogene Schulungsangebote machen. Offenbar haben sie ja Probleme, den Ablauf der Software zu verstehen. Und ja, neue Mitarbeiter ist ein Invest, der nicht nach exakt 6 Monaten vorbei ist. Wir planen minimum 6 Monate ein, bis ein neuer Entwickler einigermaßen mit unserem Code zurecht kommt.
  2. Und das bekommt man mit einem Einstellungstest wie gelöst? Vielleicht solltet ihr euch Fragen, ob ihr evtl. nicht am "Not invented here"-Syndrom leidet. Wenn ihr schon sagt, dass bei euch kaum Frameworks zum Einsatz kommen, klingt es schon sehr danach, als hättet ihr euch eine eigene Welt aufgebaut, anstatt auf gängige Standards zu setzen. Bei PL/SQL schlackern mir dann echt die Ohren. Ich hab auch viel mit PL/SQL zu tun und ich fluche über die Sprache wie ein Rohrspatz, weil die Sprache so inkonsequent ist. Dass dann bei größeren Aufgaben, Überforderungen auftreten, ist dann auch normal.
  3. Zumal ich auch oft LeetCode in einer produktiven Software nicht sehen möchte, denn bei LeetCode geht es oft darum, den kürzesten Code zu schreiben und nicht leicht verständlich und wartbaren Code. Auch sieht der reelle Alltag eines Entwicklers doch anders aus. Ja, es sind gute Übungen, die man so mal nebenbei machen kann aber ich würde denen jetzt kein so hohen Stellenwert geben. Ich hab auch so ein Kollege, der die tollsten Hacks und Tricks drauf hat und recht exotische Patterns kennt aber was bringt nachher so ein Code, wenn ihn keiner versteht? Daher bin ich auch der Meinung von @KeeperOfCoffee. Stellt den Bewerbern ein paar Fragen zu den Frameworks, die sie in ihrem CV angegeben haben.
  4. "Webentwickler" ist kein Ausbildungsberuf, daher kann dies keine richtige Umschulung sein, denn eine Umschulung wird mit einer Prüfung der zuständigen Kammer (in Hamburg die Handelskammer) beendet. Es handelt sich dann eher um einen Kurs, der vielleicht ebenfalls mit einer Prüfung und einem Zertifikat endet, aber das Zertifikat ist dann kaum was wert, weil der Umfang des Kurses vom Leistungsträger selber bestimmt wird und dies dann zu einem nicht anerkannten Berufsabschluss führt. Zum Beispiel könnte ich auch ein Kurs als "Webentwickler" anbieten und behandle 18 Monate nur HTML und CSS. Damit hab ich zwar wenig Erfolg aber machen dürfte ich es. "Fachinformatiker in Fachrichtung Anwendungsentwicklung" (kurz FIAE) ist ein Ausbildungsberuf. Im Gegensatz zum "Webentwickler" dürfen sich nur diejenigen als Fachinformatiker bezeichnen, die auch eine Fachinformatiker-Ausbildung abgeschlossen haben. "Webentwickler" darf sich hingegen jeder nennen. Der Inhalt der Ausbildung wird durch den Ausbildungsrahmenplan (für Betriebe) und Rahmenlehrplan (für Berufsschulen) festgelegt. Diese wiederrum werden von Dachverbänden, Gewerkschaften und dem Bundesinstitut für Berufsbildung (BBIB) ausgearbeitet und die zuständigen Kammern überwachen die Ausbildung. Das ist schon mal eine ganz andere Qualität. Ob die Ausbildung gut oder schlecht ausgeführt wird, ist noch mal ein anderes Thema. Und natürlich kann auch ein FIAEler später als Webentwickler arbeiten und ich denke, dass dies auch heutzutage überwiegend geschieht, da der allgemeine Tenor in Richtung Webanwendung geht.
  5. Ja, das muss man. Allerdings sollte dann der Standard-Konstruktor den parametrisierbaren Konstruktor aufrufen. Ich hätte auch noch die privaten Felder mit final versehen, um Seiteneffektfehler zu verhindern. public class Punkt { private final int x; private final int y; public Punkt() { this(0, 0); } public Punkt(int x, int y) { this.x = x; this.y = y; } //... }
  6. Ich vermute, dass nur sehr wenige Firmen sowas haben. Wir kalkulieren auch minimum 6 Monate ein, bis ein neuer Mitarbeiter produktiv ist. Mache dir da mal keinen Stress.
  7. Nennt mich altmodisch aber interessant finde ich, wenn man sich dann mal Jobangebote auf Plattformen wie Stepstone anschaut, findet man überwiegend die üblichen Personaldienstleister. Von Start-ups und co. keine Spur. Offenbar gibt es nur noch interessante Jobs über Headhunter. Allerdings gehen mir diese Leute echt auf den Keks.
  8. Witzigerweise sind x_Koord und y_Koord nicht mal die richtigen Bezeichner, da x und y Ordinaten sind und erst beide zusammen eine Koordinate bilden. 😄 Abstand_Ursprung() soll ja den Abstand vom Mittelpunkt des Koordinatensystems (wenn x und y gleich 0 sind) bis zum Punkt errechnen. Also kann man auch einen Punkt mit x = 0 und y = 0 definieren und dann Abstand_Punkt() aufrufen. Man sieht ja im Urspungscode, dass der Satz des Pythagoras in zwei Methoden verwendet wird. Im refaktorisierten Code wird der Satz des Pythagoras nur noch in einer Methode verwendet, was die Fehleranfälligkeit minimiert. Hier wurde also das sog. DRY-Prinzip angewendet.
  9. Ich verstehe nicht, wieso eine Verstärkung Halterung genannt wird und Halterung wiederrum Steckplatz. Man sollte schon beim gleichen Namen bleiben, damit man versteht, was gemeint ist. Was genau willst du mit dem Dictionary erreichen? Ein Dictionary ist ja dafür gedacht, dass man mit Hilfe eines Schlüssels einen Wert ermitteln kann. Ich sehe nicht, wozu du den Schlüssel benötigst. Also kann es auch eine ganz normale Liste sein. Am Besten erklärst du das konkrete Problem und zeigst nicht unbedingt dein Code. Außerdem sehe ich da sehr viele Fehler im Code. z.B. sollte deine Methode Aufwertung() keine Konsolenausgabe machen, sondern eine Exception werfen, weil dies nicht erlaubt ist. Stell dir vor, du willst dein Spiel mal mit einer grafischen Oberfläche erweitern. Da kommst du dann mit Konsolenausgaben nicht mehr weit.
  10. Man könnte auch einfach eine Liste von Tuple nehmen und dann mittels ToLookup() oder ein GroupBy() eine Gruppierung daraus machen. using System.Linq; //... List<(Type, int)> list = new (); list.Add((typeof(string), 5)); list.Add((typeof(string), 10)); // ... list.GroupBy(x => x.Item1); Die Elemente vom Tuple kann man auch noch benennen oder man macht gleich daraus ein Record.
  11. Kannst du vielleicht das konkrete Problem beschreiben? Ich verstehe nicht, wieso wozu du mehrfach den selben Key in das Dictionary schreiben möchtest. Ein Dictionary ist nun mal ein Schlüssel-Wert-Paar, wobei ein Schlüssel eindeutig sein muss. Wenn du mehrere Integer-Werte pro Typ ablegen möchtest, könntest du den Wert auch immer addieren oder du machst ein Dictionary<Type, List<int>>
  12. Soviel dazu... Mag sein, dass sie bei Discord intern Gilde genannt werden. Nach außen aber Server.
  13. Nein, UML wird nicht dazu genutzt, wozu es gedacht war. UML wird, wenn überhaupt, als nachträgliche Dokumentation genutzt, weil es einfach zu schwerfällig und unflexibel ist, um damit wirklich eine Software zu modellieren. Ich persönlich kenne auch keine einzige Firma, die wirklich mit UML Software modelliert. Dazu auch? Inzwischen beherrscht jede IDE automatische Codevervollständigung, sodass das Schreiben von Code schneller von statten geht, als die Modellierung mittels UML. Eine Software liegt unter ständigen Wandel. Kramst du dann ständig die Diagramme aus, um erstmal dort Anpassungen am Modell zu machen, bevor du dann den Code anpasst? Man sollte sich nicht zu sehr auf UML versteifen. Ja, beim Brainstorming können Diagramme und andere Grafiken helfen aber macht es so leichtgewichtig, wie es geht und fangt nicht an zu diskutieren welche Pfeilart beim Klassendiagramm nun die richtige sei. Diskutiert über das fachliche und haltet euch nicht mit UML-Firlefanz auf. Man sollte aber überholte Dinge gerne mal hinterfragen. Genauso, wie ich jedes Mal das ER-Modell hinterfrage. Wieso fängt jeder mit einem ER-Modell an? Damit stellt man die Persistenz in den Vordergrund, obwohl die Geschäftslogik im Vordergrund stehen sollte. Also das, womit man sein Geld verdient. Die Persistenz ist nur ein Detail und ob ich da jetzt eine relationale Datenbank oder was völlig anderes nehme sollte egal sein. Zumal relationale Datenbanken und Objektorientierung auch nicht mal wirklich zusammenpassen. Dafür braucht man wieder einen umständlichen O/R-Mapper, den man z.B. bei dokumentenbasierten Datenbanken gar nicht braucht und somit auch das ER-Modell überflüssig macht.
  14. Es gibt keine spezielle Zwischenprüfung für "Verkürzer". Jedes halbe Jahr gibt es eine Zwischen- und eine Abschlussprüfung statt, da es auch Azubis gibt, die im Februar anfangen und nicht im August. Außerdem gibt es noch diejenigen, die bei der Abschlussprüfung durchgefallen sind, die nach 6 Monaten die Prüfung wiederholen können.
  15. Ja und? Was genau willst du damit sagen? Das ist die Prüfung von Herbst 2021. Also alt.
  16. Und das sind Aufgaben für eine Einstellung?🤨 Kein Wunder, dass alle über den Fachkräftmangel jammern...
  17. Ach so und du hast gleich erkannt, was richtig und was falsch ist? Richtig oder falsch entwicklen gibt es eigentlich nicht, wenn am Ende des Tages das erwartete Ergebnis rauskommt. Was es aber gibt, ist das einhalten von Richtlinien und Qualitäten. Ich würde auch mal behaupten, dass selbst heute die meisten Entwickler nicht wissen, was Objektorientierung wirklich hervorgebracht hat. (Spoiler: Vererbung von Polymorphie ist es nicht.)
  18. Die Mär vom "falschen Lernen"... Das lese ich so oft und ist auch totaler Quatsch, wenn ich sehe, wie so manche überstudierte Entwickler mit teuren Zertifikaten und 20+ Jahren Berufserfahrung entwickeln. Da bekomme ich oft einen Schreikrampf. Ja, viele Tutorials und Bücher sind nicht das Gelbe vom Ei, besonders nicht diese, die gleich mit einer grafischen Oberfläche anfangen. Von diesen würde ich abraten aber was soll an Autodidakt so schlimm sein? Im Grunde ist jeder Entwickler ein Autodidakt. Jeder, der sich mit einer neuen Technologie auseinandersetzt, lernt es autodidaktisch. Man rennt ja nicht gleich zur nächstbesten Schulung. Um in seinem Job gut zu werden, muss man aber sein Können reklektieren können. Feedback einholen, Feedbach verstehen und auch Feedback berücksichtigen. Das gilt sowohl für angehende Azubis, als auch für Senior-Entwickler. Wer das nicht kann, ist auch kein guter Entwickler. Darum, lasst doch einen angehenden Azubi in einer objektorientierten Sprache prozedural entwickeln, wenn er es halt erstmal nicht besser weiß. In der Ausbildung bekommt er ja das Feedback, um sich zu verbessern. Jeder hat doch mal klein angefangen. Blick doch mal auf euren ersten Code zurück. Der war mit Sicherheit auch nicht clean und wenn alle studierten Entwickler und ausgelernten Fachiformatiker sauber entwickeln würden, gäbe es doch überhaupt keinen Legacy Code. Die Welt ist aber voll davon. Wenn, dann würde ich aber schon mit der Sprache anfangen, die auch im Betrieb verwendet wird, sofern sie schon bekannt ist. Also um gute Tipps geben zu können, müsste man erstmal wissen, ob die Sprache bekannt ist.
  19. Wie soll die Formel =(A1:A99999)<>"" funktionieren? A1:A99999 ist ein Vektor und kein einzelner Wert. Die Formel wird immer FALSCH zurückliefern. Darüber hinaus ist das extrem inperformant. Formeln werden bei jeder Zellenänderung neu berechnet und jedes Mal erzeugt er diesen enorm großen Vektor. Je mehr du von diesen Formeln verwendest, desto mehr Zeit braucht er für die Berechnung, was irgendwann dazu führt, dass Excel aus sehr langsam wird. Mir schließt sich auch nicht, was das soll. Benutze doch einfach intelligente Tabellen. https://www.hands-on-excel.com/intelligente-tabellen/ Die haben den Vorteil, dass sie noch eine spezielle Zellenangabe besitzen, die sich dynamisch verändert, sodass man solche Spielereien wie A1:A99999 nicht benötigt. https://support.microsoft.com/de-de/office/verwenden-von-strukturierten-verweisen-für-excel-tabellen-f5ed2452-2337-4f71-bed3-c8ae6d2b276e Verstehe ich nicht. Was soll denn bei =ZEILE(A2:A99999) Auch rauskommen? Lies dir doch mal die Dokumentation durch: "Gibt die Zeilennummer des Bezuges zurück." Was soll er denn bei der Formel zurückgeben, wenn du ihm 99998 Zeilen gibst? Da kannst du auch gleich 2 schreiben. Ich glaube einfach, dass du nicht verstanden hast, was du da eigentlich tust, da du in allen Punkten die Funktionen völlig falsch verwendest.
  20. Ist das die vollständige Lösung? Das ist syntaktisch komplett falsch. Ein INSERT-Statement hat keine WHERE-Klausel. Auch werden hier überhaupt keine Daten selektiert. Meine Lösung würde so aussehen: CREATE TABLE MitgliedArchiv AS SELECT * FROM Mitglied LEFT JOIN Angebot ON Angebot.mitgliedid = Mitglied.idmitglied WHERE Angebot.mitgliedid IS NULL DELETE FROM Mitglied WHERE idmitglied IN (SELECT idmitglied FROM MitgliedArchiv) In der MitgliedArchiv-Tabelle liegen ja nun die inaktiven Mitglieder. Also muss man doch jetzt beim Löschen einfach nur die IDs der inaktiven holen.
  21. Eine Tabelle stellt ja kein ER-Modell dar, da das R - also die Beziehungen - fehlen. Also ist dein ER-Modell nichts weiter, als die Darstellung einer einzigen Entität. Google Sheets ist ja auch keine Datenbankmanagementsystem, sondern ein Tabellenkalkulationsprogramm.
  22. Die Ausbildungsordnung sowie der Ausbildungsrahmenplan sind Bundesweit gültig. Das war schon immer so. Lediglich bei der Gestaltung Abschlussprüfungen hat (oder hatte?) BW eine Sonderwurst. Und ja, dies ist der aktuelle Ausbildungsrahmenplan. Sieht man auch in der Fußzeile: Die vorherige Ausbildungsordnung bzw. der vorherige Ausbildungsrahmenplan waren von 1997. Du siehst also, dass sich die Dinge nicht so schnell ändern.
  23. Weil Anzahl der Möglichkeiten nicht linear steigt, sondern exponentiell. 1 Stelle = 94^1 = 94 Möglichkeiten 2 Stellen = 94^2 = 8.836 Möglichkeiten 3 Stellen = 94^3 = 830.584 Möglichkeiten ...

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...