Wir hatten einen Gastdozenten an unserer Schule, der sich mit den Absolventen befasste und nicht das von ihm erwartete Können erreichte, d. H. Kenntnisse einer großen kompilierten Sprache wie Java, C ++ oder C #, einer Skriptsprache wie Python oder Ruby, eines Webframeworks. Welche anderen Fähigkeiten sollten Ihrer Meinung nach für den Abschluss des Studiums unbedingt erforderlich sein?
9
Antworten:
Bei weitem würde ich Lernbereitschaft sagen. Das College soll Ihnen nicht die Fähigkeiten vermitteln, die Sie benötigen, um Programmierer zu werden. Es soll Ihnen die Fähigkeiten beibringen, die Sie benötigen, um diese Fähigkeiten zu erlernen .
quelle
Neue Absolventen brauchen mehr als nur den Wunsch zu lernen, sie brauchen eine Besessenheit des Lernens, ein Verständnis für das Lernen und eine feste Grundlage in der Realität von Software. Es ist mir im Allgemeinen egal, welche Sprachen Sie kennen, aber jeder Junior muss:
Geschichte verstehen . Die Informatik ist ein gut erforschtes Gebiet mit vielen gelösten Problemen. Wenn Sie diese Tatsache kennen, können Sie aus dem lernen, was vor Ihnen liegt. Selbst zu wissen, dass es eine reiche Geschichte gibt, aus der ich mein Wissen abbauen kann, ist mehr als viele Absolventen. Dazu gehören Dinge wie Big-O-Notation, Geschichte der Algorithmen, Prinzipien der Propheten (Knuth, K & R, Hofstdater usw.) und allgemein akzeptierte Praktiken und Muster.
Wisse, dass es gelöst werden kann . Ich bin immer überrascht, wenn ein Entwickler von einem Problem überrascht wird. Ein Teil des Lernens zu lernen ist das einfache Prinzip, dass Probleme immer leicht lösbar sind. Sobald Sie dies wissen, rahmt es Ihr Denken ein, um eine vernünftige Antwort zu finden.
Zersetzung verstehen . Probleme können nicht nur gelöst werden, sondern der Weg dazu ist so einfach wie Teilen und Erobern. Reduzieren Sie ein Problem auf einfachere Komponenten, und Ihre Antwort wird immer angezeigt.
Wissen, wie man misst . Neue Entwickler müssen nicht nur Probleme zerlegen können, sondern auch wissen, wie sie Fakten über diese Probleme sammeln können. Wie lang? Wie groß? Wie schnell? Wie viele? Einfache Fakten sind ein Schritt zum Verständnis und zum objektiven Denken. Annahmen ohne Fakten zu treffen, ist eine einfache Möglichkeit, sich im Problembereich zu verlieren.
Sei objektiv . Alle Probleme können einfach zerlegt, gemessen und verstanden werden. Die Probleme, die nicht verstanden werden können, erfordern lediglich eine zusätzliche Zerlegung, Messung und ein zusätzliches Verständnis. Es hat keinen Sinn, wütend oder frustriert zu werden, und es ist auch nicht produktiv, über Theorien zu streiten oder Schuldzuweisungen zu geben. Jedes irrationale Verhalten oder jede irrationale Überzeugung im Zusammenhang mit dem Lösen von Problemen ist Gift, was es sehr schwierig macht, Lösungen zu finden.
Bevorzugen Sie Muster und Prinzipien . Sie werden auf Dutzende von richtigen Möglichkeiten stoßen, Dinge, Sprachen, Programmiermodelle, Computerarchitekturen und sogar technische Methoden zu tun. Es gibt keinen einzigen richtigen Weg, aber es gibt solide zugrunde liegende Konzepte, die Sie immer wieder anwenden können. Lernen Sie, diese Muster zu sehen, da sie Ihr Lernen und Denken bei jedem Schritt des Weges leiten.
quelle
quelle
Als Arbeitgeber werde ich nur Leute als Programmierer beschäftigen, die:
Nach meiner Erfahrung verfügen weniger als 5% der Absolventen der Informatik, die sich für Programmierjobs bewerben, tatsächlich über diese Fähigkeiten. Dies sind die Mindestfähigkeiten, die erforderlich sind, um kommerziell nützlich zu sein, und vor allem ist nicht jeder in der Lage, diese Fähigkeiten zu erlernen.
Andere nette Dinge sind:
Diese erleichtern die Integration in das bestehende Entwicklungsteam, sind jedoch Fächer, die normalerweise am Arbeitsplatz unterrichtet werden können.
quelle
Ich hatte einmal ein Team, das ich mit größtenteils neu graduierten Mitarbeitern "geerbt" hatte, und ich hatte die Erfahrung, dass diejenigen, die "neben" dem Studium echte Programmierung machten (um etwas mehr Geld zu verdienen), die fähigsten Teammitglieder waren. Daher ist Erfahrung der Schlüssel und es spielt keine Rolle, welche Sprache.
Wenn Sie jedoch nachsehen, wonach Personalvermittler suchen (auf allen gängigen Websites für Personalvermittler wie jobserver.com usw.), ist es interessant zu beobachten, dass viel nach C ++, C #, Java gefragt wird, aber auch nach anderen gesucht wird und Auch "exotische" Dinge wie COBOL gibt es noch.
quelle
Der Lernprozess in diesem Beruf endet nie. Man muss ständig lernen und sich verbessern, sonst "fällt" er sehr schnell aus dem Spiel.
quelle
Die anderen Antworten sind gut, aber ich würde sagen, dass die Nummer 1 der übersehenen Fähigkeiten an der Universität tatsächlich Software-Engineering zu sein scheint .
Die Grundkurse zum Unterrichten von OOP und einer Sprache wie Java sind großartig, aber warum schreiben Studenten (zumindest an meiner örtlichen Universität) im 3. und 4. Jahr Compiler und Betriebssysteme, anstatt zu lernen, wie man eine gute Architektur identifiziert und erstellt, wie Anforderungen zu analysieren und daraus eine Liste technischer Spezifikationen zu erstellen, und vielleicht am wichtigsten, was der Unterschied zwischen gutem Code, der funktioniert, und schlechtem Code, der funktioniert, ist.
Es ist wie unsere Universitäten fast wollen am laufenden Band produzieren Programmierer anstelle von Software - Ingenieuren . Ich würde niemals jemanden einstellen, der keine technischen Fähigkeiten aufweist.
quelle