- Pasul 3: Începeți un proiect pentru a pune în practică ceea ce ați învățat
- Câteva proiecte prietenoase pentru începători pe care le puteți încerca
- Proiecte de nivel 2
- Proiecte de nivel 3
- Nu renunțați ușor, trebuie să treceți peste luptele inițiale
- Este important să construiți o bază solidă
- Învățați prin practică. Întotdeauna jucați-vă cu codul în timp ce învățați.
- Partea 2: Foaia de parcurs pentru a deveni un programator avansat
- Analiză de date
- Cum poți învăța gratuit analiza datelor?
- Schema modulelor de Data Analytics
- Ceea ce trebuie să evitați în timp ce învățați Data Analytics
- Inginerie software
- Cum puteți învăța inginerie software gratuit?
- Outline of Software Engineering Modules
- Cursuri practice
- Cursuri avansate
- Opțional
- Concluzie
Pasul 3: Începeți un proiect pentru a pune în practică ceea ce ați învățat
Vizionarea cursurilor singure nu vă va ajuta să asimilați conceptul. Ar trebui să puneți conceptul în practică. Cel mai bun mod de a face acest lucru ar fi să veniți cu proiecte.
Dacă aveți o idee pentru un proiect sau aveți o problemă pe care doriți să o rezolvați cu ajutorul codării, este minunat!
Dacă nu, v-am pregătit o listă de proiecte prietenoase pentru începători din care vă puteți inspira sau pe care le puteți încerca.
Câteva proiecte prietenoase pentru începători pe care le puteți încerca
Iată câteva terminologii care ar putea fi confuze
Biblioteci: O bibliotecă este o colecție de bucăți de cod legate între ele care au fost compilate și stocate împreună într-un singur fișier. Acel fișier poate fi legat cu codul dumneavoastră pentru a vă oferi acces la codul din bibliotecă.
API: API înseamnă Application Programming Interface (interfață de programare a aplicațiilor). O API este un intermediar software care permite ca două aplicații să dialogheze între ele. Cu alte cuvinte, API vă permite să solicitați funcții de la un furnizor de software pe care să le utilizați în codul dumneavoastră. De exemplu, API-ul Spotify vă permite să solicitați date precum melodii și artiști de la Spotify și puteți utiliza datele în codul sau aplicația dvs: Python
Sudoku Solver
- Limbaj: Python
- Biblioteci: Niciuna
- Ghid: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Limbaj: Python
- Biblioteci: Niciuna
- Ghid: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Proiecte de nivel 2
Chess
- Limbaj: Python sau Java
- Librării: Niciuna
- Ghid: https://www.youtube.com/watch?v=ejZqLsQDjuo
Weekly Discover Spotify Playlist
- Crearea propriului sistem pentru a face ceva similar cu Weekly Discover Spotify playlist
- Limbajul: Python
- Biblioteci: Spotify API
- Ghid: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb
Instrument automat de urmărire a timpului
- Îmbunătățiți concentrarea prin urmărirea în timp real a timpului petrecut pe aplicațiile desktop sau pe site-urile web.
- Limbajul: Python
- Biblioteci: Selenium
- Ghid: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Proiecte de nivel 3
Automatizarea Instagram
- Automatizarea procesului de postare pe Instagram
- Limbaj: Limbajul: Python
- Biblioteci: Flask,Instapy
- Ghid: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Un bot care trimite automat tweet-uri în feed-ul tău.
- Limbajul: Python
- Librării: Twitter API
- Ghid: 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
- Un chatbot care vă permite să automatizați mesajele de chat telegram
- Limbaj: Python
- Librării: Python-Telegram-API
- Ghid: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Aceasta nu este o listă exhaustivă. Dacă aveți o problemă pe care trebuie să o rezolvați, gândiți-vă cum o puteți rezolva cu ajutorul programării. Acesta poate fi și un proiect.
Nu renunțați ușor, trebuie să treceți peste luptele inițiale
Cea mai mare greșeală pe care o puteți face ca programator aspirant este să renunțați pentru că nu credeți că sunteți suficient de deștept pentru a învăța să programați. A învăța să programezi nu are nimic de-a face cu inteligența ta.
Învățarea programării este dificilă și majoritatea oamenilor se vor confrunta cu dificultăți la un moment dat, deoarece există o mulțime de subiecte de învățat. Pe măsură ce programați, vor exista o mulțime de subiecte care nu vor avea sens de prima dată. Așadar, abțineți-vă de la gândurile de sine negative.
Și eu mă blochez. De multe ori trebuie să revăd aceeași prelegere sau tutorial video de mai multe ori pentru a înțelege conceptul. Nu vă descurajați dacă vă aflați în locul meu.
Este important să construiți o bază solidă
Oricât de elementare ar părea la început, bazele programării trebuie să fie întotdeauna pe primul loc: cu cât le înțelegeți mai bine, cu atât este mai ușor să învățați concepte mai avansate. Dacă subiectul actual pe care îl învățați nu are sens pentru dumneavoastră, rămâneți unde vă aflați. Nu treceți la subiectul următor. A sări mai departe este similar cu a construi o casă fără bază, neglijând fundația.
Dacă tutorialul (sau cartea) pe care o folosiți nu a explicat suficient subiectul, este posibil să trebuiască să găsiți alte resurse care să vi se potrivească. Puteți găsi aproape orice doriți să învățați gratuit pe Google. Gândiți-vă ce să căutați (de exemplu, în + orice alte cuvinte cheie utile).
Astăziți-vă cel puțin 20 de minute pentru a înțelege ceva pe cont propriu înainte de a căuta ajutor. Există o șansă bună ca răspunsul să fie deja în fața dumneavoastră. Strădania vă face să învățați mai bine și să deveniți un programator mai bun în general.
Stackoverflow și learn programming sunt mine de aur pentru asistență în programare.
Învățați prin practică. Întotdeauna jucați-vă cu codul în timp ce învățați.
Obiectivul este de a fi conștient de propria învățare pe măsură ce progresați pe calea învățării. Prin urmare, nu urmați orbește cursurile și nu copiați orbește codul fără să-l înțelegeți mai întâi. Înțelegeți conceptele care au fost predate în cadrul lecției și încercați să le recreați.
În timp ce progresați, faceți-vă un obicei din a vă exersa programarea. Puteți face acest lucru pe leetcode, hackerrank, sau făcând un proiect. Încercați să faceți un proiect după fiecare modul cu conceptele pe care le-ați învățat. Când făceam cursuri online încercam să fac un proiect în fiecare săptămână, aplicând toate conceptele învățate.
Partea 2: Foaia de parcurs pentru a deveni un programator avansat
Acum că ați învățat noțiunile de bază ale programării, următorul pas ar fi să vă gândiți pe ce cale de programare doriți să învățați mai mult. Există multe căi în care vă puteți aventura odată ce ați însușit elementele de bază ale programării, cele mai importante și mai populare căi fiind Inginerie software & Analiză de date.
Analiză de date
Ce este analiza de date?
Analiză de date este știința examinării datelor brute pentru a concluziona noi informații. Aceasta implică aplicarea unui proces algoritmic sau mecanic pentru a obține informații. De exemplu, parcurgerea mai multor seturi de date pentru a căuta corelații semnificative între ele.
Atunci, de ce ar trebui să învățați analiza datelor? Big Data este viitorul. Se generează într-un ritm exponențial, iar multe companii se folosesc de aceste date pentru a lua decizii mai bune, precum și pentru a verifica și infirma teoriile sau modelele existente. Se așteaptă ca cererea de analiză a datelor să crească în viitor, deoarece datele vor fi în centrul procesului de luare a deciziilor în multe companii.
Cum poți învăța gratuit analiza datelor?
Am răscolit curricula universităților și am găsit o cale pentru a încerca să potrivesc cursurile online gratuite cu cursurile universitare. Cu toate acestea, toate aceste cursuri sunt în Python, dacă doriți să învățați într-un alt limbaj, nu ezitați să consultați alte cursuri.
Schema modulelor de Data Analytics
Schema se bazează în general pe modulele universitare. Cu toate acestea, exclud unele dintre modulele importante, cum ar fi Data Structure and Algorithm (Structura datelor și Algoritm), pe care le predau universitățile, deoarece acestea sunt mai conceptuale și de nivel superior.
Rețineți: Am pus învățarea mașinilor mai sus în ordinea priorităților, deoarece vă permite să folosiți abilitățile pe care le-ați învățat în cursurile fundamentale.
Cursuri fundamentale
Modulul 1: Învățarea noțiunilor fundamentale de Python (1 lună)
- Învățarea sintaxei Python
- Învățarea buclelor
- Învățarea programării orientate pe obiecte
Module 2: Preprocesarea datelor, vizualizarea datelor, analiza exploratorie a datelor (1 lună)
- Învățarea modului de utilizare a bibliotecilor python (matplotlib, numpy și pandas)
- Aceste biblioteci permit manipularea datelor
Cursuri avansate
Module 3: Machine Learning (2 luni)
- Precondiții: Linear Algebra
- Machine Learning este un curs destul de tehnic de matematică
- Python are o bibliotecă destul de cuprinzătoare pentru Machine Learning numită Scikit-Learn.
- Dacă doriți o abordare mai practică a învățării învățării automate, puteți verifica Kaggle Learn.
Cursuri de instrumente din lumea reală
Modulul 4: Baze de date (SQL) (1 lună)
- Cursul de baze de date vă învață, în principiu, cum sunt stocate datele și cum puteți prelua aceste date pentru a efectua funcții de programare.
- Cunoștințele de lucru cu bazele de date și SQL sunt o necesitate dacă doriți să deveniți un cercetător de date.
Module 5: Cursuri de instrumente din lumea reală
- Hadoop & Map-Reduce + Spark(alegeți unul) (1.5 luni)
- Acestea sunt instrumente Big Data pe care industria le folosește în mod obișnuit pentru procesarea unor cantități mari de date.
- Învățarea tehnologiilor Hadoop vă va oferi o mulțime de cunoștințe fundamentale, teorie și abilități practice. De asemenea, este posibil să descoperiți ceva nou folosindu-le.
- Spark este implementarea modernă a Hadoop și cunoaște o creștere a cazurilor de utilizare.
Modulul 6: Data Storytelling (1 săptămână)
- Prezentarea poveștii cu date este veriga lipsă a profesionistului în analiză pentru a livra esența semnalelor de date și a perspectivelor către directori, conducere și alte părți interesate.
Cursuri opționale
- Structura datelor
- Algoritmi
- Deep Learning
- În cinci cursuri, veți învăța bazele Deep Learning, veți înțelege cum să construiți rețele neuronale și veți învăța cum să conduceți cu succes proiecte de machine learning. Veți pune în practică toate aceste idei în Python și în TensorFlow, pe care le vor preda.
- Este unul dintre cele mai bune cursuri de deep learning de pe piață. În prezent, sunt în mijlocul acestui curs și sunt de acord cu recenziile, deoarece este prezentat într-o manieră simplă și clară, în ciuda faptului că Deep Learning este un subiect tehnic.
- O altă resursă gratuită excelentă este fast.ai
Ceea ce trebuie să evitați în timp ce învățați Data Analytics
Capcana este că doar învățați, dar nu aplicați cunoștințele. O modalitate prin care încerc să-mi aplic cunoștințele este să încep un proiect după fiecare modul pe care l-am finalizat. Pentru Data Analytics vă puteți strădui la o competiție la alegere din Kaggle. Folosiți Kaggle Learn ca un ghid util
Inginerie software
Ce este ingineria software?
În câteva cuvinte, ingineria software este practic utilizarea conceptelor de programare pentru a construi aplicații
Cum puteți învăța inginerie software gratuit?
Cred că Software Engineering necesită o înțelegere mai fundamentală a conceptelor de calcul decât Data Analytics, de aceea, în schița modulelor mele, am inclus mai multe cursuri teoretice.
Vrei să construiești lucruri pentru a-ți face o idee?
Dacă da, învață Python și mergi la cursurile practice. Puteți oricând să reveniți la cursurile fundamentale atunci când vă loviți de un obstacol în ceea ce privește cunoștințele teoretice.
Outline of Software Engineering Modules
Cursuri fundamentale
Module 1: Învățarea noțiunilor de bază ale Python (1 lună)
- Învățarea sintaxei Python
- Învățarea buclelor
- Învățarea programării orientate pe obiecte
Module 2: Structuri de date (2 luni)
- Acest curs acoperă structurile de date esențiale, cum ar fi listele legate, stivele, cozile de așteptare, arborii binari și tabelele hash, precum și algoritmii de căutare și sortare, cum ar fi căutarea binară, quicksort, mergesort, sortarea prin inserție, etc.
- Structurile de date sunt importante deoarece ne permit să îmbunătățim performanța codului nostru prin utilizarea celui mai bun tip de date pentru codul nostru.
- Cursul de structuri de date pe care l-am recomandat este în Java deoarece ne obligă să facem tranziția de la un limbaj simplu de tip python la un limbaj mai verbos. De asemenea, Java este bun pentru a învăța programarea orientată pe obiecte și Structuri de date.
Modulul 3: Algoritmi (2 luni)
- Aceasta este a doua parte a unei serii de două cursuri online gratuite Coursera care acoperă structurile de date și algoritmii, susținute de Robert Sedgewick și Kevin Wayne, ambii sunt profesori de informatică.
- În această parte, veți învăța despre algoritmii de procesare a grafurilor și a șirurilor de caractere.
- Voi învăța, de asemenea, unele structuri de date și algoritmi avansați utilizați în dezvoltarea de aplicații.
Modulul 4 : (Baze de date) (1 lună)
- Cursul de baze de date vă învață, în esență, cum se stochează datele și cum puteți prelua aceste date pentru a realiza funcții de programare.
Modulul 5: Networking (1 lună)
- Facerea unui curs de networking nu este foarte importantă, așa că puteți sări peste el dacă doriți. Cu toate acestea, dacă vă interesează securitatea cibernetică, este un curs absolut esențial
Cursuri practice
Modulul 6: Săptămâna 9-10 (Web Development) (2 luni)
- Subiectele includ proiectarea bazelor de date, scalabilitatea, securitatea și experiența utilizatorului. Prin proiecte practice, veți învăța să scrieți și să folosiți API-uri, să creați interfețe interactive și să folosiți servicii cloud precum GitHub și Heroku. Până la sfârșitul cursului, veți ieși cu cunoștințe și experiență în principii, limbaje și instrumente care vă vor permite să proiectați și să implementați aplicații pe Internet.
- Personal, acesta a fost cursul meu preferat pentru dezvoltarea web, deoarece trece prin front-end și back-end și este foarte bine explicat. Ei te-ar învăța HTML, CSS, Javascript și PHP.
- Este o resursă bună pentru inspirații de site-uri web: https://github.com/melanierichards/just-build-websites
Modulul 7: Dezvoltarea aplicațiilor mobile ( alegeți cea care vă place cel mai mult) (2 luni)
- IOS
- Android
- Flutter (metoda mea preferată de dezvoltare a aplicațiilor)
- Personal, nu am învățat până acum dezvoltarea IOS. Dar comparând între Android și Flutter, Flutter este mai rapid de dezvoltat și de realizat prototipuri și, prin urmare, prefer Flutter
Cursuri avansate
Modulul 8: Arhitectura software (2 luni)
- În acest curs, veți învăța cum să reprezentați o arhitectură software folosind instrumente vizuale precum UML, ceea ce este foarte important pentru a comunica arhitectura cu acționarii, precum și cu dezvoltatorii care o vor implementa.
- Voi învăța, de asemenea, câteva dintre arhitecturile standard, calitățile și compromisurile lor. Cursul vorbește, de asemenea, despre modul în care sunt evaluate proiectele, despre ceea ce face o arhitectură bună și despre arhitectura care poate fi îmbunătățită.
Modulul 9: Practici de inginerie software (1 lună)
- După finalizarea acestui curs, veți fi capabil să
- Aplicați practicile de bază ale ingineriei software la nivel conceptual pentru o problemă dată.
- Comparați și contrastați metodologiile de dezvoltare tradiționale, agile și lean la un nivel înalt. Printre acestea se numără Waterfall, Rational Unified Process, modelul V, Incremental, modelele Spiral și o prezentare generală a mentalității agile
- Propuneți o metodologie care se potrivește cel mai bine pentru o situație dată
Opțional
Machine Learning
- Am recomandat de fapt un curs mai teoretic de Machine Learning de Andrew Ng
- Chiar dacă este ușor depășit, el predă bine conceptul și este încă unul dintre cele mai bune cursuri de machine learning după mulți ani.
Deep Learning
- În cinci cursuri, veți învăța bazele Deep Learning, veți înțelege cum să construiți rețele neuronale și veți învăța cum să conduceți proiecte de succes de machine learning. Veți pune în practică toate aceste idei în Python și în TensorFlow, pe care le vor preda.
- Curentan, sunt în mijlocul acestui curs și este prezentat într-un mod simplu de înțeles. Un alt punct bun este că Andrew Ng folosește Python în loc de octave.
- O altă resursă gratuită excelentă este fast.ai
Concluzie
Deși am recomandat modulele pe baza cursurilor universitare, puteți amesteca și potrivi pentru a vă face cel mai bun program de studiu. Dacă acest articol te-a ajutat, te rog să mă ajuți să îl împărtășești cu prietenii tăi! Dacă doriți să aflați mai multe despre mine și despre ceea ce fac, vă rog să mă vizitați pe site-ul meu http://www.chiayong.me/
.