Umsetzbare Ratschläge und Geschichten zum Erlernen des Codierens

Wie fange ich an, Code zu lernen?

Als ich anfing, meine Reise über das Beherrschen des Programmierens und das Hacken meiner Ausbildung zu teilen, waren die Leute sehr interessiert und fragten mich viel, wie ich anfangen soll, Code zu lernen.

Ich möchte zukünftigen Entwicklern wirklich auf ihrem Weg helfen und die Menge an Fragen, wie ich anfangen soll, hat mich dazu inspiriert, diesen Artikel zu schreiben.

Ich hatte Zeit, über meine Reise nachzudenken und fragte erfahrene Entwickler nach dem Programmieren, wie sie angefangen haben, nach der Karriere und all den interessanten Dingen, die jeder wissen möchte.

Dieser Beitrag enthält Geschichten und viele umsetzbare Ratschläge, mit denen Sie sich inspirieren lassen, motivieren und den ersten Schritt in der Programmierwelt machen können.

Hoffe das hilft!

Die Denkweise

Es sieht aus wie ein Off-Topic oder ein allgemeiner Rat, aber nach 4 bis 5 Jahren Erfahrung habe ich eine Menge gelernt und ich habe das Gefühl, ich kann Ihnen zeigen, wie es ist, ein Software-Ingenieur zu sein und welche Art von Situationen Sie haben auf deiner Reise.

Als ich anfing, habe ich mich in das Programmieren verliebt. Mein Tipp Nr. 1 ist, es zu lernen, weil es Ihnen gefällt, Sie es interessant finden oder vielleicht nützlich finden (und es ist wirklich!). Warum sage ich das? Ich bin ein großer Fan von "Mach, worüber du leidenschaftlich bist". Es sieht klischeehaft aus, hat aber immer bei mir funktioniert. Und wenn Sie mit der Programmierung beginnen, benötigen Sie diese innere Motivation. Leidenschaft und Interesse helfen Ihnen, konsequent und diszipliniert auf Ihrem Lernweg zu sein.

Denken Sie daran: Es ist kein Sprint. Es ist ein langer langer Marathon. Erwarten Sie nicht, über Nacht alles zu lernen. Das passiert so nicht.

Bringen Sie sich C ++ in 21 Tagen bei

Tipp 2: Lerne weiter. Als Softwareentwickler besteht eine meiner Herausforderungen darin, immer die neuesten Entwicklungen in unserer Welt im Auge zu behalten: neue Bibliotheken wie ReactJS im Jahr 2013, Webanwendungen wie SPA, PWA, Technologietrends wie Maschinelles Lernen, KI und Kryptowährung (Blockchain Blockchain Blockchain) !), und so weiter.

Ich sage nicht, dass wir alles lernen und uns überwältigen müssen. Mein Punkt ist, dass neue Dinge in der Technologiewelt so schnell entstehen, dass wir die Denkweise des lebenslangen Lernens berücksichtigen müssen.

Apropos überwältigend, das ist der dritte Tipp: Versuchen Sie, sich nicht zu überwältigen. Sie müssen nicht zuerst mit harten Konzepten oder mit dem schwersten Algorithmusbuch beginnen.

Analogiezeit: Wenn Sie abnehmen möchten, beginnen Sie nicht mit einem Marathon, sondern vielleicht mit einem Lauf von einer Meile.

Ähnlich wie beim Programmieren müssen Sie nicht in Ihrer gesamten Freizeit programmieren und lernen, wodurch sich Ihr Zeitplan vollständig ändert.

Nehmen Sie kleine Änderungen vor, aber nehmen Sie sie regelmäßig vor. Jeweils ein Code.

Vergleichen Sie sich nicht mit "erfahrenen Ingenieuren" oder "Programmierergenie", ist Tipp 4. Erstens ist es überhaupt nicht fair. Zweitens fängst du gerade erst an. Konzentrieren Sie sich auf Ihr Studium.

Es ist einfach, sich mit Ihren Teamkollegen oder Programmiergenies zu vergleichen, aber es verstärkt nur das Betrugssyndrom in Ihnen. Lassen Sie sich nicht von Ihrer Programmierreise abhalten.

Übung ist der Schlüssel. Finde Wege, um die Konzepte zu lernen und sie zu üben. Dies ist Tipp Nr. 5. Das Fundament mit Konzepten und Theorien aufzubauen ist wichtig, aber praktisch. Versuchen. Experiment. Wir werden später darauf eingehen, aber Übung ist der Schlüssel!

Theorie & Konzepte

Es ist wirklich wichtig, die grundlegenden Programmierkonzepte zu verstehen und zuerst die Grundlage zu schaffen. Wenn du jetzt am College bist, wirst du gut sein! Colleges sind großartig darin, grundlegende Konzepte und Theorien zu vermitteln. Wenn Sie ein Informatik-Studium absolvieren, verfügen Sie wahrscheinlich über Klassen für Algorithmen und Datenstrukturen. Aber wenn Sie nicht am College sind, hilft Ihnen das Internet weiter!

Als ich anfing, lernte ich mit zwei großartigen Online-Kursen: Codecademy & CS50 in Harvard.

Dieses Mal habe ich die Grundlagen mit Python auf Codecademy und C in CS50 gelernt. Aber meine Meinung ist: Sie müssen nur anfangen. Wählen Sie eine Programmiersprache und beginnen Sie, die grundlegenden Konzepte (Variablen, if-else, Schleife, Datenstrukturen) zu verstehen.

Sei sprachunabhängig. Sprache ist nur ein Werkzeug. Es ist wertvoll, eine Sprache zu beherrschen, aber es ist auch wertvoll, neue Dinge zu lernen. Die besten Entwickler neigen dazu, sich nicht als ____ Entwickler zu identifizieren. - Gayle Laakmann McDowell

Wenn Sie sich für einen Kurs entscheiden, werden Sie wahrscheinlich mit einer bestimmten Programmiersprache unterrichtet. Aber keine Sorge! Konzentrieren Sie sich auf die Grundkonzepte (und verlieben Sie sich vielleicht in die Programmiersprache wie in Python und Ruby).

Warum habe ich diese Kurse gewählt?

Als ich nach etwas suchte, um anzufangen, wollte ich die Konzepte verstehen und praktisch sein. CS50 schien die beste Ressource für den Aufbau eines soliden Fundaments zu sein. David J. Malan ist definitiv einer der besten Professoren, die ich hatte. Und Codecademy hat viel dazu beigetragen, praktisch zu sein. Trainiere mich, um alles zu codieren, was ich gelernt habe. Code Code Code. Erinnern Sie sich an den Tipp Nr. 5? Finde Wege, um die Konzepte zu lernen und sie zu üben.

Andere Quellen mit großartigem Inhalt sind:

Einführung in die Informatik von Udacity. Es deckt so ziemlich alles ab, was Sie brauchen, um das Programmieren zu verstehen. Udacity-Kurse haben nach jeder Theorie und jedem Konzept, die Sie lernen, immer „Übungszeit“.

MIT Einführung in Algorithmen. Es wird das algorithmische Denken lehren. Das Verstehen der Algorithmen und ihrer Funktionsweise ist das Wichtigste, was Sie zu Beginn Ihrer Codierungsreise lernen sollten. Andere großartige Ressourcen sind Algorithmenbücher wie Introduction to Algorithm von CLRS, Algorithms von Robert Sedwick.

Hier überwältigen Sie sich mit den Unmengen an Ressourcen, die wir im Internet haben. Aber versuche dich nicht zu überwältigen. Sie müssen nicht jeden Kurs einzeln absolvieren, sich auf einen konzentrieren, lernen, üben und Vertrauen aufbauen. Denken Sie daran: Es ist eine Reise. Jeweils ein Code :)

Training, Üben, Codieren, Bauen

Üben üben üben. Ich kann nicht genug sagen, wie wichtig die Praktikabilität ist, wenn Sie anfangen, das Programmieren zu lernen.

Code. Viel ... Der beste Weg, ein großartiger Programmierer zu sein, ist nur zu üben - viel. - Gayle Laakmann McDowell

Das Üben macht Sie nicht nur zu einem besseren Programmierer, sondern gewinnt auch viel Selbstvertrauen. Betrüger-Syndrom ist eine echte Sache!

Wie ich am Anfang dieses Artikels sagte, werde ich versuchen, umsetzbare Gegenstände für Sie zu schreiben. Optionen, die Sie auf Ihrer Lernreise tun können, um praktischer zu sein.

Wie ich kann man mit Codecademy anfangen. Es hat wirklich gute Inhalte und eine großartige Erfahrung, um alles, was Sie lernen, zu codieren.

Eine weitere großartige Seite ist Hacker Rank. Die Website bietet eine Vielzahl von Programmiersprachen zur Auswahl. Aber nicht nur das, Sie können auch andere Domainübungen machen. Ich mag die Problemlösungsübungen von Hacker Rank sehr. Sie erhalten viele Eingaben und Ihr Algorithmus muss alle Tests bestehen.

Alle Hacker-Ranglisten

Eine andere Sache, die mir sehr am Herzen liegt, ist Competitive Programming. Ich habe es 2 Jahre am College bei Wettbewerben wie ACM ICPC gemacht. Grundsätzlich gibt es eine Reihe von Problemen, und Sie müssen einen Algorithmus implementieren, um alle zu bestehen. Dadurch habe ich viel Selbstvertrauen in meine Codierungsfähigkeiten gewonnen und ich fühle mich nach meinem intensiven Training und der Teilnahme an Wettbewerben als stärkerer Entwickler. (Hier ist mein Repo auf GitHub - ich habe viele Probleme gelöst).

Ich bin ein begeisterter Nutzer von Quora und habe eines Tages eine großartige Antwort von Veni Johanna gelesen: "Hilft kompetitives Programmieren wirklich dabei, Ihre Kenntnisse und Fähigkeiten als Entwickler zu verbessern?" Ich schreibe einige Fähigkeiten auf, die wir beim Erlernen von wettbewerbsfähigem Programmieren erwerben:

  1. Sie haben die Gewohnheit entwickelt, ein bestimmtes Problem in ein abstraktes zu konvertieren / zu modellieren.
  2. Sie sind es gewohnt, Muster zu registrieren und Muster mit Ihrer Musterbank abzugleichen.
  3. Sie wissen, wie man sich konzentriert und unter Druck arbeitet.
  4. Sie haben ein Bewusstsein und Vertrauen in Ihre eigenen Fähigkeiten und Mängel als Programmierer.
  5. Sie haben gelernt, mit Zeit umzugehen, insbesondere in Bezug auf Ihre Denk- und Codierungsgewohnheiten.
  6. Sie sind an genau definierte Probleme gewöhnt.
  7. Sie sind es gewohnt, ein Ziel vor Augen zu haben.
  8. Sie können im Problemlösungsmodus stecken bleiben.

Ich habe ihre Kommentare geliebt und stimme jedem zu 100% zu. Schauen Sie sich die vollständige Antwort an. Du solltest. Es ist toll!

Meine Absicht hier ist es, Ihnen möglichst umsetzbare Ratschläge zu geben. Daher liste ich einige großartige Websites auf, auf denen Sie ab Tag 0 mit dem Lernen und Trainieren beginnen können.

  • Codeforces: Es ist eine wirklich gute Website zum Trainieren und Lernen. Es hat Unmengen großartiger Problemstellungen. Editorial ist hier von Vorteil (* Editorial: Der Problemautor schreibt, wie Sie das Problem angehen und lösen sollen - welcher Algorithmus oder welche Datenstruktur verwendet werden soll).
  • Topcoder: Diese Website ist Codeforces in Bezug auf Qualität und redaktionelle Probleme sehr ähnlich. Es ist auch bekannt für seine Tutorials. Jedes „Tutorial“ vermittelt Techniken, Algorithmen oder Datenstrukturen.
  • Hacker Rank: Wie ich bereits sagte, hat Hacker Rank viele verschiedene Bereiche wie Algorithmen, Datenstrukturen, Mathematik, Programmiersprachen usw. Die Benutzeroberfläche und UX der Website sind ein Plus für Hacker Rank, sie sind wunderschön und sehr einfach zu bedienen. Ich habe häufig die Python-Domäne verwendet, um eine gute Grundlage für meine Python-Fähigkeiten zu schaffen.
  • Hacker Earth und Code Chef sind weitere gute Websites.

Jetzt kannst du eine Website auswählen und anfangen zu üben :)

Nachdem ich die Grundlagen gelernt, viel programmiert und geübt hatte, fühlte ich mich festgefahren. Ich beginne zu suchen, wie ich zum nächsten Level gelangen kann. Bauprojekte waren die Antwort für mich. Also habe ich mir Webgrundlagen beigebracht: HTML, CSS, Javascript und ein Webframework. Damals habe ich Ruby on Rails (Ruby Web Framework) und Django (Python Web Framework) gelernt.

Mein erstes Projekt war meine eigene Website. Dann habe ich eine Website für das Restaurant meiner Mutter erstellt. Dann zwei Spiele: Tic-Tac-Toe und Schlangenspiel. Alle statischen Websites.

Ich fühlte mich bereit, eine Full-Stack-Website zu entwickeln. Also baute ich einen Online-Buchladen mit einem Admin-Dashboard (der Admin konnte neue Produkte hinzufügen - Bücher - bearbeiten, löschen, all die CRUD-Inhalte) und den öffentlichen Teil - der Kunde konnte sich anmelden / einloggen, nach Büchern suchen und kaufen es. Ich war ziemlich froh, dass ich dieses Projekt abschließen konnte. Zu dieser Zeit war es eine große Herausforderung für mich und ich habe viel gelernt.

Das erste reale Produkt, das ich entwickelt habe, war eine auf Lavadeira reagierende Website. Und jetzt erstelle ich das Worldpackers-Webprodukt und die API für die mobilen Apps für mehr als 900.000 Reisende und Hosts auf der ganzen Welt.

Mein guter Freund Douglas hat eine großartige Geschichte darüber, wie er angefangen hat, Apps zu programmieren und zu entwickeln. Er lernte die grundlegenden Konzepte am College, aber das Erstellen von mobilen Apps war etwas, worauf er immer neugierig war. Er versuchte, viele Android-Apps zu erstellen, gab aber bald auf.

"Ich wusste einfach nicht, wie ich anfangen sollte, da ich eine Menge zu lernen hatte und mich nicht bereit fühlte, eine App zu erstellen. Es gab so viele verschiedene Dinge zu lernen und Möglichkeiten, das Gleiche zu tun, dass ich feststeckte, um herauszufinden, welches das richtige oder das beste war. Die 2 wichtigsten Dinge in dieser Phase waren: 1. Setzen Sie sich ein einfaches Ziel und versuchen Sie, die Grundlagen zu erlernen, um dies zu erreichen. 2. Vermeiden Sie Perfektionismus und machen Sie es einfach. “- Doug

Als ich Dougs Geschichte hörte, hatte ich das Gefühl, dass jeder, der etwas anfängt, in einem Teil des Prozesses hängen bleibt. Und es ist ganz normal, frustriert zu sein oder nicht zu verstehen, wie man anfängt.

„Ich erhielt Hilfe von einem Freund, der bereits eine einfache App erstellt hatte. Ich fragte ihn, ob er wüsste, was der beste Weg ist, um eine bestimmte Sache zu tun, und die Wahrheit ist: Er wusste es nicht, aber ich fühlte mich sicherer, zu wissen, dass wir auf die gleiche Weise bauen. "- Doug

Wenn Sie Kollegen oder Freunde haben, die mehr Erfahrung haben, fragen Sie nach Hilfe, wahrscheinlich werden sie in irgendeiner Weise helfen. Und es ist cool, wie diese „Mentoren“ Sie inspirieren und motivieren, es erneut zu versuchen.

Eine weitere Erkenntnis können wir aus Dougs Geschichte gewinnen: Er hat sich zum Ziel gesetzt, zum ersten Mal die einfachste App zu erstellen.

„Ich habe die erste App-Version erstellt und im Play Store veröffentlicht. Dann lernte ich immer mehr über Java / Kotlin / Android und konnte weitere Funktionen in diese App implementieren. Aber es war ein zeitaufwändiger Prozess. Ich brauchte viel Ausdauer “- Doug

Es ist so schön, wenn wir uns auf einer Lernkurve befinden, dass wir uns sicher fühlen und einfach „im Fluss“ sind, um weiter zu lernen und zu bauen. Aber ich stimme vollkommen mit Doug überein, wenn Sie anfangen, etwas Neues zu lernen, brauchen Sie viel Ausdauer, um Ihr Lernen konsistent zu halten.

Jetzt arbeitet Doug als Android-Entwickler. Er hat 2 persönliche Projekte (mobile Apps) im Play Store veröffentlicht und leitet die Worldpackers Android App.

„Ich habe schon in jungen Jahren gelernt, wie man programmiert, indem ich an vielen verschiedenen Website-Projekten gearbeitet habe. Der beste Weg, eine neue Fähigkeit zu erlernen, ist zu üben, zu üben, zu üben. Es ist egal, was du baust, solange du etwas auswählst und anfängst. “- Feross Aboukhadijeh

In Feross answer on Quora erzählt er, wie er gelernt hat, Code zu schreiben, indem er viele Nebenprojekte erstellt hat. Seine Geschichte ist so inspirierend. Sie merken, wie er Projekt für Projekt Fortschritte macht. Sein Rat, Programmieren zu lernen:

  • Nebenprojekte machen.
  • Kaufen und lesen Sie Programmierbücher.
  • Nebenprojekte machen.
  • Nehmen Sie an Informatikkursen teil.
  • Nebenprojekte machen.
  • Lesen Sie Programmierblogs.
  • Nebenprojekte machen.

Lesen Sie hier seine ganze Geschichte!

Es ist Zeit, dir beim Bauen zu helfen! Hier ist eine Liste der Nebenprojekte, die Sie durchführen können.

  • Wenn Sie ein Spieler sind, können Sie vielleicht mit Tic-Tac-Toe, Sudoku, Flappy Bird beginnen.
  • Wenn Sie ein Datenliebhaber sind, können Sie Web-Scraping durchführen oder mit einer Handelsaktien-API arbeiten, um Aktiencharts zu erstellen und zu analysieren.
  • Wenn Sie ein besseres Frontend verstehen möchten, erstellen Sie Ihre eigene Website / Portfolio.
  • Wenn Sie ein vollständiges Produkt erstellen möchten, beginnen Sie mit einem Online-Buchladen, einem Produktinventar oder einem Blog.

Die Liste geht weiter und weiter. Hier eine weitere Liste, die Ihnen bei der Auswahl des Projekts helfen kann. Aber ich stimme Feross zu, es ist egal, was du baust, solange du etwas auswählst und anfängst. Also fang an zu bauen! Sie werden Probleme haben, Sie werden stecken bleiben. Aber du wirst VIEL lernen!

Ich weiß, dass es ziemlich schwierig ist, Ihr Projekt am Laufen zu halten.

Um dich zur Rechenschaft zu ziehen, habe ich ein interessantes Projekt gefunden, das du täglich machen kannst. Es nennt sich 100 Tage Code. Hier ist die Vorlage. Es ist ganz einfach: Sie schreiben täglich ein Tagebuch über Ihre Fortschritte und Gedanken zu einem Projekt, das Sie gerade durchführen.

Und es funktioniert wirklich. Sie tragen die Verantwortung, halten Ihr Projekt am Laufen und verfolgen Ihren Fortschritt. Alles in einem öffentlichen Repository auf GitHub, damit Sie es auch mit Ihren Freunden teilen können. Arbeiten Sie mit der GitHub-Community zusammen. Und teile und inspiriere andere Menschen.

Auf der Suche nach 100-tägigen Codestorys fand ich heraus, wie Emily 365 Tage lang jeden Tag codiert hat. Eine so inspirierende Geschichte von Disziplin und der Bereitschaft, das Programmieren zu lernen.

Es ist ziemlich cool, wie sie über ihre Projekte schreibt und wie sie im Laufe des Jahres gelernt hat. Die Projekte reichten von iOS-Apps mit der Programmiersprache Swift bis zur Webentwicklung mit dem gesamten Stack (HTML, CSS, JS, Flask-Python-Webframework). Lesen Sie den ganzen Artikel.

Motiviert bleiben, weiter bauen, weiter codieren! :)

Einige nützliche Ressourcen

Gute Websites, Artikel und Videos

Webseiten

freeCodeCamp ist eine großartige Website, die sich auf Webentwicklung und JavaScript konzentriert. Völlig kostenlos (JA!). Udemy, CodeSchool und Khan Academy sind sich in Bezug auf die verschiedenen Kurse sehr ähnlich, aber Udemy hat Kurse bezahlt, Khan Academy ist kostenlos und CodeSchool ist eine Mischung aus beidem (kostenpflichtige und kostenlose Kurse). Wir können die MOOCs nicht vergessen: Udacity, Coursera und edX. Alle diese Websites haben großartige Kurse. Versuche es! :)

Folge Leuten auf Twitter

Wenn Sie sich für maschinelles Lernen interessieren, ist Andrew Ng die richtige Person! Zum Programmieren lese ich gerne Tweets von DHH (Ruby on Rails-Entwickler), Dan Abramov (Redux-Co-Autor), Tracy Chou (ehemaliger Quora, Pinterest), Quincy Larson (FreeCodeCamp-Entwickler), Preethi Kasireddy (Blockchain-Entwickler) und Dan Bader (führt Real Python aus) und die Liste geht weiter.

Menschen, die ihre Reise auf Medium dokumentieren

Wie man sich erfolgreich selbst beibringt, wie man programmiert von Lydia Hallie

Wie ich in einem Jahr von Madison Kanna vom Model zum Software-Ingenieur wurde

BaseCS von Vaidehi Joshi

Warum es so schwer ist, zu lernen, wie man programmiert von Kevin Kononenko

Ich möchte Programmieren lernen, weiß aber nicht, wo ich anfangen soll von Robyn Silber

Vlogs & YouTube-Kanäle

Ich schaue sehr gerne Vlogs und schaue mir den Lebensstil der Leute auf YouTube an.

Fun Fun Function ist ein Kanal von Mattias Petter Johansson, einem ehemaligen Spotify-Ingenieur. Es begann mit JavaScript, aber in letzter Zeit spricht er über die Entwicklung im Allgemeinen. Mir gefällt sehr, wie er seine Ideen umsetzt und jedes Thema vorstellt.

Mayuko ist ein iOS-Softwareentwickler, der bei Patreon arbeitet. Sie spricht auch über Technik und Lebensstil im Allgemeinen.

CS Dojo konzentriert sich wirklich auf das Programmieren von Interviewratschlägen, Algorithmen und Datenstrukturmaterial. Dieser Kanal stammt von YK Sugishita, einem ehemaligen Google Engineer in Kanada.

Joma Tech ist der lustigste und unterhaltsamste YouTube-Kanal unter allen. Jonathan Ma ist Datenwissenschaftler bei Facebook. Er berichtet über sein Ingenieurleben und gibt Tipps für Coding-Interviews, basierend auf seiner Erfahrung als Praktikant in einer Reihe von Tech-Unternehmen.

Das ist alles!

Ich hoffe, dieser Artikel kann Ihnen den Einstieg erleichtern.

Die Dokumentation meiner gesamten Reise zum Erlernen und Meistern des Programmierens finden Sie hier in meiner Renaissance Developer-Publikation.

Habe Spaß! Lerne und programmiere weiter.

Ich hoffe, Ihnen hat dieser Inhalt gefallen. Unterstütze meine Arbeit an Ko-Fi

Mein Twitter & Github. ☺