- Schritt 3: Starten Sie ein Projekt, um zu üben, was Sie gelernt haben
- Einige anfängerfreundliche Projekte, die du ausprobieren kannst
- Level 1 Projekte
- Level 2 Projekte
- Level 3 Projekte
- Gib nicht so schnell auf, du musst die anfänglichen Schwierigkeiten überwinden
- Es ist wichtig, eine solide Grundlage zu schaffen
- Learn by doing. Spielen Sie immer mit dem Code, während Sie lernen.
- Teil 2: Der Weg zum fortgeschrittenen Programmierer
- Data Analytics
- Wie kann man Datenanalyse kostenlos lernen?
- Übersicht der Datenanalyse-Module
- Dinge, die man beim Lernen von Data Analytics vermeiden sollte
- Software Engineering
- Wie kann man Software Engineering kostenlos lernen?
- Übersicht über die Module der Softwaretechnik
- Praktische Kurse
- Fortgeschrittenenkurse
- Optional
- Abschluss
Schritt 3: Starten Sie ein Projekt, um zu üben, was Sie gelernt haben
Das Anschauen von Kursen allein würde Ihnen nicht helfen, das Konzept zu verinnerlichen. Sie müssen das Konzept in die Praxis umsetzen. Das geht am besten mit einem Projekt.
Wenn du eine Idee für ein Projekt hast oder ein Problem, das du mit Coding lösen willst, ist das großartig!
Wenn nicht, habe ich eine Liste von anfängerfreundlichen Projekten vorbereitet, von denen du dich inspirieren lassen oder die du ausprobieren kannst.
Einige anfängerfreundliche Projekte, die du ausprobieren kannst
Hier sind einige Begriffe, die verwirrend sein könnten
Bibliotheken: Eine Bibliothek ist eine Sammlung von zusammenhängenden Codeteilen, die kompiliert und in einer einzigen Datei gespeichert wurden. Diese Datei kann mit Ihrem Code verknüpft werden, um Ihnen Zugriff auf den Code in der Bibliothek zu geben.
API: API steht für Application Programming Interface. Eine API ist ein Software-Vermittler, der es zwei Anwendungen ermöglicht, miteinander zu kommunizieren. Mit anderen Worten, API ermöglicht es Ihnen, Funktionen von einem Softwareanbieter anzufordern, um sie in Ihrem Code zu verwenden. Mit der Spotify-API können Sie beispielsweise Daten wie Lieder und Interpreten von Spotify abfragen und die Daten in Ihrem Code oder Ihrer Anwendung verwenden.
Level 1 Projekte
Rechner
- Sprache: Python
- Bibliotheken: Keine
- Leitfaden: https://www.programiz.com/python-programming/examples/calculator
Sudoku Solver
- Sprache: Python
- Bibliotheken: Keine
- Führer: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Sprache: Python
- Bibliotheken: Keine
- Führer: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Level 2 Projekte
Schach
- Sprache: Python oder Java
- Bibliotheken: Keine
- Führer: https://www.youtube.com/watch?v=ejZqLsQDjuo
Weekly Discover Spotify Playlist
- Building your own system to do something similar to Weekly Discover Spotify playlist
- Language: Python
- Bibliotheken: Spotify API
- Leitfaden: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb
Automatisches Zeiterfassungs-Tool
- Verbessern Sie die Konzentration, indem Sie die für Desktop-Anwendungen oder Websites aufgewendete Zeit in Echtzeit verfolgen.
- Sprache: Python
- Bibliotheken: Selenium
- Leitfaden: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Level 3 Projekte
Instagram Automation
- Automatisieren Sie den Prozess des Postings auf Instagram
- Sprache: Python
- Bibliotheken: Flask,Instapy
- Leitfaden: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Ein Bot, der automatisch in deinem Feed twittert.
- Sprache: Python
- Bibliotheken: Twitter API
- Leitfaden: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html
Telegram Chatbot
- Ein Chatbot, mit dem Sie Telegram-Nachrichten automatisieren können
- Sprache: Python
- Bibliotheken: Python-Telegram-API
- Leitfaden: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Dies ist keine erschöpfende Liste. Wenn du ein Problem hast, das du lösen musst, überlege, wie du es mit Programmierung lösen kannst. Das kann auch ein Projekt sein.
Gib nicht so schnell auf, du musst die anfänglichen Schwierigkeiten überwinden
Der größte Fehler, den du als angehender Programmierer machen kannst, ist aufzugeben, weil du glaubst, dass du nicht schlau genug bist, um programmieren zu lernen. Programmieren zu lernen hat nichts mit deiner Intelligenz zu tun.
Programmieren zu lernen ist schwer und die meisten Leute werden irgendwann auf Schwierigkeiten stoßen, weil es eine Menge Themen zu lernen gibt. Wenn du programmierst, wird es viele Themen geben, die beim ersten Mal keinen Sinn ergeben. Unterlassen Sie also die negativen Gedanken an sich selbst.
Auch ich komme nicht weiter. Oft muss ich mir dieselbe Vorlesung oder dasselbe Video-Tutorial mehrere Male ansehen, um das Konzept zu verstehen. Lassen Sie sich nicht entmutigen, wenn Sie sich in meiner Lage befinden.
Es ist wichtig, eine solide Grundlage zu schaffen
So elementar sie auch zunächst erscheinen mögen, die Grundlagen der Programmierung müssen immer an erster Stelle stehen: Je besser man sie versteht, desto einfacher ist es, fortgeschrittenere Konzepte zu lernen. Wenn das Thema, das Sie gerade lernen, für Sie keinen Sinn ergibt, bleiben Sie, wo Sie sind. Gehen Sie nicht zum nächsten Thema über. Das ist so, als würden Sie ein Haus ohne Fundament bauen und das Fundament vernachlässigen.
Wenn das von Ihnen verwendete Lernprogramm (oder Buch) das Thema nicht ausreichend erklärt hat, müssen Sie vielleicht andere Quellen finden, die Ihnen zusagen. Bei Google finden Sie so ziemlich alles, was Sie lernen möchten, kostenlos. Finden Sie heraus, wonach Sie suchen müssen (z. B. in + andere hilfreiche Schlüsselwörter).
Nehmen Sie sich mindestens 20 Minuten Zeit, um etwas selbst herauszufinden, bevor Sie nach Hilfe suchen. Die Wahrscheinlichkeit ist groß, dass die Antwort bereits vor Ihnen liegt. Wenn Sie sich abmühen, lernen Sie besser und werden insgesamt ein besserer Programmierer.
Stackoverflow und Programmieren lernen sind Goldminen für Programmierhilfe.
Learn by doing. Spielen Sie immer mit dem Code, während Sie lernen.
Das Ziel ist es, sich Ihres eigenen Lernens bewusst zu sein, während Sie auf dem Lernpfad voranschreiten. Folgen Sie daher nicht blindlings den Kursen und kopieren Sie den Code, ohne ihn vorher zu verstehen. Verstehen Sie die Konzepte, die in der Lektion gelehrt wurden, und versuchen Sie, sie nachzubilden.
Wenn Sie Fortschritte machen, machen Sie es sich zur Gewohnheit, Ihre Programmierung zu üben. Du kannst dies auf Leetcode, Hackerrank oder mit einem Projekt tun. Versuchen Sie, nach jedem Modul ein Projekt mit den Konzepten, die Sie gelernt haben, durchzuführen. Als ich Online-Kurse gemacht habe, habe ich versucht, jede Woche ein Projekt zu machen, in dem ich alle Konzepte, die ich gelernt habe, angewendet habe.
Teil 2: Der Weg zum fortgeschrittenen Programmierer
Nun, da du die Grundlagen des Programmierens gelernt hast, wäre der nächste Schritt, darüber nachzudenken, auf welchem Weg du mehr über das Programmieren lernen möchtest. Es gibt viele Wege, die Sie einschlagen können, sobald Sie die Grundlagen der Programmierung verstanden haben, wobei die wichtigsten und beliebtesten Wege Software Engineering & Data Analytics sind.
Data Analytics
Was ist Data Analytics?
Data Analytics ist die Wissenschaft der Untersuchung von Rohdaten, um neue Informationen zu gewinnen. Sie beinhaltet die Anwendung eines algorithmischen oder mechanischen Prozesses, um Erkenntnisse zu gewinnen. Zum Beispiel, indem man mehrere Datensätze durchgeht, um nach aussagekräftigen Korrelationen zwischen ihnen zu suchen.
Warum sollten Sie also Datenanalyse lernen? Big Data ist die Zukunft. Sie werden in exponentiellem Tempo erzeugt, und viele Unternehmen nutzen diese Daten, um bessere Entscheidungen zu treffen und bestehende Theorien oder Modelle zu verifizieren oder zu widerlegen. Es wird erwartet, dass die Nachfrage nach Datenanalysen in Zukunft steigen wird, da Daten in vielen Unternehmen den Kern des Entscheidungsprozesses bilden werden.
Wie kann man Datenanalyse kostenlos lernen?
Ich habe die Lehrpläne der Universitäten durchforstet und einen Weg gefunden, um zu versuchen, kostenlose Online-Kurse mit Universitätskursen zu vergleichen. Allerdings sind alle diese Kurse in Python. Wenn Sie in einer anderen Sprache lernen möchten, können Sie sich auch andere Kurse ansehen.
Übersicht der Datenanalyse-Module
Die Übersicht basiert im Allgemeinen auf Universitätsmodulen. Allerdings schließe ich einige der wichtigen Module wie Datenstruktur und Algorithmus aus, die an Universitäten gelehrt werden, da diese eher konzeptionell und auf höherem Niveau sind.
Hinweis: Ich habe das maschinelle Lernen in der Priorität nach oben gesetzt, da es Ihnen erlaubt, die Fähigkeiten zu nutzen, die Sie in den Grundkursen gelernt haben.
Grundlagenkurse
Modul 1: Erlernen der Grundlagen von Python (1 Monat)
- Erlernen der Syntax von Python
- Lernen von Schleifen
- Lernen von objektorientierter Programmierung
Modul 2: Datenvorverarbeitung, Datenvisualisierung, explorative Datenanalyse (1 Monat)
- Erlernen der Verwendung von Python-Bibliotheken (matplotlib, numpy und pandas)
- Diese Bibliotheken ermöglichen es, die Daten zu manipulieren
Fortgeschrittenenkurse
Modul 3: Maschinelles Lernen (2 Monate)
- Voraussetzung: Lineare Algebra
- Maschinelles Lernen ist ein ziemlich technischer Kurs über Mathematik
- Python hat eine ziemlich umfassende Bibliothek für maschinelles Lernen namens Scikit-Learn.
- Wenn Sie einen praktischeren Ansatz zum Erlernen von maschinellem Lernen wünschen, können Sie sich Kaggle Learn ansehen.
Real-World-Tools-Kurse
Modul 4: Datenbanken (SQL) (1 Monat)
- Der Datenbankkurs lehrt Sie im Grunde, wie Daten gespeichert werden und wie Sie diese Daten abrufen können, um Programmierfunktionen auszuführen.
- Datenbank- und SQL-Kenntnisse sind ein Muss, wenn Sie Datenwissenschaftler werden wollen.
Modul 5: Real-World Tools Kurse
- Hadoop & Map-Reduce + Spark(choose one) (1.5 Monate)
- Dies sind Big-Data-Tools, die in der Industrie häufig für die Verarbeitung großer Datenmengen verwendet werden.
- Das Erlernen der Hadoop-Technologien wird Ihnen viele grundlegende Kenntnisse, Theorie und praktische Fähigkeiten vermitteln. Vielleicht entdecken Sie auch etwas Neues dabei.
- Spark ist die moderne Implementierung von Hadoop und findet immer mehr Anwendung.
Modul 6: Data Storytelling (1 Woche)
- Das Präsentieren von Geschichten mit Daten ist das fehlende Bindeglied des Analytikers, wenn es darum geht, die Essenz von Datensignalen und Erkenntnissen an Führungskräfte, das Management und andere Beteiligte weiterzugeben.
Wählbare Kurse
- Datenstruktur
- Algorithmus
- Deep Learning
- In fünf Kursen lernen Sie die Grundlagen des Deep Learning kennen, verstehen, wie man neuronale Netze aufbaut, und lernen, wie man erfolgreiche Machine Learning-Projekte leitet. Sie werden all diese Ideen in Python und in TensorFlow üben, das sie unterrichten werden.
- Es ist einer der besten Deep Learning Kurse, die es gibt. Ich bin gerade dabei, diesen Kurs zu absolvieren, und ich stimme mit den Bewertungen überein, da er auf einfache und klare Weise präsentiert wird, obwohl Deep Learning ein technisches Thema ist.
- Eine weitere großartige kostenlose Ressource ist fast.ai
Dinge, die man beim Lernen von Data Analytics vermeiden sollte
Die Falle ist, dass man nur lernt, aber das Wissen nicht anwendet. Eine Möglichkeit, wie ich versuche, mein Wissen anzuwenden, ist, nach jedem abgeschlossenen Modul ein Projekt zu starten. Für Data Analytics können Sie Ihr Bestes bei einem Wettbewerb Ihrer Wahl von Kaggle versuchen. Nutzen Sie Kaggle Learn als hilfreiche Anleitung
Software Engineering
Was ist Software Engineering?
In einer Nussschale ist Software Engineering im Grunde die Verwendung von Programmierkonzepten, um Anwendungen zu erstellen
Wie kann man Software Engineering kostenlos lernen?
Ich denke, dass Software Engineering ein grundlegenderes Verständnis von Computerkonzepten erfordert als Data Analytics, daher habe ich in meinem Modulplan mehr theoretische Kurse vorgesehen.
Willst du Dinge bauen, um ein Gefühl dafür zu bekommen?
Wenn ja, lerne Python und besuche die praktischen Kurse. Sie können die Grundlagenkurse immer wieder besuchen, wenn Sie auf ein Hindernis in Bezug auf das theoretische Wissen stoßen.
Übersicht über die Module der Softwaretechnik
Grundlagenkurse
Modul 1: Erlernen der Grundlagen von Python (1 Monat)
- Erlernen der Syntax von Python
- Lernen von Schleifen
- Lernen von objektorientierter Programmierung
Modul 2: Datenstrukturen (2 Monate)
- Dieser Kurs behandelt grundlegende Datenstrukturen wie verknüpfte Listen, Stapel, Warteschlangen, binäre Bäume und Hash-Tabellen sowie Such- und Sortieralgorithmen wie binäre Suche, Quicksort, Mergesort, Einfügesort usw.
- Datenstrukturen sind wichtig, da sie es uns ermöglichen, die Leistung unseres Codes zu verbessern, indem wir den besten Datentyp für unseren Code verwenden.
- Der Datenstrukturkurs, den ich empfohlen habe, ist in Java, da er uns zwingt, von einer einfachen Sprache wie Python zu einer ausführlicheren Sprache überzugehen. Außerdem ist Java gut geeignet, um objektorientiertes Programmieren und Datenstrukturen zu lernen.
Modul 3: Algorithmen (2 Monate)
- Dies ist der zweite Teil einer zweiteiligen Serie von kostenlosen Online-Coursera-Kursen, die Datenstrukturen und Algorithmen von Robert Sedgewick und Kevin Wayne, beide Professoren für Informatik, abdecken.
- In diesem Teil lernen Sie Algorithmen zur Graphen- und String-Verarbeitung kennen.
- Sie werden auch einige fortgeschrittene Datenstrukturen und Algorithmen kennenlernen, die in der Anwendungsentwicklung verwendet werden.
Modul 4 : (Datenbanken) (1 Monat)
- Der Datenbankkurs lehrt Sie grundsätzlich, wie Daten gespeichert werden und wie Sie diese Daten abrufen können, um Programmierfunktionen auszuführen.
Modul 5: Networking (1 Monat)
- Der Netzwerkkurs ist nicht sehr wichtig, Sie können ihn also überspringen, wenn Sie wollen. Wenn Sie sich jedoch für Cybersicherheit interessieren, ist dieser Kurs ein absolutes Muss
Praktische Kurse
Modul 6: Woche 9-10 (Webentwicklung) (2 Monate)
- Themen sind unter anderem Datenbankdesign, Skalierbarkeit, Sicherheit und Benutzererfahrung. Anhand praktischer Projekte lernen Sie, APIs zu schreiben und zu verwenden, interaktive Benutzeroberflächen zu erstellen und Cloud-Dienste wie GitHub und Heroku zu nutzen. Am Ende des Kurses verfügen Sie über Wissen und Erfahrung mit Prinzipien, Sprachen und Tools, die Sie befähigen, Anwendungen im Internet zu entwerfen und bereitzustellen.
- Persönlich war dies mein Lieblingskurs für Webentwicklung, da sie durch das Front-End und Back-End gehen und es sehr gut erklärt wird. Man lernt HTML, CSS, Javascript und PHP.
- Das ist eine gute Quelle für Website-Inspirationen: https://github.com/melanierichards/just-build-websites
Modul 7: Mobile App-Entwicklung (such dir aus, was dir am besten gefällt) (2 Monate)
- IOS
- Android
- Flutter (Meine bevorzugte Methode der App-Entwicklung)
- Persönlich habe ich IOS-Entwicklung noch nicht gelernt. Aber wenn ich zwischen Android und Flutter vergleiche, ist Flutter schneller zu entwickeln und zu prototypisieren und deshalb bevorzuge ich Flutter
Fortgeschrittenenkurse
Modul 8: Softwarearchitektur (2 Monate)
- In diesem Kurs lernen Sie, wie man eine Softwarearchitektur mit visuellen Werkzeugen wie UML darstellt, was sehr wichtig ist, um die Architektur mit den Aktionären und den Entwicklern zu kommunizieren, die sie implementieren werden.
- Sie werden auch einige der Standardarchitekturen, ihre Eigenschaften und Kompromisse kennen lernen. Der Kurs spricht auch darüber, wie Entwürfe bewertet werden, was eine gute Architektur ausmacht und wie die Architektur verbessert werden kann.
Modul 9: Software-Engineering-Praktiken (1 Monat)
- Nach Abschluss dieses Kurses sind Sie in der Lage
- die wichtigsten Software-Engineering-Praktiken auf konzeptioneller Ebene für ein bestimmtes Problem anzuwenden.
- Vergleichen und kontrastieren Sie traditionelle, agile und schlanke Entwicklungsmethoden auf hohem Niveau. Dazu gehören Wasserfall, Rational Unified Process, V-Modell, inkrementelle und spiralförmige Modelle sowie ein Überblick über die agile Denkweise
- Vorschlagen einer Methodik, die für eine bestimmte Situation am besten geeignet ist
Optional
Maschinelles Lernen
- Ich empfehle einen eher theoretischen Kurs über Maschinelles Lernen von Andrew Ng
- Auch wenn er etwas veraltet ist, er lehrt das Konzept gut und ist auch nach vielen Jahren noch einer der besten Kurse für maschinelles Lernen da draußen.
Deep Learning
- In fünf Kursen lernen Sie die Grundlagen des Deep Learning kennen, verstehen, wie man neuronale Netze aufbaut, und lernen, wie man erfolgreiche Machine-Learning-Projekte leitet. Sie werden all diese Ideen in Python und TensorFlow üben, die sie unterrichten.
- Ich bin gerade dabei, diesen Kurs zu belegen, und er wird auf eine einfach zu verstehende Weise präsentiert. Ein weiterer guter Punkt ist, dass Andrew Ng Python anstelle von Octave verwendet.
- Eine weitere großartige kostenlose Ressource ist fast.ai
Abschluss
Obwohl ich die Module auf der Grundlage von Universitätskursen empfohlen habe, können Sie sie mischen und anpassen, um den besten Lehrplan für sich zu erstellen. Wenn dieser Artikel Ihnen geholfen hat, helfen Sie mir bitte, ihn mit Ihren Freunden zu teilen! Wenn Sie mehr über mich und meine Arbeit erfahren möchten, besuchen Sie mich bitte auf meiner Website http://www.chiayong.me/