it-swarm.com.de

Wie man ein erfolgreicher Programmierer ohne CS-Abschluss ist

Haftungsausschluss (Bitte lesen Sie vor dem Springen, um zu antworten):

Ich habe eine Reihe von Fragen gesehen, die denen ähneln, die ich stellen möchte. Hier sind einige ähnlich Fragen.

IMHO Sie sind weder vollständig das, was ich frage, noch sind sie so gründlich, wie ich es mir erhoffe (ich möchte weder die Antworten auf die folgenden Fragen abwischen, noch diskreditiere ich die Fragesteller, ich möchte nur ein sein etwas gründlicher):

Kann ein CS-Abschluss einem älteren Programmierer zugute kommen?

https://softwareengineering.stackexchange.com/questions/80024/importance-of-certifications-for-Java-programmer-without-bs-degree

https://softwareengineering.stackexchange.com/questions/81591/in-the-absense-of-a-cs-degree-how-can-i-fill-in-the-gaps-so-to- sprechen

Bedeutung des CS-Abschlusses bei der Bewerbung um Entwicklungsjobs?

Lassen Sie mich klar sein, ich frage nicht Folgendes:

  • Wie ich mir das Programmieren von Grund auf beibringe (ohne Abschluss in CS)
  • Wie ich mich als guter Softwareentwickler vermarkte (ohne Abschluss in CS)
  • Wie man einen hochbezahlten Job als Softwareentwickler bekommt (ohne Abschluss in CS)

Ein kleiner Kontext:

Nachdem ich Haftungsausschlüsse aus dem Weg habe, möchte ich meine Frage konkretisieren und mit einer kurzen Geschichte meiner Erfahrung als Softwareentwickler beginnen.

Zunächst einmal hatte ich unglaublich viel Glück. Ich habe mehrere Stellenangebote erhalten (ein paar schwere Backend-PHP/MySQL-Projekte und mehrere WP7-Apps in XAML/C #), durch die ich wirklich alles gelernt habe, was ich über Softwareentwicklung weiß. Fast alle meiner Softwareentwicklungsjobs waren Jobs, für die ich nicht zu Recht qualifiziert war (und das habe ich meinen Arbeitgebern klar gemacht, bevor sie mich eingestellt haben). Ich möchte mir keine Ehre machen, wo es nicht fällig ist, aber ich würde sagen, dass perfekte Demut verzichtet auf Bescheidenheit .

In fast jedem einzelnen Entwicklungsjob, den ich hatte, habe ich die Erwartungen meines Arbeitgebers übertroffen und mich als wertvolles Kapital erwiesen. Es gibt natürlich Ausnahmen1 . Aber mein Punkt ist, dass ich ziemlich intelligent bin und mir selbst beibringen konnte, was ich wissen musste, um in meinem Job erfolgreich zu sein. Mit jedem Job, den ich hatte, wurde ich mehr und mehr gedehnt.

Ich besuche den Campus der niversity of Washington in Seattle und arbeite derzeit in meinem vierten Jahr mit zwei verbleibenden Jahren an einem Mathematik-Abschluss. Während der verschiedenen Jobs, die ich hatte (siehe mein Lebenslauf wenn Sie diese Liste wollen), habe ich auch als Vollzeitschüler die Schule besucht.

Wie ich denke, würden die meisten Entwickler zustimmen, die typischen allgemeinen Grundstudiengänge zu studieren, einschließlich EinführungskursProgrammierung Kurse ABSOLUT PALES im Vergleich zum Schreiben von echtem Code, Gebäude echt)2 Produkte, die mit awesome Menschen arbeiten und das Leben von Benutzern positiv beeinflussen3 .

Also ... im Laufe der Zeit ... habe ich viel mehr Zeit und Energie damit verbracht, zu arbeiten, anstatt mich auf mein Studium zu konzentrieren. Manchmal habe ich sehr schrecklich gespielt, aber größtenteils konnte ich mit meinen Noten über Wasser bleiben.

Das Informatikprogramm an der UW ist jedoch sehr , sehr , sehr , sehr wettbewerbsfähig.

Es war also keine Überraschung für mich, als ich vom Programm abgelehnt wurde. Zweimal. Ironischerweise erhielt ich in demselben halbstündigen Fenster, in dem ich die immer höfliche, wenn auch entmutigende Ablehnungsbenachrichtigung per E-Mail erhielt, einen Anruf von Amazon, der mir ein Sommerpraktikum anbot4 als SDE.

Wenn ich mich bei anderen Herren in meinem Alter (21) umsehe, die dieselben Ziele wie ich in der Softwareentwicklung verfolgen, fühle ich mich ziemlich gut darin, wo ich bin, was ich lerne, wer ich bin und was Ich kann. Es gibt natürlich viel, viel, viel brillantere 21-Jährige da draußen als ich. Ich will damit nicht sagen, dass ich mich in einer Menschenmenge abhole, nur dass ich das Gefühl habe, nicht miserabel hinter dem Fortschritt meines durchschnittlichen Kollegen zu stehen .

Ich bin zuversichtlich, dass ich in der Welt der Software erfolgreich sein kann. Noch wichtiger ist, dass ich mir meiner Fähigkeit und meinem Wunsch sicher bin, weiter zu wachsen, zu lernen und peinlich gedemütigt zu sein, wenn ich es wirklich brauche.

Mathematik-Abschluss

Ich verfolge einen Mathematik-Abschluss mit dem alleinigen Zweck, einen Abschluss zu haben. Es gibt Leute, die sagen, ich sollte jetzt abbrechen und anfangen zu arbeiten (wie ich Gelegenheit dazu hatte), und es gibt Leute, die sagen, ich sollte mein Studium wirklich beenden. Ich habe mich aus ganz anderen Gründen entschlossen, meinen Abschluss zu machen, als es in beiden Lagern üblich ist. Bitte ermutigen Sie mich in dieser Angelegenheit nicht auf die eine oder andere Weise. Betrachten Sie das Problem "geschlossen" :)

* DEEP BREATH * ... Entschuldigung, das ist länger als ich erwartet hatte.

Dies ist im Wesentlichen meine Frage:

  • Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?
  • Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

  • Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

Hier sind die Schritte, die ich bereits unternehme:

  1. Fragen Sie die Entwickler-Community (dieser Beitrag)
  2. Verfolgen Sie Mentoring mit erfahrenen Entwicklern, die einen ähnlichen Karriereweg mit mir teilen
  3. Definieren Sie kurz- und langfristige "Lernziele" und nachfolgende Lehrpläne, in denen die Themen des Studiums beschrieben werden
  4. Schreiben Sie weiterhin Code und arbeiten Sie an Projekten, für die ich eine Leidenschaft habe

Wenn Sie so weit gekommen sind, verdienen Sie ein Cookie :) Ich weiß es zu schätzen, dass Sie mit mir tragen.

Also ... Entwicklungsgemeinschaft, erfahrene Entwickler, Kommilitonen, die im selben Boot wie ich sitzen, welchen Rat hätten Sie?

Denken Sie auch daran, dass meine Haftungsausschlüsse oben in diesem Beitrag darüber, wonach ich [~ # ~] nicht [~ # ~] frage.

Aktualisieren:

Mir ist klar, dass ich keine sehr konkreten Parameter für eine meiner Meinung nach erfolgreiche "Antwort" auf meine Frage (n) angegeben habe. Ich denke, die Frage ist sehr vage und könnte eine Reihe von "richtigen" Antworten rechtfertigen.

Nach einer angemessenen Zeit werde ich die Antwort auswählen, die den folgenden Attributen entspricht:

  • Erklärt die warum hinter ihrer Antwort
  • Kann aus einer bestimmten Erfahrung sprechen (sei es Einstellung/Interaktion mit oder jemand zu sein, der in meinen Schuhen steckt/ist)
  • Ist prägnant, aber gründlich, gibt breite Prinzipien vorzugsweise in Verbindung mit spezifischen Beispielen
  • In Anbetracht der Länge, die für die Übereinstimmung mit dem oben Gesagten erforderlich zu sein scheint, machen Sie es bitte zu einer gut kommunizierten Antwort, die angenehm zu lesen ist. Andere, die in Zukunft daran interessiert sein könnten, würden hoffentlich von der Antwort sowohl unterhalten als auch erzogen.

Es gibt also einige Parameter für "richtig". Ich denke, sie sind sehr hoch, aber ich habe sie als eine Art Umriss für das entworfen, was ich mir als "beste" Antwort vorstelle. Wenn ich genügend Zeit habe, wähle ich natürlich die am besten passende Antwort als "Antwort" aus.


 (1) - Ich habe an einer früheren Version dieser Website gearbeitet, und obwohl wir kein explizites 
 Gespräch darüber geführt haben, hatte ich das Gefühl, dass ich überhaupt nicht sehr gut abschneiden konnte ( Dies kann 
 durch die Tatsache belegt werden, dass sie ihre Website seitdem vollständig geändert haben.) 
 (2) - Erstens, ja, es ist ein echtes Produkt (obwohl ich diesen Beitrag in Chrome schreibe. ..) und 
 tritt es in den Arsch. Zweitens war ich ein Entwickler eines High-School-Praktikanten im Test und schrieb einen Beweis für 
 Konzeptcode für einige der neuen Funktionen für IE8 ... also war es eine Weile her. 
 (3) - At Zum Zeitpunkt dieses Beitrags bin ich der Entwickler, der diese App geschrieben hat. Ich bin nicht mehr 
 für die Codebasis verantwortlich. 
 (4) - Mein Praktikum beginnt im Juni 2012 und ich werde es tun im Web Store 
 Team arbeiten. 
46
Paul Hazen

OK, ich finde es zu verlockend, Ihre Frage nicht zu beantworten, also bin ich hier ...


Ein paar Dinge über mich zuerst


Ich bin 26 Jahre alt ​​und dank meines Vaters (übrigens ein Mathematiker und derzeit als Professor tätig) hatte ich schon in einem sehr frühen Stadium meines Lebens die Chance, mich mit Computern zu beschäftigen. (1986, als ich geboren wurde, obwohl dies damals nicht das häufigste war, hatten wir immer einen oder zwei Computer zu Hause). Davon abgesehen und - offensichtlich aufgrund meiner neugierigen und mathematisch orientierten/problemlösungsorientierten Natur - dauerte es nicht lange, bis ich mich in das Programmieren verliebte. Zuerst mit Pascal im Alter von 7-8 Jahren und dann folgte so ziemlich alles andere.

Lassen Sie mich zunächst sagen, dass ich in der Schule immer in Sachen Mathematik hervorragende Leistungen erbracht habe, einfach weil es mir gefallen hat, und ehrlich gesagt könnte ich leicht dem Beispiel meines Vaters folgen und auch Mathematiker werden. Aber das ist nicht passiert.

Was passiert ist, war wahrscheinlich der größte Fehler meines Lebens (bis jetzt): Wie würden Sie es nennen, wenn jemand verliebt in Code, der spricht 15 + Sprachen und hat im Alter von 18 Jahren plötzlich Tausende von Codezeilen (von Compilern über Mikrokerne bis hin zu Web-Frameworks) geschrieben (die Gründe sind in meinen Augen immer noch zu dunkel, aber der allgemeine, wenn auch subtile Einfluss von Ihnen Umwelt ist nie zu vernachlässigbar) beschließt, eine Karriere in Medizin zu verfolgen? Ich denke ein "Fehler".

Das Ergebnis? 5 Jahre später (mit 23) und 1 Jahr vor Abschluss meines Med-Studiums (ich arbeite immer noch als Hobby an persönlichen Open-Source-Programmierprojekten) entschied ich, dass ich genug hatte und kündigte. Und es war nicht nur so, dass ich dieses neue Gebiet (Medizin) so sehr hasste, sondern auch, dass in dieser ganzen Situation etwas Beunruhigendes war, ein unersättlicher Juckreiz, der tief im Inneren verborgen war ... ( was wäre das gewesen) if ...? ) Außerdem hatte ich gerade festgestellt, dass mein Hobby , was ich für großartig hielt, mir aber nicht einmal vorgestellt hatte Als echter Job konnte ich nicht nur etwas Geld bringen, sondern auch viel davon + mich als Einzelperson glücklich machen. Also beschloss ich aufzuhören. (= die beste Wahl, auch wenn ich etwas spät dran bin).

Also, hier bin ich jetzt, ein ehemaliger Arzt (kurz vor einem Nervenzusammenbruch-Psychiater, um genau zu sein; dumm von mir!), Der einen CS-Abschluss anstrebt (in meinem dritten Jahr tatsächlich; und ehrlich gesagt, es zu verfolgen, um nicht an diesen gefürchteten typischen Qualifikationen ...) und einer mehr als glücklichen professionellen Arbeit zu mangeln über etwas, das ich verehre und definitiv das Thema, zu dem ich am meisten zu bieten habe.


Einige Beobachtungen (aus eigener Erfahrung)


  • Programmierung ist eines der wenigen Felder, in denen die wirklich Guten immer ihren Weg nach oben finden, egal was passiert. Und dies ist definitiv KEINE Frage von typischen Qualifikationen (ehrlich gesagt, wenn ich eine Firma hatte und Programmierer einstellen wollte, kann ich in wenigen Minuten leicht erkennen, wer gut ist - unabhängig davon, ob er überhaupt einen Abschluss hat oder nicht)

  • Was es braucht, um ein guter Programmierer zu sein, ist: mathematisch orientierte Intelligenz (aber NICHT Mathematik selbst) und Leidenschaft ​​ (das macht die endlosen Stunden des Lernens zu einem Vergnügen statt zu einer Last ; und, auch wenn ich das nicht bemerkt habe, vertrau mir, ich habe Tonnen von Material zu diesem Thema in meinem Leben studiert, rein alleine) . Formale Bildung ist eine nette Sache, aber ein bisschen überbewertet. Die Hauptzutaten für den Erfolg sind die ersten beiden.

  • In Mathe wurde CS definitiv geboren. Aber CS ist nicht mehr nur Mathematik. Ich hatte immer ein starkes mathematikorientiertes Gehirn, aber ich bin keineswegs ein Mathe-Guru. Und ehrlich gesagt, werden Sie bei der täglichen Programmierung (es sei denn, Sie möchten eine Grafik-Engine oder etwas zu Lokalisiertes erstellen) höchstwahrscheinlich nie etwas anderes als einfache Arithmetik (Addition, Subtraktion, Multiplikation, Division, Modulo) und einige Dinge benötigen über Arrays. (Viele werden mir nicht zustimmen, wahrscheinlich Mathematiker oder zu akademisch orientierte Programmierer, aber definitiv ist das Beherrschen von Kalkül NICHT das, was man braucht, um ein guter Programmierer zu sein). Ein guter mathematischer Hintergrund wird Ihnen vielleicht helfen, aber NICHT wegen der Mathematik selbst; Es wird Ihnen nur auf der Grundlage einer gemeinsamen Sache helfen, die diese beiden Bereiche gemeinsam haben: Fähigkeiten zur Problemlösung.

  • Mathematik ist eine Wissenschaft ​​(und eine Wissenschaft, die ich respektiere).

  • Programmieren ist eine Kunst. (Und eine angewandte Wissenschaft auch, wenn Sie darauf bestehen) Aber denken Sie daran: eine Kunst - und so habe ich sie immer behandelt. Und wie bei allen Künsten kann es nicht gelehrt werden. Ich kann Ihnen die formale Art beibringen, ein Gesicht zu zeichnen und Sie besser als der Durchschnitt zu machen, aber das macht Sie weder zu einem Da Vinci noch zu einem Klimt. Mona Lisas werden von Da Vincis gemalt und nicht von sorgfältig ausgebildeten Malern. Großartiger Code wird von großartigen Codekünstlern geschrieben. Und Geschicklichkeit und Hingabe können die formale Bildung leicht aus dem Gleichgewicht bringen.


Was braucht es also, um ein * wirklich * guter Programmierer zu werden?


  • Klug sein, großartige Fähigkeiten zur Problemlösung und eine Leidenschaft für das Thema (wenn Sie es nicht haben, lassen Sie es einfach; mittelmäßig zu sein ist keine Entschuldigung)
  • Viel Zeit, um sich dem Thema zu widmen
  • Die ganze Zeit studieren ('weil du einfach nie alles weißt; und beachte: Warum muss' Studieren 'in gewissem Maße zusammenhängen? Ich habe es immer gefunden Es macht viel mehr Spaß, Dinge in meinem eigenen Tempo zu tun ...)
  • Ständig Code schreiben (egal wie viele Bücher Sie gelesen haben; Ihre Codierungsstufe entspricht direkt der Menge an Code, die Sie geschrieben haben)
  • Und wieder LIEBE für das Thema (wenn du es nicht genug liebst, und ich meine wirklich liebe es alle Das oben Genannte wird früher oder später unerträglich werden. Für mich ist das Codieren als Job immer noch so, als würde man dafür bezahlt ... Filme schauen: absolut absurd, aber einfach großartig)

Auf deine Fragen


  • Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?

Obwohl ich wirklich wissen muss, was in Mathematik enthalten ist, lassen Sie mich zusammenfassen was Sie höchstwahrscheinlich in einem CS-Abschluss vermissen werden (als Kurse/Fächer/etc - inspiriert von Studienprogramm meiner Uni ) in keiner bestimmten Reihenfolge:

  • Logikdesign digitaler Systeme (einige Low-Level-Schaltungsmaterialien und/oder/xors/etc - scheinbar nicht zu verwandt, aber immer noch sehr lehrreich)
  • Computer Architecture (zusammen mit einigen Assembly-Codierungen; Sie werden es höchstwahrscheinlich nie verwenden, aber Sie können nicht sagen, wie sehr es Ihre Form beeinflussen könnte Einstellung als Programmierer)
  • Datenstrukturen (von der verknüpften Liste bis zu komplexen Bäumen usw .; so einfach sie auch erscheinen mögen, früher oder später benötigen Sie einen guten Hintergrund dazu; verwenden Sie fertige Lösungen, die Sie nicht verstehen, würde ein guter Programmierer nicht tun)
  • Compiler (yep, Compiler! Wirst du jemals einen Compiler schreiben? Wahrscheinlich nicht; aber wenn du nicht kannst ​​einen schreiben, wirst du nie wirklich wissen wie Dinge funktionieren ...)
  • Betriebssysteme (wie oben)
  • Computernetzwerke
  • Künstliche Intelligenz und Expertensysteme (Sie werden höchstwahrscheinlich auch nie in Prolog codieren; aber es ist immer noch eines der Dinge, die Ihr codierendes Gehirn formen und es dazu bringen könnten, Dinge von a zu sehen radikal andere Perspektive)
  • Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

Zu wissen, was in einem sich ständig ändernden Bereich als CS zu priorisieren ist, wird immer ein Glücksspiel sein - ein Ratespiel.

Erfahren Sie, was Sie tun möchten, und vertrauen Sie Ihrem Instinkt. Natürlich ist ein solides Grundwissen ein Muss. Aber worauf Sie sich einlassen, liegt ganz bei Ihnen. Planen Sie Ihre Karriere auch sorgfältig: Wenn Sie angestellt werden möchten, wählen Sie Ihr Ziel und seien Sie großartig darin (z. B. wenn Sie von Google angestellt werden möchten und nicht lesen können) ein einfaches Python Skript ist wahrscheinlich eine dieser No-Go-Situationen) . Wenn Sie etwas alleine (eine Firma) starten, dann haben Sie keinen "Chef" "um zu befriedigen; wählen Sie einfach, was am besten zu Ihnen passt.

Wenn Sie beispielsweise etwas Webbezogenes tun möchten, würde ich Ihnen auf jeden Fall raten: PHP/MySQL/HTML/CSS/JavaScript (+ jQuery/AJAX). Aber das bin nur ich. Jemand mag vielleicht (oder sieht mehr Zukunft in) Ruby/Rails als in PHP.

Ich codiere jetzt zum Beispiel hauptsächlich in Objective-C/Cocoa. Würde ich Ihnen raten, das weiter zu verfolgen? Definitiv nicht. Das heißt: Es sei denn, Sie interessieren sich für Macs oder möchten eine Karriere als Verkäufer von Mac/iPhone-Software. Wenn Sie sich für die Windows-Entwicklung interessieren, ist C #/.NET Framework wahrscheinlich die beste Wahl. (Wenn Sie eine Vorstellung davon bekommen möchten, worauf ich mich hauptsächlich einlasse, schauen Sie einfach in mein StackOverflow-Profil )

  • Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

Studiere viel (Bücher, Internet, Code anderer Leute, was auch immer) und schreibe so viel Code wie möglich.

Ah, und versuchen Sie, einen Job in irgendetwas zu bekommen, das mit Code zu tun hat. (Ich habe zuerst angefangen als Freiberufler zu arbeiten und es war eine wirklich wertvolle Erfahrung, nur um zu sehen, wie die Dinge in der realen Welt wirklich funktionieren).


Nur meine .2 freundlichen Cent ... :-)

Nebenbemerkung: Ich weiß, dass einige meiner Punkte kontrovers erscheinen mögen, und ich bin sicher, dass es viele geben wird, die wird mit mir nicht einverstanden sein. Das ist akzeptabel. Aber das ändert nichts an der Art, wie ich Dinge sehe - und besonders an den Dingen, die ich liebe.

17
Dr.Kameleon

Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?

Durchsuchen Sie den Lehrplan der CS-Abteilung von UW, leihen Sie sich die erforderliche Lektüre aus und stöbern Sie darin, schauen Sie sich frühere Prüfungen und Laborübungen (Hausaufgaben) an. Wenn Sie keine Ahnung haben, wie Sie das Problem angehen würden, haben Sie eine Lücke in Ihrem Wissen.

Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

Überlegen Sie, welche Art von Programmierung Sie in Zukunft durchführen möchten. Wenn Sie gerne Websites und CRUD-Anwendungen erstellen, verfügen Sie anscheinend bereits über das erforderliche Wissen.

CS-Bildung kommt ins Spiel, wenn Sie verstehen möchten, wie [verteilte] Datenbanken, Webserver, Compiler und Interpreter, Betriebssysteme, Netzwerkprotokolle usw. funktionieren nter der Haube und daran interessiert sind, solche Systeme aufzubauen du selber.

Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

Ich weiß nicht. Für mich bestand der größte Vorteil der Universität darin, 1) meinen Horizont zu erweitern (ich habe 90% der Details vergessen, die ich an der Uni gelernt habe, aber ich erinnere mich an Konzepte und Ideen), und 2) meine intrinsische Motivation für das Lernen beizubehalten Abnehmen: Es ist einfacher, die Motivation aufrechtzuerhalten, wenn Sie auf ein Ziel hinarbeiten - eine Prüfung, eine andere Prüfung usw., bis Sie Ihren Abschluss machen. (Auch die Strukturierung der Selbstbildung ist keine leichte Aufgabe.)

[Hinzugefügt: Wählen Sie eine Universität aus, deren CS-Programm Sie verfolgen möchten, wählen Sie Kurse zu Themen aus, an denen Sie interessiert sind, und gehen Sie den Lehrplan selbst durch: Hausaufgaben, Prüfungen usw. Die meisten Kurse veröffentlichen Vorlesungsfolien und Aufgaben/Prüfungen aus früheren Jahren .]

Ein Tipp: Geben Sie Ihren Mathematik-Abschluss NICHT auf. Jede kluge Person kann sich das Programmieren selbst beibringen, aber Mathematik verschafft Ihnen einen Wettbewerbsvorteil, wenn Sie jemals an anderen Anwendungen als CRUD/Frontend arbeiten möchten, z. B. flüssige und mechanische Simulationen, Computergrafik, Bildverarbeitung, Erkennung und maschinelles Lernen. (sogar finanzieren!) etc.

UPDATE 2 - Erfahrung [lang]: Ich habe einen Master-Abschluss an der EE-Fakultät erhalten: Die ersten zwei Jahre waren gemeinsame Lehrpläne (Physik, Elektrotechnik, analoge und digitale Elektronik und viel Mathematik - lineare Algebra; diskrete Mathematik; Real, Vektor und komplexe angewandte Analyse.) Dies war sehr wertvoll, insb. Der EE- und Elektronik-Teil - es ermöglichte mir, an gemischten HW-SW-Projekten zu arbeiten, und die Zusammenarbeit mit HW-Designern war sehr aufregend. Ich habe nichts zum HW-Design beigetragen, aber ich konnte dem HW-Designer folgen, der sein schematisches Diagramm "debuggt" und vernünftige Fragen stellte [wir waren uns nicht sicher, ob der Fehler in SW oder HW war - es stellte sich heraus, dass es in HW war: -)].

Dann verzweigten sich die Linien und ich wählte die CS-Linie. Einige der "Details" trugen dazu bei, die Konzepte zu verankern (z. B. das "Ausführen" des Dijkstra-Algorithmus von Hand). Außerdem habe ich Details über die Funktionsweise von CPUs (Bussignale, Interpretation von Busdiagrammen, Ausführung usw.) am Beispiel des bereits damals veralteten Motorola 68000 gelernt, aber die durch Details erlernten Konzepte sind nicht sehr auch für moderne CPUs anders.

Andere Details, insb. SW-Implementierungen (z. B. die Implementierung von Dijkstra) waren für mich [da ich in der Highschool ziemlich gut programmiert bin] eine sinnlose Übung beim Debuggen und trugen NULL zum Verständnis von Konzepten bei.

Und dann schrieb ich mich in das Doktorandenprogramm ein, wo ich Pflichtkurse belegen musste. Ich war von der Auswahl der Kurse enttäuscht, da viele von ihnen eher auf die Anforderungen der Industrie ausgerichtet zu sein schienen (z. B. Verwendung von Python für die wissenschaftliche Datenanalyse - danke, ich kann programmieren und ich ') Ich bin sehr fähig, mir das beizubringen - was wiederum viel sinnloses Codieren beinhaltete), als grundlegende Konzepte zu vermitteln (zum Glück habe ich mit Promela Kurse über diskrete Optimierung, statische Analyse von Programmen und formale Analyse ausgegraben).

Einige Details waren also nützlich, um Konzepte zu verankern, und einige waren völlig unnötig belastend (ein weiteres Beispiel: Programmieren der seriellen Schnittstellenkommunikation zwischen zwei Computern. Ich war bereits damals daran gewöhnt, HW-Spezifikationen zu lesen und zu interpretieren und HW über Register zu programmieren, also war es einfach. Vielleicht bin ich naiv in der Annahme, dass durchschnittliche angehende CS-Ingenieure nicht über das Lesen von HW-Dokumenten informiert werden müssen.

Fazit: Setzen Sie sich vielen verschiedenen Konzepten aus (hochrangige Ideen) und gehen Sie detailliert auf diejenigen ein, die Sie priorisieren und in denen Sie extrem gut werden möchten. [Du kannst nicht in allem extrem gut sein!]

18
zvrba

Dies ist im Wesentlichen meine Frage: Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?

Antwort 1

Wenn Sie etwas Neues aus Ihrem Studium lernen. Dann können Sie objektiv sagen, dass Sie dies durch einen CS-Abschluss erreicht haben.

A1. Das Warum

Bei einem CS-Abschluss geht es konzeptionell um Lernen. Wenn man von einem CS-Abschluss ohne Nettodifferenz zurückkehrt, wird sein Kernziel nicht erreicht. Prüfungen und Studienleistungen sind das "offizielle" Maß für das Gelernte. Das individuelle Verständnis (habe ich etwas Neues gelernt?) Sollte jedoch eine bessere objektive Maßnahme sein.

A1. Die Erfahrung

Ich war beide im akademischen Bereich und arbeite jetzt professionell. Ich habe mich für einen Master in Informatik entschieden, weil ich mein Verständnis erweitern wollte und eine Leidenschaft für das Lernen habe.

Meine Welt hat sich durch den Erwerb eines Masters in Computing erweitert. Meine Welt hat sich auch von der beruflichen Arbeit erweitert.

Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

Antwort 2

Wichtigkeit ist relativ darüber, wer die Frage stellt und für welche Situation. Wenn es für persönliches Wachstum ist, dann ist alles wichtig. Wenn es für die Industrie ist, dann sind Dinge wie Algorithmen und gute OOP/Standard-Software-Praktiken wichtig.

A2. Das Warum

Der "Umfang" der Bedeutung hängt stark vom "Kontext" ab. Ohne Kontext sind die Vorzüge der Fähigkeiten schwer zu sortieren.

A2. Die Erfahrung

Ich habe festgestellt, dass die Fähigkeiten von "Universität" vs "auf dem Gebiet" unterschiedlich sind. Die "Fähigkeiten" an der Universität sind eher "Theorie", aus der Industrie eher "Praxis". Aus diesem Grund bedeutet dieser Unterschied, dass die Fähigkeiten in Bezug auf ihre Wichtigkeit tatsächlich unterschiedlich eingestuft werden.

Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

Antwort 3

Schieben Sie sich selbst jenseits Bruchstelle, und wenn Sie Pause brechen Sie sich immer wieder.

Was meine ich?

Wenn Sie an einen Punkt kommen, an dem Sie nicht verstehen, haben Sie sich selbst gebrochen. Lerne weiter bis du verstehst. Dann Push weiter, bis Sie etwas anderes finden, das Sie nicht verstehen (ad infinitum) .

A3. Das Warum

Wenn Sie nur lernen und innerhalb Ihrer Grenzen bleiben, werden Sie nur "ok" sein. Du willst nicht nur "ok" sein. Sie wollen das "Beste" sein, das Sie sein können. Sie können Ihr wirkliches Potenzial nicht erreichen, wenn Sie nicht STÄNDIG über Ihre Grenzen hinausschieben.

A3. Die Erfahrung

Ich werde immer ein lebenslanger Schüler sein, ich werde meine aktuellen Fähigkeiten nicht aufzählen. Wenn Sie neugierig sind, können Sie einfach mein Profil sehen.

Das einzige, was ich sagen werde, ist das. Ich bin mit meinem aktuellen Wissen nie zufrieden. Ich möchte höher fliegen, weiter sehen und tiefer gehen.

7
Darknight

Ich interviewe und rekrutiere viele junge Leute, die gerade das College abgeschlossen haben. Ich habe noch niemanden eingestellt, der auf den Fachkenntnissen basiert, die er aus dem jeweiligen Programm gelernt hat. Der Grund dafür ist einfach: Kein CS-Programm (oder ein anderes Programm), auf das ich gestoßen bin, vermittelt konkrete Fähigkeiten im Zusammenhang mit Programmierung oder Softwareentwicklung auf professioneller, kommerzieller Ebene. Die Möglichkeit, Modelle und Lösungen für komplexe Differentialgleichungen zu entwickeln und optimierte Sortieralgorithmen für spezielle Zwecke zu schreiben, mag akademischen und/oder wissenschaftlichen Wert haben, hat jedoch keinen Einfluss auf die allgemeine Softwareentwicklung.

Was suche ich dann? Nun, ich erwarte, dass ein Hochschulabsolvent die Kunst des Lernens perfektioniert hat. Das ist es schließlich, was ein gutes College sein sollte, um seine Studenten zu unterrichten. Analyse und Aufteilung allgemeiner Probleme in logische, diskrete Komponenten, die vorhersehbar lösbar sind. Ein methodischer Ansatz, um Wissen und Informationen zu finden, zu bewerten, zu organisieren und auf eine Lösung anzuwenden.

Außerdem suche ich nach Menschen, die verstehen, dass eine Gruppe von Menschen, die zusammenarbeiten und kommunizieren, viel mehr wert ist als die Summe ihrer Einzelpersonen. Das erfordert Reife und Demut und die Fähigkeit, Hilfe zu geben und um Hilfe zu bitten.

Um noch einmal auf den Umfang Ihrer Frage zurückzukommen: Während ein CS-Abschluss Ihre Chancen verbessern könnte, das erste Interview vom College zu bekommen, hat dies meines Erachtens wenig bis gar keinen Einfluss auf Ihren Erfolg oder Ihre Fähigkeiten als Entwickler. Ich habe immer die Philosophie "Einstellung einstellen, Geschicklichkeit trainieren" befolgt und sie hat sich gut ausgezahlt.

Mein Rat: Fahren Sie mit Ihrem Mathematikstudium fort, wenn Sie daran interessiert sind. Jede wissenschaftliche Ausbildung wird Ihnen gute Dienste leisten. Wählen Sie also diejenige aus, die Ihnen am besten gefällt, da dies diejenige ist, in der Sie am wahrscheinlichsten Excel ausführen. Konzentrieren Sie sich dann darauf, die wichtigen Dinge zu lernen: Lernen, Analysieren und Herangehen an Problemlösungen eine strukturierte Art und Weise, wie man mit anderen Menschen interagiert und zusammenarbeitet, wie man Führung und Verantwortung für sich selbst und die Leistung seiner Teamkollegen übernimmt. Der Rest ist nur Technologie und Codierung, die Werkzeuge des Handels. Diese können und werden Sie selbst lernen. Erlernen und studieren Sie allgemeine Kenntnisse wie beliebte Entwurfsmuster und architektonische Paradigmen. Schreiben Sie Programme zum Üben. Wählen Sie eine Sprach- und Technologiebasis, die ziemlich aktuell ist, aber machen Sie nicht den Fehler zu glauben, dass es die letzte ist, die Sie lernen werden. Tools und Sprachen ändern sich ständig, sodass die Softwareentwicklung ohnehin ein ständiger Lernprozess ist.

7
pap

Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?

Schauen Sie sich einfach die Studienvoraussetzungen an und schlagen Sie dann den Lehrplan für jede Klasse nach.

Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

Ohne Rückblick können Sie dies nicht wirklich selbst tun. Ich würde sagen, das Wichtigste, was den meisten Autodidakten fehlt, ist die Analyse und das Design von Algorithmen. Der Rest kann Stück Mahlzeit abgeholt werden.

Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

Auch wenn Sie nicht zum Programm zugelassen sind, können Sie häufig Kurse aus anderen Abteilungen als Wahlfächer belegen. Eine meiner Lieblingsklassen war eine Projektklasse aus der Luft- und Raumfahrttechnik, in der ich an Elektronik und Firmware für einen kleinen Satelliten arbeitete.

Sie können auch das Lehrbuch kaufen, das Ihre gewünschte Klasse verwendet. Ich habe das für ein paar Stunden gemacht, die ich nicht in meinen Stundenplan passen konnte. Eine weitere Option ist MIT Open Courseware .

4
Karl Bielefeldt

Warum ist ein CS-Abschluss Ihrer Meinung nach so wichtig, um ein erfolgreicher Programmierer zu sein?

Was Sie brauchen, um ein erfolgreicher Programmierer zu sein, ist:

  • Leidenschaft für das Programmieren
  • Ein unendlicher Wissensdurst nach neuen Technologien
  • Steigen Sie irgendwie in die Branche ein

Normalerweise bringt Sie der CS-Abschluss in die Branche, aber wenn Sie nicht die Leidenschaft und den Wissensdurst haben, werden Sie leiden und niemals ein guter Programmierer sein.

Sieht so aus, als wären Sie bereits in die Branche eingestiegen, und es scheint, als hätten Sie sowohl die Leidenschaft als auch den Wissensdurst.

Was Sie wissen müssen, ist, weiter zu forschen, zu lernen und Erfahrungen zu sammeln, und die Branche wird wissen, wie sie Sie ohne Abschluss schätzen kann.

Ein Beispiel von jemandem, mit dem ich zusammenarbeite

eine der Softwareentwicklerinnen in meinem Team hat einen Abschluss in Rechtswissenschaften. Nach ein paar Jahren hat sie verstanden, dass sie überhaupt kein Recht mag und dass sie Programmiererin werden möchte. Sie konnte keinen Job als Programmiererin bekommen (keine Erfahrung, kein Abschluss), also machte sie einen 6-monatigen Computerkurs, dann bekam sie einen Job, nd sie ist seitdem eine großartige Entwicklerin.

3
Mithir

IMHO gibt es keine Programmierjobs (oder Verkaufsjobs oder Sysadmin-Jobs usw.), es gibt nur Problemlösungsjobs. Wir stellen Leute ein und bezahlen sie, um Probleme zu lösen. Das Schreiben von Code ist nur ein Teil der Lösung des Problems. Ja, auch der Verkauf ist eine Form der Problemlösung. Ein Mathematik-Abschluss beweist also, dass Sie Probleme lösen können, ebenso wie ein CS-Abschluss.

Aus Ihrem Beitrag geht hervor, dass Sie viel Erfahrung/Praktika sammeln. Großartig! Mach dir keine Sorgen, nach dem Abschluss einen Job zu bekommen.

So versuchen Sie, Ihre Fragen zu beantworten:

klassen? Wählen Sie einige theoretische CS-Klassen anstelle von Code-Schreibklassen. Finden Sie einige Nicht-CS/Mathe-Klassen, z. Philosophie wird es Ihnen helfen, sich von der Masse abzuheben

prioritäten? lerne neue Dinge (nicht nur einfache Klassen, die du schon zur Hälfte kennst)

nächste zwei Jahre? mit Menschen sprechen, lernen, Beziehungen aufbauen, nach Aktivitäten von außen suchen. (Hobbys/Sport/Freizeitbeschäftigungen außerhalb der Arbeit/des Studiums sind ein Hinweis darauf, wie motiviert ein Bewerber ist.)

Letzte Tipps: Absolvieren Sie so schnell wie möglich. Bauen Sie ein Netzwerk von Kontakten auf. Und der einzig sichere Job ist das Erstellen eines eigenen Jobs. Suchen Sie nach Ideen/Möglichkeiten, mit denen Sie Ihr eigenes Unternehmen gründen können. Viel Glück.

2
jqa

Lassen Sie mich zunächst LOL bei der "prägnanten, aber gründlichen" Bestimmung gegen Ende Ihres Grand Opus. Auf die Sache: Zur Sache:

Wie bestimme ich objektiv, welche Bereiche des Studiums, des Allgemeinwissens und anderer Fähigkeiten ich durch einen CS-Abschluss erworben hätte, der mir jetzt möglicherweise fehlt oder nicht?

Wie bereits erwähnt, können Sie bei dem Kurskatalog beginnen. Aber ich möchte Sie ermutigen, die Grenzen dieser Liste zu überschreiten. Es ist eigentlich gut , dass Sie Mathematik studieren. Viele Ingenieure, mit denen ich zusammengearbeitet habe, können sich nicht erinnern, wie man eine einfache Integration durchführt, und haben sich nie außerhalb der Mauern der traditionellen CS-Kurse für diskrete Mathematik erkundet.

Diese Antwort scheint in Bezug auf Einzelheiten ziemlich spärlich zu sein. Ich habe keinen CS-Abschluss und es hat mir nicht an notwendigen Bereichen gefehlt. Ich wünsche mir jedoch, dass ich mehr Zeit mit den anderen Dingen verbringe, die mich interessieren. Zum Beispiel Geschichte, Linguistik und Englisch.

Wie sortiere ich diese Fähigkeiten in der Reihenfolge ihrer Wichtigkeit?

Lerne was du liebst

Was ist dir wichtig? Was ist für Arbeitgeber wichtig? Meine persönliche Heuristik war immer zu lernen, was mir am interessantesten erscheint - Sie brauchen um zu lieben, was Sie tun; Andernfalls brennen Sie aus. Software ist ein so weites Feld, dass für einen kompetenten Entwickler, der sich für any dieser Fähigkeiten begeistert, immer ein Job verfügbar zu sein scheint.

Lerne zu lernen und drücke dich

Ich denke, das führt mich zu zwei Meta-Fähigkeiten, die ich über die anderen stellen würde: Dinge unersättlich lernen und hart arbeiten. Diese mögen klischeehaft und schmerzlich offensichtlich klingen, aber die Kombination ist selten. Ich war in Bezug auf die "benötigten" Fähigkeiten auf der ganzen Welt unterwegs - Front-End-HTML/Javascript, Spracherweiterungen, mobile Entwicklung, Computer Vision, Systemadministration und wieder zurück, über 7 Sprachen. Die einzig wahre Kernkompetenz in all dem ist es, meine eigene Unwissenheit zur Gewohnheit zu machen.

Ich liebe Jack Whites Philosophie über Gitarren und Musik (im Ernst, schau dir das an), und ich denke, es ist hervorragend auf die Programmierwelt anwendbar. Stellen Sie die Dinge etwas weiter außer Reichweite. Schieben Sie sich. Dann scheint es easy , wenn alles, was jemand für Sie tun möchte, Ihr Job ist.

Was ist der beste Weg (in den nächsten zwei Jahren), meine Ausbildung zu ergänzen, um diese Eigenschaften so zu erreichen, dass sie dem Niveau eines CS-Studenten einer Spitzenuniversität entsprechen oder es sogar übertreffen?

  1. Nicht-Haupt-CS-Klassen

    Wie Sie hat mich die CS-Abteilung von UW abgelehnt ... obwohl ich glaube, ich habe sie das ein drittes Mal machen lassen, bevor ich zur Besinnung gekommen bin. Ich habe Informatik studiert und Angewandte Mathematik studiert. Aber ich habe immer noch den gesamten nicht-großen CS-Track genommen. Das sind CSE 373, 410, 413, 415 und 417. Ich bin mir also sicher, dass Sie zuerst Ihrer Leidenschaft folgen sollten. Meins führte mich zu diesen Klassen. Und ich denke, dass Sie mit ihnen eine ziemlich umfassende Grundausbildung erhalten, obwohl es ein wenig Licht auf die theoretische Seite der Dinge sein könnte.

    Hier ist das Coole: Bei der Informatik zählten die meisten davon zu meinen Wahlfächern. In der Mathematikabteilung müssen Sie möglicherweise eine ausdrückliche Genehmigung einholen, und dies kann für alle außer CSE 417 eine Herausforderung sein.

    Rufen Sie eine DARS-Anfrage (wahrscheinlich ein Link nur für UWNetID) auf und sehen Sie, wo die Dinge stehen. Ich habe das für verschiedene Majors gemacht ad nauseum .

  2. AMATH-Klassen

    In diesem Sinne kann die Abteilung für Angewandte Mathematik hat einige Klassen , die als Wahlvoraussetzungen bearbeitet werden könnten. Du könntest in AMATH sogar so minderjährig sein wie du.

    Warum erwähne ich das? Numerisches Rechnen - z.B. AMATH 301/352 - ist für die meisten Programmierer ein großes Rätsel. Wenn Sie nichts anderes davon bekommen, können Sie interessante Blog-Beiträge schreiben. Aber ich würde behaupten, dass es verdammt wichtig ist, die Probleme im Zusammenhang mit den numerischen Typen einer Sprache zu kennen und zu wissen, wie man sie misst und verbessert.

  3. Baue etwas!

    Das Wichtigste, was Sie tun können, ist, etwas Neues zu bauen. Nehmen Sie eine Idee von Anfang bis Ende. Lassen Sie es nicht einfach sein, das sich in Ihrer Komfortzone befindet.

    Die fruchtbarsten Programmierkurse, an denen ich teilgenommen habe immer hatten eine große praktische Programmierkomponente. Für einen Ingenieur ist die Theorie unglaublich wichtig - solange sie in etwas Reales verwandelt werden kann. Suchen Sie sich also ein cool klingendes CS-Papier und versuchen Sie, es zu implementieren. Ernsthaft.

  4. Holen Sie sich einen Job

    Sie haben bereits erwähnt, dass Sie ein Praktikum bei Amazon haben. Das ist großartig. Tatsächliche Berufserfahrung ist wirklich der Schlüssel! Es gibt viele Leute mit CS-Abschlüssen, die sich nicht aus einer nassen Papiertüte heraus programmieren können. Gute Berufserfahrung ist way mehr als einen Abschluss wert.

1
abscondment

Lassen Sie mich zunächst sagen, dass ich sehr froh bin, dass Sie diese Frage gestellt haben, weil ich sie mir im Laufe der Jahre gestellt habe.

Ich denke, ich könnte mich bisher als ein bisschen erfolgreich in diesem Bereich betrachten. Ich habe einige College-Erfahrungen und möchte meine College-Ausbildung in Informatik abschließen, aber ich habe zu diesem Zeitpunkt in meinem Leben noch keinen Abschluss verdient. Trotz dieses Nachteils (seit 10 Jahren) habe ich jedoch ziemlich viel Erfolg in der Softwareentwicklung gehabt. Ich muss ehrlich zu Ihnen sein, aber es war nicht unbedingt einfach (natürlich würde ich wetten, dass alles, was sich lohnt, meistens NICHT das Einfachste ist). Ich werde auch sagen, dass es immer noch nicht die einfachste Sache ist. Es gibt viele Unternehmen, die bereit sind, dem richtigen Kandidaten eine Chance zu geben, aber ich bin mit anderen in Kontakt gekommen, die sich gegen das Fehlen dieses "Gütesiegels" für die Hochschulausbildung wehren werden. Ich wollte es jedoch so sehr (und will es immer noch), dass ich bereit war, alles zu tun, um alle Erfahrungen in der Sprache zu sammeln, in der ich zu dieser Zeit einen Job ausüben wollte.

Es begann in .net bei einem sehr großen Unternehmen. Als kleiner Nicht-Programmierer (zu dieser Zeit als technischer Supportmitarbeiter tätig) lernte ich alles über die Sprachen und Technologien, die für das Unternehmen verwendet wurden, für das ich arbeitete. Außerdem, und das ist wahrscheinlich das Wichtigste, habe ich mich vernetzt. Ich habe eine E-Mail an jede einzelne Person abgeschossen, die ich in dem Verzeichnis finden konnte, dessen Titel Software Engineer enthielt. War ich nervig Wahrscheinlich. Ich war immer höflich und selbstbewusst und lernbegierig. Ich würde Mittagessen planen oder sie einfach in der Cafeteria finden und mich hinsetzen, um zu versuchen, ein Gespräch zu führen. Manchmal war es peinlich oder ich wurde beschimpft, aber am Ende bekam es die erwarteten Ergebnisse. Ich konnte kleine Anmeldeinformationen für einige interne Datenbanken abrufen und nach einer Weile die erforderlichen Anmeldeinformationen erwerben, um Software auf ihrer proprietären Plattform zu entwickeln. Bald darauf befand ich mich innerhalb des Unternehmens in der Lage, dem Analyseteam, an dem ich zu dieser Zeit arbeitete, einige Fähigkeiten in der Entwicklung interner Tools zu verleihen. Von da an habe ich mich immer nur bemüht, auf die unprätentiöseste Art und Weise der klügste Mann im Raum zu sein. Ich war eifrig und habe dafür gesorgt, dass es jeder wusste. Ich habe immer versucht, wo immer möglich eine Lösung zu finden, und festgestellt, dass es nur sehr wenige Problembereiche gibt, die nicht zu lösen sind (vielleicht außerhalb der Quantentheorie), wenn Sie sich genug anstrengen.

Um eine lange Geschichte zusammenzufassen (und wenn Sie im pazifischen Nordwesten sind, würde ich gerne bei einem Bier darüber diskutieren), habe ich meine "große Pause" bei einem winzigen kleinen Startup gemacht, das bereit war, mir eine Chance zu geben . Sie tauschten meine mangelnde Erfahrung gegen ein etwas geringeres Gehalt aus, und ich machte mich an die Arbeit. Ich bin dann in den nächsten Jahren von einem kleinen Entwicklergeschäft zum nächsten gewechselt und habe dabei Freundschaften und Fähigkeiten gewonnen, bis ich schließlich als Hauptentwickler und Direktor eines kleinen Ingenieurbüros bin.

Wenn ich es nicht effektiv genug kommuniziert habe, ist es wichtig, dass Sie sich vernetzen müssen. Machen Sie Freunde, trinken Sie Bier und lachen Sie und finden Sie Leute auf dem Gebiet, auf dem Sie arbeiten möchten (vorzugsweise innerhalb des Technologie-Stacks Ihrer Wahl). Stellen Sie sicher, dass die Leute Ihre Bereitschaft kennen, alles zu tun, was Sie brauchen, und Ihre Bereitschaft, die Arbeit zu erledigen, egal wie monumental sie auch sein mag. Grundsätzlich müssen Sie Ihren Mangel an formaler Bildung "überwinden". Spring rein und hab Spaß damit. Diese Branche ist meiner Meinung nach die beste der Welt. Ich habe dauerhafte Freundschaften und Kontakte geknüpft, die mir von einem Ort zum nächsten geholfen haben, und ich werde das Gleiche für sie tun, wenn sich die Gelegenheit bietet.

1
Paul Shoemaker