Mögliches Duplikat:
Ich habe einen Abschluss in Informatik, aber ich habe nicht das Gefühl, dass ich einem erfahrenen Programmierer nahe bin
Ich habe vor kurzem meinen Universitätsabschluss gemacht und bin seitdem Mitglied eines Entwicklerteams, in dem ich bei weitem der am wenigsten erfahrene Entwickler bin. In der Zwischenzeit hat der Rest des Teams 5-10 Jahre Erfahrung.
Ich war ein sehr guter Student und ein ziemlich guter Programmierer, wenn es um Aufgaben und Tests ging. Ich habe mit Erfolg an einigen Projekten gearbeitet, aber jetzt arbeite ich mit einer viel größeren Codebasis und die Lernkurve ist viel höher.
Ich habe mich gefragt, wie viele andere Entwickler ihre Karriere in Teams begonnen haben und wie sie gegangen sind. Wann ändert sich das? Wie kann ich den Prozess beschleunigen? Meine Senioren helfen mir, aber ich möchte großartig sein und jetzt meinen Wert zeigen.
quelle
University prepared me for computer science, but not really for software development.
Nein. Ich habe in den ersten 6 Monaten nach meinem Universitätsabschluss viel mehr über Programmieren / Software-Engineering gelernt als in den Jahren zuvor. Das bedeutet jedoch nicht, dass die Universität Zeitverschwendung war. Sie bereitete mich darauf vor und lieferte das Hintergrundwissen, auf dem ich aufbauen konnte.
Wenn ich jetzt zurückblicke, wusste ich immer noch nicht wirklich, was ich in 6 Monaten tat.
quelle
Bildung gibt Ihnen eine Grundlage, auf der Sie aufbauen können, bereitet Sie jedoch nicht auf die Softwareentwicklung im wirklichen Leben vor. Das kommt mit Erfahrung. Ich war definitiv in der gleichen Situation wie Sie, als ich anfing, für einen Job zu programmieren. Solange Sie lernen, Bücher lesen, Blog-Beiträge verfassen und das , was Sie lernen, in Ihrem Job anwenden , werden Sie sich verbessern. Der Schlüssel wendet an, was Sie lernen. Nur lesen hilft nicht, man muss aktiv neues Wissen anwenden.
quelle
Ich dachte definitiv, ich wäre es, aber ich war es nicht.
Vertrauen Sie mir, irgendwann in Ihrer Karriere werden Sie zurückkehren und an einem Code arbeiten, den Sie geschrieben haben, den Sie aber seit Jahren nicht mehr angerührt haben. Sie möchten unbedingt, dass kein anderer professioneller Entwickler diesen Code jemals sieht oder weiß, dass Sie ihn geschrieben haben. Das heißt, Sie wachsen.
quelle
In gewisser Weise ist das Erlernen einer Programmiersprache mit dem Erlernen einer natürlichen Sprache vergleichbar. In der Schule kann man einiges an Theorie lernen. Sie lernen die Grammatik und die Grundelemente des Wortschatzes und finden Sie ziemlich gut, bis Sie sich in einer echten Konversation mit einem Muttersprachler befinden und dann völlig verloren sind.
Die Art und Weise, wie Sie die Sprache wirklich lernen, bis Sie in der Lage sind, sich in einem Gespräch mit Muttersprachlern zu behaupten, besteht darin, die Sprache tatsächlich zu jeder Stunde und jeden Tag zu sprechen. Dies bedeutet normalerweise, irgendwo zu leben, wo es gesprochen wird. Und dann passiert etwas Interessantes. Obwohl das, was Sie in der Schule gelernt haben, an und für sich auf den Straßen eines fremden Landes wertlos ist, bietet es Ihnen eine gute, solide theoretische Grundlage, die das eigentliche Erlernen der Sprache erheblich erleichtert. (Das war zumindest meine Erfahrung mit Spanisch.)
Das Programmieren ist genauso. Was Sie in der Schule lernen, bereitet Sie nicht auf die Arbeit vor, die Sie als echter Programmierer erledigen müssen, aber (vorausgesetzt, Sie befinden sich in einer kompetenten Schule, die im Interesse der Popularität nicht alles bescheuert), hilft es Ihnen, sich vorzubereiten Wenn Sie lernen möchten, ein guter Programmierer zu sein, sind die grundlegenden Konzepte, die Sie benötigen, bereits vorhanden. (Das war zumindest meine Erfahrung mit dem Programmieren.) :-)
quelle
Viele gute Programmierer haben einen Universitätsabschluss in Informatik, meistens die gleichen, die sie gemacht haben.
Die Sache mit der Informatik ist, dass es, wie oben diskutiert, nicht dasselbe ist wie Programmieren. Viele Dinge, die ich an der Universität studiert habe, auf die ich im Grunde genommen nicht vorbereitet war - es gab viele Dinge, die mir wie akademischer Quatsch vorkamen, als ich Vorträge darüber hörte, aber ein paar Jahre später wünschte ich mir, ich würde es tun Ich hatte dem mehr Aufmerksamkeit geschenkt, als ich wieder ein paar Sachen lernte, die ich als nutzlos abgelegt hatte. Ich denke sogar, dass man ein paar Jahre Programmieren in einem kommerziellen Umfeld brauchen könnte, bevor man ein Informatik-Studium beginnt, wenn man das möchte.
Außerdem denke ich, dass man an der Universität oft nicht unbedingt lernen kann. Viele Dinge, die ich versehentlich gelernt habe oder die ich von anderen Entwicklern gelernt habe, waren sicherlich Dinge, die meine Dozenten und Studenten an der Universität wussten, aber ich hatte keine Ahnung, dass es nützlich wäre, sie zu verstehen. Die Befragung von Menschen über Probleme, die Sie haben, während Sie lernen, etwas zu tun (und das gilt wirklich für alles), macht den Lernprozess reibungsloser und weniger schmerzhaft. Die meisten Dinge, die Sie für sich selbst oder von anderen Menschen lernen können - da viele der Lektionen, die ich für mich selbst gelernt habe, aus meinen schmerzhaften Fehlern gelernt wurden, würde ich mich dafür entscheiden, von anderen Menschen zu lernen, wenn ich kann ...
quelle
Ich würde Brian Hurts Beitrag zitieren
Wer bezieht sich auch auf Joel Spolskys Undergraduate-Programmierung und brillanten Artikel mit dem Titel Who Killed the Software Engineer
All diese Diskussionen beschreiben die Realität ziemlich gut und beantworten meiner Meinung nach Ihre Frage mit "Nein", da die Universität Sie nicht zu einem guten Programmierer machen wird. Sie müssen sich selbst zu einem guten Programmierer machen.
Ich habe keinen Abschluss in CS, aber ich programmiere und entwickle seit 8 Jahren professionell Software. Alle Programmierkenntnisse, die ich habe, habe ich selbst gelernt.
quelle
Nein, ich gab vor, ein Programmierer zu sein und habe es auf die harte Tour gelernt. Ich habe meinen ersten Kunden als Freiberufler bekommen und habe sehr schlecht mit C / C ++ gekämpft und schließlich gewonnen. Ich erinnere mich, dass es einige Stunden gedauert hat, um zu verstehen, dass das Ausführen von malloc auf einer Struktur nicht ausreicht, um den Zeigern in der Struktur auch Speicher zuzuweisen.
quelle
Ich war ein ziemlich guter Programmierer, als ich meine Universität abschloss. Ich hatte auch Monate vor meinem Abschluss ein tolles Jobangebot (das ich für ein noch cooleres ablehnen konnte).
Der Schlüssel war, dass ich während des Schuljahres eine Menge Arbeit als Hobbyist, mit einem Webentwicklungsjob und hochwertigen Sommerpraktika bei IBM ("ExtremeBlue Speed-Teams" und das ExtremeBlue-Programm) geleistet hatte. Gute preprofessional Erfahrung werden lassen Sie ein wenig von dem Zeug Einstieg überspringen nach dem Studium.
(Das heißt, ich konnte in den ersten sechs Monaten bei einem Real Job (tm) noch viel besser programmieren. Nicht, dass ich danach fertig gewesen wäre, aber zu diesem Zeitpunkt zeigte sich wirklich viel.)
quelle
Ich kann Ihnen eine umgekehrte Antwort geben, da ich direkt von der High School zur Arbeit kam. Ich fing an, als selbstgedachter Programmierer zu arbeiten, und war fast sofort produktiv bei dem Projekt, das mir meine Arbeitgeber geben. Ich hatte einige Kollegen mit einem Abschluss in Informatik, die überhaupt nicht produktiv waren.
Im Laufe der Zeit haben einige diplomierte Mitarbeiter ihre Fähigkeiten erheblich verbessert, während andere dies nicht tun, und das hatte nichts mit ihrem GPA zu tun.
quelle
Die Universität lehrt Sie nicht, ein Programmierer der realen Welt zu werden. Ich vermute, dass dies bei vielen Jobs im Vergleich zu ihren Studiengängen ähnlich ist. Ich würde nicht sagen, dass ich mit meinem Abschluss nichts anfangen konnte, aber es war weitaus weniger nützlich, als 4 Jahre tatsächlich im Job zu verbringen.
Aber es ist okay. Für jeden Job, den ich angefangen habe, war ich wahrscheinlich unterqualifiziert. Wenn Sie sich Ihrer Fähigkeiten sicher sind und sich dem Lernen verschrieben haben, können Sie aufsteigen und den Job erledigen.
quelle
Ich glaube nicht, dass ich irgendwelche Fakten über das Programmieren im Allgemeinen gelernt habe, denen ich im College zumindest nicht ausgesetzt war. Klar, ich habe hier und da neue Programmiersprachen aufgegriffen, neue APIs, neue Codebasen und neue Tools gelernt, aber die allgemeinen Konzepte waren alle gleich nach der Schule vorhanden.
Was Sie mit der Erfahrung lernen, ist eine Art Instinkt, der Ihre Eingrenzung in einen gemeldeten Fehler beschleunigt oder Sie direkt zu der robustesten Methode führt, um neuen Code zu schreiben. Wenn Sie neu sind, können Sie immer noch denselben Fehler beheben oder dieselbe Funktion implementieren, aber es dauert länger und es ist wahrscheinlicher, dass Sie zurückkehren müssen, um ein unvorhergesehenes Problem zu beheben.
Deshalb ist es wichtig, dass erfahrene Kollegen Sie betreuen. Gehen Sie zu ihnen und sagen Sie: "So sollte das wohl gehandhabt werden. Können Sie sich einen besseren Weg vorstellen?" Das gibt Ihnen den Vorteil, es selbst herauszufinden und aus den Erfahrungen anderer zu lernen.
quelle
Ich war ein besserer Programmierer als meine Universitätslehrer.
Dann lernte ich großartige Programmierpraktiken, als ich anfing zu arbeiten.
quelle
Ein guter Programmierer lernt immer ... er lernt einen anderen Weg, um dies zu tun, oder einen besseren Weg, um dies zu tun. Was auch immer Ihre Programmierkollegen Ihnen beibringen müssen, ich würde zuhören.
quelle
Eines der Dinge, die niemand erwähnt hat, ist, dass die Probleme, die Sie in der Schule lösen müssen, absichtlich niedergeschlagen sind, damit Sie leicht erkennen können, wie Sie als spezifische Technik eingesetzt werden, die Ihnen beigebracht wird. In der Regel wissen Sie, welche Technik Sie für dieses spezielle Problem anwenden sollen, da es sich um die Technik handelt, die Sie gerade im Unterricht behandelt haben. Ganzsemesterprojekte sind etwas besser, aber im Vergleich zur realen Welt in Umfang und Komplexität immer noch begrenzt.
Projekte im realen Leben sind chaotisch und entwickeln sich über Jahre hinweg weiter (unsere Software ist über zehn Jahre alt und hat sich in dieser Zeit kontinuierlich verändert) und werden von vielen verschiedenen Menschen mit vielen verschiedenen Fähigkeiten berührt. Möglicherweise berühren Sie noch eine 10 Jahre alte Datenbankversion und können keine neueren SQL-Techniken verwenden. Sie verwenden möglicherweise ein Tool, das vor 8 Jahren großartig war, das Sie aber in der Schule nicht gelernt haben, weil es von etwas anderem abgelöst wurde. Aber das Unternehmen möchte nicht monatelange Entwicklungsarbeit auf sich nehmen, um es vollständig zu ersetzen.
Sie stecken in einer Welt fest, in der die Zeit für die Entwicklung stark von dem abhängt, wofür der Kunde bezahlt, und von den manchmal (normalerweise) künstlichen Fristen.
Möglicherweise müssen Sie Tools verwenden, nach denen der Client speziell gefragt hat. Möglicherweise haben Sie vage oder wenig sinnvolle Anforderungen. Möglicherweise haben Sie es mit einem sehr komplexen Geschäftsbereich zu tun, von dem Sie nichts wissen und daher nicht einmal beurteilen können, ob die Anforderungen sinnvoll sind.
Die Probleme der realen Welt sind in keiner Weise vergleichbar mit den netten, sauberen Problemen, die sie dir in der Schule bereiten. Wenn Sie die meiste Zeit des ersten Jahres nicht verwirrt sind und sich fehl am Platz fühlen, würde ich mir Sorgen um Sie machen.
quelle
Es ist schlimmer als das ... nach ein paar Jahren in diesem Job werden Sie sich ziemlich gut fühlen bei dem, was Sie gelernt haben. Aber dann werden Sie den Job wechseln und Ihr neues Unternehmen (oder vielleicht sogar eine neue Gruppe innerhalb desselben Unternehmens) wird die Dinge anders angehen, und Sie werden das Gefühl haben, wieder ganz oben zu stehen. Es wird unterschiedlichen Code, unterschiedliche Codierungsstandards, unterschiedliche Tools und unterschiedliche Prozesse geben, und nach zwei Tagen werden Sie sich fragen, ob Sie bei Ihrem letzten Job überhaupt etwas gelernt haben. Sie werden dieses Mal schneller über das Gefühl hinwegkommen, dass kein Fisch mehr im Wasser ist, aber es wird immer noch länger dauern, als Sie möchten.
Bei jedem Jobwechsel gibt es eine Anpassungsphase. Mit zunehmender Erfahrung wird es kürzer, aber es ist immer da.
quelle