Jak zacząć kodować: A Practical Guide For Beginners (Updated 2020)

Krok 3: Rozpocznij projekt, aby przećwiczyć to, czego się nauczyłeś

Oglądanie kursów samo w sobie nie pomoże ci zinternalizować koncepcji. Musiałbyś zastosować tę koncepcję w praktyce. Najlepszym sposobem na to byłoby wymyślanie projektów.

Jeśli masz pomysł na projekt lub masz problem, który chcesz rozwiązać za pomocą kodowania, to świetnie!

Jeśli nie, przygotowałem listę przyjaznych dla początkujących projektów, z których możesz czerpać inspirację lub spróbować.

Kilka przyjaznych dla początkujących projektów, których możesz spróbować

Znajdziesz tu kilka terminologii, które mogą być mylące

Biblioteki: Biblioteka to zbiór powiązanych ze sobą fragmentów kodu, które zostały skompilowane i zapisane razem w jednym pliku. Ten plik może być połączony z twoim kodem, aby dać ci dostęp do kodu w bibliotece.

API: API to skrót od Application Programming Interface (interfejs programowania aplikacji). API jest pośrednikiem oprogramowania, które pozwala dwóm aplikacjom rozmawiać ze sobą. Innymi słowy, API pozwala na żądanie funkcji od dostawcy oprogramowania, aby wykorzystać je w swoim kodzie. Na przykład interfejs API Spotify pozwala na żądanie danych, takich jak utwory i artyści z serwisu Spotify, i można wykorzystać te dane w swoim kodzie lub aplikacji.

Poziom 1 Projekty

Kalkulator

  • Język: Python
  • Biblioteki: Brak
  • Przewodnik: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Language: Python
  • Biblioteki: None
  • Guide: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Language: Python
  • Biblioteki: None
  • Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Level 2 Projects

Chess

  • Language: Python lub Java
  • Biblioteki: None
  • Guide: https://www.youtube.com/watch?v=ejZqLsQDjuo

Weekly Discover Spotify Playlist

  • Zbudowanie własnego systemu do robienia czegoś podobnego do Weekly Discover Spotify playlist
  • Język: Python
  • Biblioteki: Spotify API
  • Przewodnik: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Automatyczne narzędzie do śledzenia czasu

  • Poprawia koncentrację poprzez śledzenie czasu spędzonego na aplikacjach desktopowych lub stronach internetowych w czasie rzeczywistym.
  • Język: Python
  • Biblioteki: Selenium
  • Przewodnik: https://www.youtube.com/watch?v=ZBLYcvPl1MA

Level 3 Projects

Instagram Automation

  • Automatyzacja procesu zamieszczania postów na Instagramie
  • Język: Python
  • Biblioteki: Flask,Instapy
  • Przewodnik: https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • Bot, który automatycznie tweetuje do Twojego feedu.
  • Język: Python
  • Biblioteki: Twitter API
  • Przewodnik: 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

  • Czatbot pozwalający na automatyzację wiadomości telegramowych
  • Język: Python
  • Biblioteki: Python-Telegram-API
  • Przewodnik: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

To nie jest wyczerpująca lista. Jeśli masz problem, który musisz rozwiązać, zastanów się, jak możesz go rozwiązać za pomocą programowania. To może być również projekt.

Nie poddawaj się łatwo, musisz przebić się przez początkowe zmagania

Największym błędem, jaki możesz popełnić jako aspirujący programista, jest poddanie się, ponieważ nie sądzisz, że jesteś wystarczająco inteligentny, aby nauczyć się programować. Nauka kodowania nie ma nic wspólnego z twoją inteligencją.

Uczenie się programowania jest trudne i większość ludzi napotkałaby trudności w pewnym momencie, ponieważ jest wiele tematów do nauki. Podczas programowania, będzie wiele tematów, które nie będą miały sensu za pierwszym razem. Więc, powstrzymaj się od negatywnych myśli o sobie.

Ja też utknąłem. Często muszę ponownie oglądać ten sam wykład lub samouczek wideo kilka razy, aby uchwycić koncepcję. Nie zniechęcaj się, jeśli znajdziesz się w moich butach.

Ważne jest, aby zbudować mocne podstawy

Jak elementarne mogą się wydawać na początku, podstawy programowania zawsze muszą być na pierwszym miejscu: im lepiej je rozumiesz, tym łatwiej jest nauczyć się bardziej zaawansowanych koncepcji. Jeśli bieżący temat, którego się uczysz, nie ma dla Ciebie sensu, zostań tam, gdzie jesteś. Nie przechodź do następnego tematu. Przeskakiwanie do przodu jest podobne do budowania domu bez podstawy, zaniedbując fundamenty.

Jeśli tutorial (lub książka), którego używasz nie wyjaśnił wystarczająco tematu, być może będziesz musiał znaleźć inne zasoby, które ci odpowiadają. W Google można znaleźć prawie wszystko, czego chcesz się nauczyć za darmo. Dowiedz się, czego szukać (np. w + inne pomocne słowa kluczowe).

Poświęć co najmniej 20 minut, aby dowiedzieć się czegoś na własną rękę przed szukaniem pomocy. Jest duża szansa, że odpowiedź jest już przed tobą. Zmaganie się z problemami sprawia, że lepiej się uczysz i jesteś lepszym programistą.

Stackoverflow i learn programming są kopalniami złota dla pomocy w programowaniu.

Ucz się przez działanie. Zawsze baw się kodem podczas nauki.

Celem jest bycie świadomym własnej nauki podczas przechodzenia przez ścieżkę nauki. Dlatego nie podążaj ślepo za kursami i ślepo kopiuj kod bez uprzedniego zrozumienia go. Zrozum pojęcia, które były nauczane w lekcji i spróbuj je odtworzyć.

W miarę postępów, zrób to nawyk, aby ćwiczyć swoje programowanie. Możesz to zrobić na leetcode, hackerrank, lub robiąc projekt. Spróbuj wykonać projekt po każdym module z koncepcjami, których się nauczyłeś. Kiedy robiłem kursy online, starałem się robić projekt co tydzień, stosując wszystkie koncepcje, których się nauczyłem.

Część 2: Mapa drogowa do zostania zaawansowanym programistą

Teraz, gdy nauczyłeś się podstaw programowania, następnym krokiem będzie zastanowienie się, o której ścieżce programowania chcesz dowiedzieć się więcej. Istnieje wiele ścieżek, w które możesz się zagłębić po przyswojeniu podstaw programowania, z głównymi i bardziej popularnymi ścieżkami Inżynierii Oprogramowania & Analityki Danych.

Analityka Danych

Co to jest Analityka Danych?

Analityka Danych jest nauką o badaniu surowych danych w celu wyciągnięcia nowych informacji. Obejmuje ona zastosowanie algorytmicznego lub mechanicznego procesu w celu uzyskania wglądu w dane. Na przykład, przechodzenie przez kilka zestawów danych w celu poszukiwania znaczących korelacji między sobą.

Dlaczego więc powinieneś uczyć się analityki danych? Big Data to przyszłość. Jest generowany w tempie wykładniczym, a wiele firm korzysta z tych danych, aby podejmować lepsze decyzje, a także weryfikować i obalać istniejące teorie lub modele. Oczekuje się, że zapotrzebowanie na analitykę danych wzrośnie w przyszłości, ponieważ dane będą stanowiły podstawę procesu decyzyjnego w wielu firmach.

Jak można nauczyć się Analityki danych za darmo?

Przeczesałem program nauczania na uniwersytetach i wymyśliłem ścieżkę, aby spróbować dopasować darmowe kursy online do kursów uniwersyteckich. Jednakże, wszystkie te kursy są w Pythonie, jeśli chcesz się uczyć w innym języku, nie krępuj się sprawdzić innych kursów.

Outline of Data Analytics Modules

Outline jest ogólnie oparty na modułach uniwersyteckich. Jednak wyłączam niektóre z ważnych modułów, takich jak Struktura danych i Algorytm, których uczą uniwersytety, ponieważ są one bardziej koncepcyjne i na wyższym poziomie.

Uwaga: Umieściłem uczenie maszynowe wyżej w priorytecie, ponieważ pozwala ono na wykorzystanie umiejętności, których nauczyłeś się na kursach podstawowych.

Kursy podstawowe

Moduł 1: Nauka podstaw Pythona (1 miesiąc)

  • Nauka składni Pythona
  • Nauka pętli
  • Nauka programowania zorientowanego obiektowo

Moduł 2: Data Pre-processing, Data Visualization, Exploratory Data Analysis (1 Month)

  • Nauka korzystania z bibliotek pythona (matplotlib, numpy i pandas)
  • Biblioteki te pozwalają manipulować danymi

Kursy zaawansowane

Moduł 3: Machine Learning (2 Months)

  • Wstęp: Linear Algebra
  • Uczenie maszynowe to dość techniczny kurs matematyki
  • Python ma dość wszechstronną bibliotekę do uczenia maszynowego o nazwie Scikit-Learn.
  • Jeśli chcesz bardziej praktycznego podejścia do uczenia się uczenia maszynowego, możesz sprawdzić Kaggle Learn.

Kursy narzędzi Real-World

Moduł 4: Bazy danych (SQL) (1 miesiąc)

  • Kurs baz danych w zasadzie uczy cię, jak dane są przechowywane i jak możesz pobierać te dane, aby wykonywać funkcje programistyczne.
  • Wykorzystanie wiedzy o bazach danych i SQL jest koniecznością, jeśli chcesz zostać naukowcem danych.

Moduł 5: Kursy narzędzi w świecie rzeczywistym

  • Hadoop & Map-Reduce + Spark(wybierz jeden) (1.5 miesięcy)
  • To są narzędzia Big Data, które przemysł powszechnie używa do przetwarzania dużych ilości danych.
  • Uczenie się technologii Hadoop da ci dużo fundamentalnej wiedzy, teorii i umiejętności praktycznych. Ponadto, możesz odkryć coś nowego używając go.
  • Spark jest nowoczesną implementacją Hadoop i obserwuje coraz więcej przypadków użycia.

Moduł 6: Data Storytelling (1 tydzień)

  • Przedstawianie historii za pomocą danych jest brakującym ogniwem profesjonalisty w dziedzinie analityki w dostarczaniu istoty sygnałów i spostrzeżeń dotyczących danych do kadry kierowniczej, zarządu i innych interesariuszy.

Kursy opcjonalne

  • Struktura danych
  • Algorytmy
  • Deep Learning
  • W pięciu kursach poznasz podstawy Deep Learning, zrozumiesz, jak budować sieci neuronowe i nauczysz się prowadzić udane projekty uczenia maszynowego. Będziesz ćwiczyć wszystkie te pomysły w Pythonie i w TensorFlow, którego będą uczyć.
  • Jest to jeden z najlepszych kursów głębokiego uczenia się tam. Obecnie jestem w trakcie robienia tego kursu i zgadzam się z recenzjami, ponieważ jest on przedstawiony w prosty i jasny sposób, mimo że Deep Learning to temat techniczny.
  • Innym świetnym darmowym źródłem jest fast.ai

Części, których należy unikać podczas nauki Data Analytics

Pułapką jest to, że po prostu uczysz się, ale nie stosujesz wiedzy. Jednym ze sposobów, w jaki staram się stosować moją wiedzę jest rozpoczęcie projektu po każdym module, który ukończyłem. W przypadku Data Analytics możesz spróbować swoich sił w wybranym przez siebie konkursie z Kaggle. Użyj Kaggle Learn jako pomocnego przewodnika

Inżynieria oprogramowania

Co to jest Inżynieria oprogramowania?

W skrócie, Inżynieria oprogramowania to w zasadzie używanie koncepcji programistycznych do budowania aplikacji

Jak można nauczyć się Inżynierii oprogramowania za darmo?

Myślę, że Inżynieria Oprogramowania wymaga bardziej fundamentalnego zrozumienia pojęć informatycznych niż Data Analytics, dlatego w moim konspekcie modułów zawarłem więcej kursów teoretycznych.

Czy chcesz budować rzeczy, aby się wczuć?

Jeśli tak, naucz się Pythona i przejdź do kursów praktycznych. Zawsze możesz powrócić do kursów fundamentalnych, gdy trafisz na przeszkodę w postaci wiedzy teoretycznej.

Outline of Software Engineering Modules

Kursy fundamentalne

Moduł 1: Learning the Basics of Python (1 Month)

  • Learning the syntax of Python
  • Learning Loops
  • Learning Object-Oriented Programming

Moduł 2: Struktury danych (2 miesiące)

  • Ten kurs obejmuje podstawowe struktury danych, takie jak listy połączone, stosy, kolejki, drzewa binarne i tablice hash, oraz algorytmy wyszukiwania i sortowania, takie jak wyszukiwanie binarne, quicksort, mergesort, insertion sort, itp.
  • Struktury danych są ważne, ponieważ pozwalają nam poprawić wydajność naszego kodu poprzez użycie najlepszego typu danych dla naszego kodu.
  • Kurs struktur danych, który poleciłem jest w Javie, ponieważ zmusza nas do przejścia z prostego języka python do bardziej dosłownego języka. Ponadto Java jest dobra do nauki programowania obiektowego i Struktur Danych.

Moduł 3: Algorytmy (2 miesiące)

  • Jest to druga część dwuczęściowej serii darmowych kursów online Coursera obejmujących struktury danych i algorytmy autorstwa Roberta Sedgewicka i Kevina Wayne’a, obaj są profesorami informatyki.
  • W tej części poznasz algorytmy przetwarzania grafów i ciągów znaków.
  • Poznasz także niektóre zaawansowane struktury danych i algorytmy używane w tworzeniu aplikacji.

Moduł 4 : (Bazy danych) (1 miesiąc)

  • Kurs baz danych zasadniczo uczy, jak dane są przechowywane i jak można pobrać te dane, aby wykonać funkcje programistyczne.

Moduł 5: Networking (1 miesiąc)

  • Kurs networkingu nie jest bardzo ważny, więc możesz go pominąć, jeśli chcesz. Jednakże, jeśli jesteś zainteresowany cyberbezpieczeństwem, jest to absolutnie niezbędny kurs

Kursy praktyczne

Moduł 6: Tydzień 9-10 (Web Development) (2 Miesiąc)

  • Tematy obejmują projektowanie baz danych, skalowalność, bezpieczeństwo i doświadczenie użytkownika. Dzięki praktycznym projektom nauczysz się pisać i używać API, tworzyć interaktywne interfejsy użytkownika oraz korzystać z usług w chmurze, takich jak GitHub i Heroku. Do końca kursu, pojawi się z wiedzy i doświadczenia w zasad, języków i narzędzi, które upoważniają cię do projektowania i wdrażania aplikacji w Internecie.
  • Osobiście, to był mój ulubiony kurs dla rozwoju sieci, jak przejść przez front-end i back-end i to jest bardzo dobrze wyjaśnione. Nauczą cię HTML, CSS, Javascript, i PHP.
  • Jest to dobre źródło inspiracji dla stron internetowych: https://github.com/melanierichards/just-build-websites

Moduł 7: Rozwój aplikacji mobilnych ( wybierz, który lubisz najbardziej) (2 Miesiące)

  • IOS
  • Android
  • Flutter (Moja preferowana metoda rozwoju aplikacji)
  • Personalnie nie nauczyłem się rozwoju IOS wcześniej. Ale porównując androida i fluttera, flutter jest szybszy w rozwoju i prototypowaniu, dlatego wolę fluttera

Kursy zaawansowane

Moduł 8: Architektura oprogramowania (2 miesiące)

  • W tym kursie dowiesz się, jak reprezentować architekturę oprogramowania za pomocą narzędzi wizualnych, takich jak UML, co jest bardzo ważne, aby przekazać architekturę udziałowcom, jak również programistom, którzy będą ją wdrażać.
  • Poznasz również niektóre standardowe architektury, ich cechy i kompromisy. Kurs mówi również o tym, jak projekty są oceniane, co sprawia, że dobra architektura, a architektura może być ulepszona.

Moduł 9: Praktyki inżynierii oprogramowania (1 miesiąc)

  • Po ukończeniu tego kursu będziesz w stanie
  1. Stosować podstawowe praktyki inżynierii oprogramowania na poziomie koncepcyjnym dla danego problemu.
  2. Porównać i skontrastować tradycyjne, zwinne i szczupłe metodologie rozwoju na wysokim poziomie. Obejmują one Waterfall, Rational Unified Process, model V, modele przyrostowe, spiralne i przegląd zwinnego sposobu myślenia
  3. Zaproponuj metodologię najlepiej pasującą do danej sytuacji

Opcjonalne

Uczenie maszynowe

  • Właściwie poleciłem bardziej teoretyczny kurs Machine Learning autorstwa Andrew Ng
  • Nawet jeśli jest on nieco przestarzały, uczy koncepcji dobrze i jest nadal jednym z najlepszych kursów uczenia maszynowego tam po wielu latach.

Deep Learning

  • W pięciu kursach poznasz podstawy Deep Learning, zrozumiesz, jak budować sieci neuronowe i dowiesz się, jak prowadzić udane projekty uczenia maszynowego. Będziesz ćwiczyć wszystkie te pomysły w Pythonie i w TensorFlow, którego będą uczyć.
  • Obecnie jestem w trakcie robienia tego kursu i jest on przedstawiony w prosty do zrozumienia sposób. Innym dobrym punktem jest to, że Andrew Ng używa Pythona zamiast Octave.
  • Innym świetnym darmowym zasobem jest fast.ai

Wniosek

Although I have recommended the modules based on university courses, you can mix and match to make the best curriculum for yourself. Jeśli ten artykuł Ci pomógł, proszę pomóż mi podzielić się nim z Twoimi przyjaciółmi! Jeśli chciałbyś dowiedzieć się więcej o mnie i o tym, co robię, odwiedź mnie na mojej stronie internetowej http://www.chiayong.me/

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.