Beste Antwort
Die eigentliche Antwort lautet „Es kommt darauf an!“. Es hängt davon ab, welches Slice Sie mehr interessiert – Front-End, Full-Stack, Backend, Data-Science usw. Die Grundlage für all dies kann wie folgt abstrahiert werden:
- Wählen Sie Ihren Favoriten aus Programmiersprache. Und lernen Sie jedes Konzept dieser Sprache, indem Sie üben, es in dem einen oder anderen Codeproblem zu verwenden. Dies wird eine gute Grundlage für das Erlernen einer anderen Programmiersprache bilden, auch wenn das Paradigma völlig anders ist. Um A zu schätzen, sollten Sie einen Geschmack für B haben, denn in gewissem Sinne ist alles relativ. Sie beginnen mit dem Vergleichen von Sprachen basierend darauf, wie einige Probleme gelöst werden.
- Führen Sie Code Katas aus. Versuchen Sie, dasselbe Problem auf unterschiedliche Weise zu lösen. Denken Sie über die verschiedenen Ansätze nach, die Sie versucht haben. Tun Sie dies für jede andere Code-Kata, die Sie tun. Es hilft!
- Machen Sie ein Mini-Projekt und lösen Sie ein Problem. Besuchen Sie es nach einiger Zeit erneut und prüfen Sie, ob Sie Funktionen hinzufügen können. Sie sollten sich höchstwahrscheinlich für die schlechte Arbeit missbrauchen, die Sie geleistet haben. Dies ist eine gute Erkenntnis. Denken Sie über Ihre Fehler nach und überlegen Sie, wie Sie besser vorgegangen sind. Lernen Sie aus Ihren Fehlern. Dies ist echte Erfahrung. Erfahrung ist nicht zahlreich, sondern das, was Sie lernen, wenn Sie Dinge durcharbeiten.
- Wählen Sie einen Mini-Projekt- oder Bibliothekscode von Github aus und lesen Sie den Code, um zu sehen, wie ein Problem gelöst wird. Das Lesen und Durchdenken des Codes anderer hilft einem.
- Lesen Sie Bücher, Blogs usw.
- Beginnen Sie, Ihre Gedanken über Blogs zu schreiben. Es hilft Ihnen auf jeden Fall beim Lernen.
- Nehmen Sie an Meet-ups und Konferenzen teil, um ein Know-how darüber zu erhalten, was in der Umgebung passiert. Es könnte Ihr Lernen induzieren. Schließlich brauchen wir alle von Zeit zu Zeit eine Portion Motivation und Sinn fürs Ziel.
- Versuchen Sie, Ihre Erkenntnisse in Meet-ups und Konferenzen zu teilen. Es wirkt magisch auf Sie – im Ernst.
Besonderer Tipp: Habe ich schon erwähnt, dass Sie auf dem Weg wahrscheinlich auf viele Joker stoßen werden, die Ihre Energie und Zeit verbrauchen und Sie davon abhalten würden was tust du. Das Lernen, Kritiker von Jokern zu unterscheiden, ist ein großer Lebensretter.
Das habe ich seit Beginn meiner Karriere getan und mache das auch heute noch.
Antwort
Es hängt davon ab, was Sie unter Softwareentwickler verstehen. Die beste Ressource für Software-Engineering, die ich gefunden habe, ist Erfahrung. Nehmen Sie sich einen Moment Zeit für mich. Die meisten Antworten hier scheinen sich auf das Programmieren zu beziehen, und es gibt in der Tat viele ausgezeichnete Ressourcen zum Programmieren (mit vielen guten Beispielen in den Antworten hier). Ich hatte immer das Gefühl, dass das Problem in drei Kategorien unterteilt ist:
- Programmierung. Wählen Sie eine vernünftige Sprache für die Art von Problemen, die Sie heute gerne angehen. Lerne es gut. Viel Übung. Viel Lesen von anderen angesehenen Experten Code. Schreibe noch mehr. Fügen Sie nach Bedarf oder Interesse eine Sprache hinzu.
- Algorithmen, Datenstrukturen, Vergleichssprachen und der Wissensbestand, der allgemein als Informatik bezeichnet wird. Dies ist es, was das Spiel von der Lösung kleiner Probleme zur Lösung großer Probleme, zur effektiven (nicht nur effizienten) Lösung und zum Verständnis der Grenzen der Lösungen anregt, damit Sie sie erklären können.
- „Software-Engineering Ist für mich etwas anderes als die beiden oben genannten Ideen. Dies ist der Prozess, mit dem Software an „Kunden“ geliefert wird. Es ist eine konsistente, wiederholbare und zuverlässige Lieferung der Lösung. Es wird davon ausgegangen, dass eine grafische Benutzeroberfläche hilfreich ist, um erste Proof-of-Concepts / Prototyp-Lösungen auf Ihrem Desktop zu erstellen, aber nicht ausreicht, um sie in die „Produktion“ zu liefern. Es ist das Verständnis der Lieferpipeline bei jedem Schritt und warum jeder Schritt ausgeführt wird. Es ist die ganze Automatisierung und Disziplin. Ohne Disziplin lässt sich Software nicht skalieren. Ich habe noch keinen Kurs dazu gesehen, da es sich größtenteils um eine Ausbildung am Arbeitsplatz handelt. Und viele Orte verstehen das falsch. Fehler sind teuer.
Vielleicht ist das Kochen die beste Metapher, die ich Ihnen geben kann. Sie können ziemlich schnell lernen, für sich selbst zu kochen. Sie können eine Handvoll Rezepte gut beherrschen und Übung macht Sie schnell. Wenn Sie ein schickes Essen für Freunde und Familie zubereiten, verlassen Sie Ihre Komfortzone ein wenig und benötigen möglicherweise neue Fähigkeiten, neue Werkzeuge und neue Rezepte. Nehmen Sie an ein oder zwei Kursen teil und Sie können Ihr Spiel dramatisch verbessern. Die Kurse reichen von Nachtkursen am örtlichen College bis zu Le Cordon Bleu. Dann gibt es den Schritt zum „Restaurant“, der alles verändert. Es geht jetzt um die zuverlässig wiederholbare Lieferung von Lebensmitteln an Menschen mit Erwartungen. Sie beschaffen, stapeln, bereiten vor, bereiten vor und bearbeiten sie unterschiedlich. Die „Industrialisierung“ des Prozesses ist „Engineering“. Und du bist jetzt Teil eines Teams. Und da ist ein Kunde. Egal, ob Sie ein Taco-Stand oder ein mit einem Michelin-Stern ausgezeichnetes Restaurant sind, es ist anders. Keine Menge Arbeit im Klassenzimmer bereitet Sie vollständig auf das Lernen am Arbeitsplatz vor.
Und Sie können alle drei gleichzeitig lernen. Verstehen Sie einfach, an welchen der drei Fähigkeiten Sie arbeiten, und vergessen Sie nicht die beiden anderen Fähigkeiten. Die ersten beiden kommen in der Regel mit Übung, die letztere mit Erfahrung.