- 3. lépés: Indíts el egy projektet, hogy gyakorold a tanultakat
- Egy pár kezdőbarát projekt, amelyeket kipróbálhatsz
- Level 1 Projects
- Level 2 Projects
- Level 2 Projects
- Level 3 Projects
- Ne add fel könnyen, túl kell törnöd magad a kezdeti nehézségeken
- Nagyon fontos, hogy erős alapokat építs
- Learn by doing. Tanulás közben mindig játssz a kóddal.
- 2. rész: Útiterv a haladó programozóvá váláshoz
- Adatelemzés
- Hogyan tanulhatsz adatelemzést ingyen?
- Az adatelemzés moduljainak vázlata
- Az adatelemzés tanulása közben elkerülendő dolgok
- Szoftverfejlesztés
- Hogyan tanulhatsz ingyen szoftverfejlesztést?
- A szoftverfejlesztés moduljainak vázlata
- Practical Courses
- Felsőfokú tanfolyamok
- Független
- Következtetés
3. lépés: Indíts el egy projektet, hogy gyakorold a tanultakat
A tanfolyamok nézése önmagában nem segít a koncepció elsajátításában. A koncepciót a gyakorlatban kellene alkalmaznod. Ennek legjobb módja az lenne, ha projektekkel állnál elő.
Ha van egy projektötleted, vagy van egy problémád, amit kódolással szeretnél megoldani, az nagyszerű!
Ha nem, akkor készítettem egy listát a kezdőbarát projektekről, amelyekből inspirációt meríthetsz vagy kipróbálhatod őket.
Egy pár kezdőbarát projekt, amelyeket kipróbálhatsz
Itt van néhány terminus, amelyek zavaróak lehetnek
Könyvtárak: A könyvtár olyan kapcsolódó kódrészletek gyűjteménye, amelyeket lefordítottak és egyetlen fájlban tároltak. Ez a fájl összekapcsolható a saját kódunkkal, hogy hozzáférjünk a könyvtárban lévő kódhoz.
API: API az Application Programming Interface (alkalmazásprogramozási interfész) rövidítése. Az API egy olyan szoftveres közvetítő, amely lehetővé teszi, hogy két alkalmazás kommunikáljon egymással. Más szóval, az API lehetővé teszi, hogy funkciókat kérjen egy szoftverszolgáltatótól, amelyeket a saját kódjában használhat. Például a Spotify API lehetővé teszi, hogy adatokat, például dalokat és előadókat kérjen a Spotify-tól, és az adatokat a saját kódjában vagy alkalmazásában felhasználhassa.
Level 1 Projects
Calculator
- Language: Python
- Könyvtárak:
- Kalauz: Nincs
- Kalauz: Nincs
- Kalauz: https://www.programiz.com/python-programming/examples/calculator
Sudoku Solver
- Language: Python
- Könyvtárak:
- Feladványok:
- Könyvtár:
- Útmutató: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Nyelv: Python
- Könyvtárak: None
- Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Level 2 Projects
Chess
- Language: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Level 2 Projects
Chess
- Language: Python vagy Java
- Könyvtárak: None
- Guide: 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
- Könyvtárak: Spotify API
- Útmutató: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb
Automatic time tracking Tool
- Az asztali alkalmazásokon vagy weboldalakon eltöltött idő valós idejű nyomon követésével javíthatja a koncentrációt.
- Language: Python
- Könyvtárak:
- Kalauz: Selenium
- Kalauz: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Level 3 Projects
Instagram Automation
- Automate the process of posting to Instagram
- Language: Python
- Könyvtárak: Flask,Instapy
- Vezérfonal: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Egy bot, amely automatikusan tweetel a hírfolyamodra.
- Nyelv:
- Nyelv: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Egy bot, amely automatikusan tweetel a hírfolyamodra: Python
- Könyvtárak: Twitter API
- Útmutató: 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
- Egy chatbot, amely lehetővé teszi a chat telegram üzenetek automatizálását
- Nyelv: Python
- Könyvtárak: Python-Telegram-API
- Útmutató: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Ez a lista nem teljes körű. Ha van egy probléma, amit meg kell oldanod, gondold át, hogyan tudnád programozással megoldani. Ez is lehet egy projekt.
Ne add fel könnyen, túl kell törnöd magad a kezdeti nehézségeken
A legnagyobb hiba, amit kezdő programozóként elkövethetsz, hogy feladod, mert úgy gondolod, nem vagy elég okos ahhoz, hogy megtanulj programozni. A kódolás megtanulásának semmi köze az intelligenciádhoz.
A programozás megtanulása nehéz, és a legtöbb ember egy ponton nehézségekbe ütközne, mert rengeteg témát kell megtanulni. Ahogy programozol, rengeteg olyan téma lesz, aminek elsőre nem lesz értelme. Szóval, tartózkodj a negatív öngondolkodástól.
Én is elakadok. Gyakran többször is újra kell néznem ugyanazt az előadást vagy videós oktatóanyagot, hogy felfogjam a koncepciót. Ne csüggedj, ha az én helyemben találod magad.
Nagyon fontos, hogy erős alapokat építs
A programozás alapjait, akármilyen eleminek is tűnnek elsőre, mindig az első helyre kell tenni: minél jobban megérted őket, annál könnyebb lesz a haladóbb fogalmakat megtanulni. Ha az éppen tanult témának nincs értelme számodra, maradj ott, ahol vagy. Ne lépjen tovább a következő témára. Az előreugrás ahhoz hasonlít, mintha alap nélkül építenél házat, elhanyagolva az alapot.
Ha az általad használt oktatóanyag (vagy könyv) nem magyarázta el kellőképpen a témát, lehet, hogy más, neked megfelelő forrásokat kell keresned. A Google-on szinte bármit, amit meg akarsz tanulni, ingyenesen megtalálhatsz. Találja ki, hogy mire keressen rá (pl. in + bármilyen más hasznos kulcsszó).
Vegyen legalább 20 percet arra, hogy valamire magától rájöjjön, mielőtt segítséget keresne. Jó esély van rá, hogy a válasz már ott van előtted. A küszködés által jobban tanulsz és összességében jobb programozó leszel.
A stackoverflow és a learn programming aranybányák a programozási segítséghez.
Learn by doing. Tanulás közben mindig játssz a kóddal.
A cél az, hogy a tanulás útján haladva tudatában legyél a saját tanulásodnak. Ezért ne kövesse vakon a tanfolyamokat, és ne másolja vakon a kódot anélkül, hogy előbb megértené azt. Értse meg a leckében tanított fogalmakat, és próbálja meg újraalkotni azokat.
Ahogy halad előre, tegye szokásává a programozás gyakorlását. Ezt megteheti a leetcode-on, a hackerrank-on, vagy egy projekt elkészítésével. Próbálj meg minden modul után egy projektet készíteni a tanult fogalmakkal. Amikor online tanfolyamokat végeztem, igyekeztem minden héten egy projektet készíteni, alkalmazva a tanult fogalmakat.
2. rész: Útiterv a haladó programozóvá váláshoz
Most, hogy megtanultad a programozás alapjait, a következő lépés az lenne, hogy elgondolkodj azon, hogy a programozás melyik útját szeretnéd tovább tanulni. A programozás alapjainak elsajátítása után számos útvonalra merészkedhetsz, a főbb és népszerűbb útvonalak a következők: Szoftverfejlesztés & Adatelemzés.
Adatelemzés
Mi az adatelemzés?
Az adatelemzés a nyers adatok vizsgálatának tudománya, amelyből új információkra lehet következtetni. Magában foglalja egy algoritmikus vagy mechanikus folyamat alkalmazását a meglátások levezetéséhez. Például több adathalmaz lefuttatása, hogy értelmes összefüggéseket keressenek egymás között.
Miért érdemes tehát adatelemzést tanulni? A big data a jövő. Exponenciális ütemben keletkezik, és számos vállalat használja fel ezeket az adatokat a jobb döntések meghozatalához, valamint a meglévő elméletek vagy modellek ellenőrzéséhez és megcáfolásához. Az adatelemzés iránti kereslet a jövőben várhatóan növekedni fog, mivel számos vállalat döntéshozatali folyamatának középpontjában az adatok állnak majd.
Hogyan tanulhatsz adatelemzést ingyen?
Átfésültem az egyetemek tananyagát, és kitaláltam egy utat, amin megpróbálom az ingyenes online kurzusokat az egyetemi kurzusoknak megfeleltetni. Ezek a tanfolyamok azonban mind Python nyelven vannak, ha más nyelven szeretnél tanulni, nyugodtan nézz meg más tanfolyamokat.
Az adatelemzés moduljainak vázlata
A vázlat általában az egyetemi modulokon alapul. Azonban néhány fontos modult, mint például az Adatszerkezet és Algoritmus, amit az egyetemeken tanítanak, kihagyok, mivel azok inkább konceptuálisak és magasabb szintűek.
Megjegyzem: A gépi tanulást előrébb helyeztem a prioritásban, mivel lehetővé teszi, hogy az alapvető kurzusokon tanult készségeket felhasználja.
Az alapvető kurzusok
Modul 1: A Python alapjainak elsajátítása (1 hónap)
- A Python szintaxisának elsajátítása
- A ciklusok elsajátítása
- A tárgyközpontú programozás elsajátítása
Modul 2: Adatok előfeldolgozása, adatvizualizáció, feltáró adatelemzés (1 hónap)
- A python könyvtárak (matplotlib, numpy és pandas)
- Ezek a könyvtárak lehetővé teszik az adatok manipulálását
Felsőfokú tanfolyamok
3. modul: Gépi tanulás (2 hónap)
- Előfeltétel: Lineáris algebra
- A gépi tanulás egy eléggé technikai matematikai kurzus
- A Pythonban van egy elég átfogó könyvtár a gépi tanuláshoz, a Scikit-Learn.
- Ha gyakorlatiasabb megközelítést szeretnél a gépi tanulás tanulásához, akkor nézd meg a Kaggle Learn-t.
Real-World Tools Courses
Module 4: Databases (SQL) (1 Month)
- Az adatbázis tanfolyam alapvetően megtanítja, hogyan tárolja az adatokat, és hogyan tudja ezeket az adatokat lekérni programozási funkciók elvégzéséhez.
- Az adatbázisok és az SQL ismerete elengedhetetlen, ha adattudós akarsz lenni.
Modul 5: Valós eszközök tanfolyamok
- Hadoop & Map-Reduce + Spark (válassz egyet) (1.5 hónap)
- Ezek a Big Data eszközök, amelyeket az ipar általánosan használ nagy mennyiségű adat feldolgozására.
- A Hadoop technológiák elsajátítása sok alapvető ismeretet, elméletet és gyakorlati készséget ad. Emellett újdonságokat is találhat a használatával.
- A Spark a Hadoop modern implementációja, és egyre több felhasználási esetet lát.
6. modul: Data Storytelling (1 hét)
- A történet bemutatása az adatokkal az elemzési szakemberek hiányzó láncszeme abban, hogy a vezetők, a menedzsment és más érdekelt felek számára átadják az adatjelek és a meglátások lényegét.
Választható kurzusok
- Adatszerkezet
- Algoritmus
- Mélytanulás
- Öt kurzuson megismerheti a mélytanulás alapjait, megértheti, hogyan építsen neurális hálózatokat, és megtanulhatja, hogyan vezessen sikeres gépi tanulási projekteket. Mindezeket az ötleteket Pythonban és a TensorFlow-ban fogod gyakorolni, amit megtanítanak.
- Ez az egyik legjobb mélytanulási tanfolyam. Jelenleg ennek a tanfolyamnak a közepén vagyok, és egyetértek a véleményekkel, mivel egyszerű és világos módon van bemutatva, annak ellenére, hogy a mélytanulás egy technikai téma.
- Egy másik nagyszerű ingyenes forrás a fast.ai
Az adatelemzés tanulása közben elkerülendő dolgok
A buktató az, hogy csak tanulsz, de nem alkalmazod a tudást. Én például úgy próbálom alkalmazni a tudásomat, hogy minden elvégzett modul után elindítok egy projektet. Data Analytics esetében kipróbálhatod magad egy általad választott versenyen a Kaggle-ről. Használd a Kaggle Learn-t hasznos útmutatóként
Szoftverfejlesztés
Mi a szoftverfejlesztés?
Dióhéjban összefoglalva, a szoftverfejlesztés alapvetően a programozási fogalmak felhasználása alkalmazások készítéséhez
Hogyan tanulhatsz ingyen szoftverfejlesztést?
Úgy gondolom, hogy a szoftvermérnökséghez alapvetőbb számítástechnikai fogalmak megértése szükséges, mint az adatelemzéshez, ezért a modulvázlatomban több elméleti kurzus szerepelt.
Szeretnél építeni dolgokat, hogy ráérezz?
Ha igen, tanulj Pythont és menj a gyakorlati kurzusokra. Az alapvető tanfolyamokra bármikor visszatérhetsz, ha akadályba ütközöl az elméleti ismeretek terén.
A szoftverfejlesztés moduljainak vázlata
Az alapvető tanfolyamok
1. modul: A Python alapjainak elsajátítása (1 hónap)
- A Python szintaxisának elsajátítása
- A ciklusok elsajátítása
- A tárgyközpontú programozás elsajátítása
Modul 2: Adatszerkezetek (2 hónap)
- Ez a kurzus olyan alapvető adatszerkezetekkel foglalkozik, mint a kapcsolt listák, halmok, sorok, bináris fák és hash táblák, valamint keresési és rendezési algoritmusokkal, mint a bináris keresés, quicksort, mergesort, insertion sort, stb.
- Az adatszerkezetek fontosak, mivel lehetővé teszik számunkra, hogy javítsuk a kódunk teljesítményét azáltal, hogy a legjobb adattípust használjuk a kódunkhoz.
- Az általam ajánlott adatszerkezeti kurzus Java nyelven van, mivel arra kényszerít minket, hogy a python egyszerű nyelvéről áttérjünk egy beszédesebb nyelvre. Emellett a Java jó az objektumorientált programozás és az adatszerkezetek megtanulására.
3. modul: Algoritmusok (2 hónap)
- Ez a második része egy kétrészes ingyenes online Coursera kurzus sorozatnak, amely az adatszerkezeteket és algoritmusokat tárgyalja Robert Sedgewick és Kevin Wayne, mindketten informatika professzorok.
- Ebben a részben a gráf- és stringfeldolgozó algoritmusokat ismerheted meg.
- Az alkalmazásfejlesztésben használt néhány haladó adatszerkezetet és algoritmust is megismerhet.
4. modul : (Adatbázisok) (1 hónap)
- Az adatbázis-tanfolyam alapvetően azt tanítja meg, hogyan tárolják az adatokat, és hogyan lehet ezeket az adatokat lekérni a programozási funkciók elvégzéséhez.
5. modul: Hálózatépítés (1 hónap)
- A hálózati tanfolyam elvégzése nem túl fontos, így ha akarod, kihagyhatod. Ha azonban érdekel a kiberbiztonság, akkor ez egy feltétlenül szükséges kurzus
Practical Courses
Modul 6: 9-10. hét (Webfejlesztés) (2 hónap)
- Témák: adatbázis-tervezés, skálázhatóság, biztonság és felhasználói élmény. Gyakorlati projekteken keresztül megtanulsz API-kat írni és használni, interaktív felhasználói felületeket létrehozni, és olyan felhőszolgáltatásokat kihasználni, mint a GitHub és a Heroku. A tanfolyam végére olyan alapelvekkel, nyelvekkel és eszközökkel kapcsolatos ismeretekkel és tapasztalatokkal fogsz rendelkezni, amelyek képessé tesznek arra, hogy alkalmazásokat tervezz és telepíts az interneten.
- Személyesen ez volt a kedvenc tanfolyamom a webfejlesztéshez, mivel végigveszik a front endet és a back endet, és nagyon jól elmagyarázzák. Megtanítanák a HTML-t, a CSS-t, a Javascriptet és a PHP-t.
- Ez egy jó forrás a weboldal inspirációkhoz: https://github.com/melanierichards/just-build-websites
7. modul: Mobil alkalmazásfejlesztés ( válaszd ki, amelyik jobban tetszik) (2 hónap)
- IOS
- Android
- Flutter (Az általam preferált módszer az alkalmazásfejlesztésre)
- Személyesen én még nem tanultam IOS fejlesztést. De összehasonlítva az android és a flutter között, a flutterrel gyorsabb a fejlesztés és a prototípus készítés, ezért inkább a fluttert választom
Felsőfokú tanfolyamok
8. modul: Szoftverarchitektúra (2 hónap)
- Ez a tanfolyam megtanulja, hogyan kell egy szoftverarchitektúrát vizuális eszközökkel, például az UML segítségével ábrázolni, ami nagyon fontos az architektúra kommunikálásához a részvényesek és az azt megvalósító fejlesztők felé.
- Megtanul néhány szabványos architektúrát, azok tulajdonságait és kompromisszumait is. A kurzus arról is beszél, hogyan értékelik a terveket, mitől lesz jó egy architektúra, és hogyan lehet javítani az architektúrát.
9. modul: Szoftverfejlesztési gyakorlatok (1 hónap)
- A kurzus elvégzése után Ön képes lesz
- Az alapvető szoftverfejlesztési gyakorlatokat koncepcionális szinten alkalmazni egy adott problémára.
- Hagyományos, agilis és lean fejlesztési módszertanok összehasonlítása és összehasonlítása magas szinten. Ezek közé tartozik a vízesés, a Rational Unified Process, a V modell, az inkrementális, a spirális modellek és az agilis gondolkodásmód áttekintése
- Az adott helyzethez legjobban illeszkedő módszertan javaslata
Független
Gépi tanulás
- Én tulajdonképpen egy elméletibb Machine Learning kurzust ajánlottam Andrew Ng-től
- Még ha kissé elavult is, jól tanítja a koncepciót, és sok év után is az egyik legjobb gépi tanulás tanfolyam.
Mélytanulás
- Öt kurzuson megtanulod a mélytanulás alapjait, megérted, hogyan kell neurális hálózatokat építeni, és megtanulod, hogyan vezess sikeres gépi tanulási projekteket. Mindezeket az ötleteket Pythonban és a TensorFlow-ban fogod gyakorolni, amit megtanítanak.
- Pillanatnyilag éppen ezt a kurzust végzem, és egyszerűen érthetően van bemutatva. Egy másik jó pont, hogy Andrew Ng Pythont használ az octave helyett.
- Egy másik nagyszerű ingyenes forrás a fast.ai
Következtetés
Bár az egyetemi kurzusok alapján ajánlottam a modulokat, keverheted és összeállíthatod a számodra legjobb tananyagot. Ha ez a cikk segített neked, kérlek, segíts megosztani barátaiddal! Ha többet szeretnél megtudni rólam és arról, hogy mivel foglalkozom, látogass el a weboldalamra http://www.chiayong.me/