- Vaihe 3: Aloita projekti, jonka avulla voit harjoitella oppimaasi
- Joitakin aloittelijoille sopivia projekteja, joita voit kokeilla
- Tason 1 projektit
- Level 2 Projects
- Level 3 Projects
- Älä luovuta helposti, sinun on murtauduttava alkuvaikeuksien yli
- On tärkeää rakentaa vahva perusta
- Opi tekemällä. Leiki aina koodilla oppiessasi.
- Osa 2: Tiekartta edistyneeksi ohjelmoijaksi
- Data-analytiikka
- Miten data-analytiikkaa voi opiskella ilmaiseksi?
- Data-analytiikan moduulien hahmotelma
- Mitä kannattaa välttää Data Analyticsia opetellessa
- Outline of Software Engineering Modules
- Käytännön kurssit
- Jatkokurssit
- Vaihtoehtoinen
- Conclusion
Vaihe 3: Aloita projekti, jonka avulla voit harjoitella oppimaasi
Kurssien katsominen ei yksin auta sinua sisäistämään käsitettä. Sinun täytyisi panna käsite käytäntöön. Paras tapa tehdä se olisi keksiä projekteja.
Jos sinulla on idea projektista tai ongelma, jonka haluat ratkaista koodaamalla, se on hienoa!
Jos ei ole, olen laatinut listan aloittelijoille sopivista projekteista, joista voit saada inspiraatiota tai joita voit kokeilla.
Joitakin aloittelijoille sopivia projekteja, joita voit kokeilla
Tässä on joitakin termejä, jotka saattavat olla hämmentäviä
Kirjastot: Kirjasto on kokoelma toisiinsa liittyviä koodinpätkiä, jotka on käännetty ja tallennettu yhteen tiedostoon. Tämä tiedosto voidaan linkittää omaan koodiin, jolloin voit käyttää kirjaston koodia.
API: API on lyhenne sanoista Application Programming Interface. API on ohjelmiston välittäjä, jonka avulla kaksi sovellusta voi keskustella keskenään. Toisin sanoen API:n avulla voit pyytää ohjelmistotoimittajalta toimintoja, joita voit käyttää koodissasi. Esimerkiksi Spotify API:n avulla voit pyytää Spotifylta tietoja, kuten kappaleita ja artisteja, ja voit hyödyntää tietoja omassa koodissasi tai sovelluksessasi.
Tason 1 projektit
Laskuri
- Kieli: Python
- Kirjastot:
- Ohjeita:
- Ohjeita:
- Ohjeita:
- Ohjeita: Ei mitään
- Ohjeita: https://www.programiz.com/python-programming/examples/calculator
Sudoku Solver
- Language: Python
- Kirjastot: None
- Guide: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Language: Python
- Kirjastot: None
- Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Level 2 Projects
Chess
- Language: Python tai Java
- Kirjastot: 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
- Kirjastot: Spotify API
- Ohjeita: Python
- Kirjastot: Selenium
- Ohjeita: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Level 3 Projects
Instagram Automation
- Automate the process of posting to Instagram
- Language: Python
- Kirjastot: Flask,Instapy
- Ohjeita: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Botti, joka twiittaa automaattisesti syötteeseesi.
- Kieli:
- Botti, joka twiittaa automaattisesti syötteeseesi: Python
- Kirjastot: Twitter API
- Ohjeita: 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
- Chatbot, jonka avulla voit automatisoida chat-telegram-viestejä
- Kieli: Python
- Kirjastot: Python-Telegram-API
- Ohje: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Tämä ei ole tyhjentävä luettelo. Jos sinulla on ongelma, joka sinun on ratkaistava, mieti, miten voit ratkaista sen ohjelmoinnin avulla. Sekin voi olla projekti.
Älä luovuta helposti, sinun on murtauduttava alkuvaikeuksien yli
Suurin virhe, jonka voit tehdä aloittelevana ohjelmoijana, on luovuttaminen, koska et usko olevasi tarpeeksi fiksu oppiaksesi ohjelmoimaan. Koodaamaan oppimisella ei ole mitään tekemistä älykkyytesi kanssa.
Oppiminen ohjelmoinnissa on vaikeaa, ja useimmat kohtaavat jossain vaiheessa vaikeuksia, koska opittavia aiheita on paljon. Ohjelmoidessasi tulee olemaan paljon aiheita, joissa ei ole järkeä ensimmäisellä kerralla. Pidättäytykää siis negatiivisista itseajatuksista.
Minäkin jään jumiin. Joudun usein katsomaan saman luennon tai video-opetuksen useita kertoja uudelleen, jotta ymmärrän käsitteen. Älä lannistu, jos huomaat olevasi samassa tilanteessa kuin minä.
On tärkeää rakentaa vahva perusta
Niin alkeellisilta kuin ne aluksi tuntuvatkin, ohjelmoinnin perusteet on aina asetettava etusijalle: mitä paremmin ymmärrät ne, sitä helpompi on oppia edistyneempiä käsitteitä. Jos oppimassasi nykyisessä aiheessa ei ole mitään järkeä, pysy siinä missä oletkin. Älä siirry seuraavaan aiheeseen. Eteenpäin hyppääminen on samanlaista kuin talon rakentaminen ilman pohjaa, perustuksen laiminlyönti.
Jos käyttämäsi opetusohjelma (tai kirja) ei selittänyt aihetta riittävästi, sinun on ehkä etsittävä muita sinulle sopivia lähteitä. Googlella voit löytää melkein mitä tahansa, mitä haluat oppia ilmaiseksi. Mieti, mitä haet (esim. in + muita hyödyllisiä avainsanoja).
Varaa vähintään 20 minuuttia aikaa selvittääksesi jotain asiaa itse, ennen kuin etsit apua. On hyvin mahdollista, että vastaus on jo edessäsi. Rimpuileminen tekee sinusta paremman oppijan ja ylipäätään paremman ohjelmoijan.
Stackoverflow ja learn programming ovat ohjelmointiavun kultakaivoksia.
Opi tekemällä. Leiki aina koodilla oppiessasi.
Tavoitteena on olla tietoinen omasta oppimisestasi oppimispolun edetessä. Älä siis seuraa sokeasti kursseja ja kopioi sokeasti koodia ymmärtämättä sitä ensin. Ymmärrä oppitunnilla opetetut käsitteet ja yritä luoda ne uudelleen.
Kun edistyt, ota tavaksi harjoitella ohjelmointia. Voit tehdä sen leetcodessa, hackerrankissa tai tekemällä projektin. Yritä tehdä projekti jokaisen moduulin jälkeen oppimillasi käsitteillä. Kun tein verkkokursseja, yritin tehdä projektin joka viikko soveltaen kaikkia oppimiani käsitteitä.
Osa 2: Tiekartta edistyneeksi ohjelmoijaksi
Nyt kun olet oppinut ohjelmoinnin perusteet, seuraava askel olisi miettiä, mitä ohjelmoinnin polkua haluat oppia lisää. On monia polkuja, joille voit uskaltautua, kun olet ymmärtänyt ohjelmoinnin perusteet, ja tärkeimmät ja suosituimmat polut ovat ohjelmistotekniikka & Data-analytiikka.
Data-analytiikka
Mitä on data-analytiikka?
Data-analytiikka on tiedettä, jossa raakadataa tutkitaan uuden tiedon päättelemiseksi. Siihen kuuluu algoritmisen tai mekaanisen prosessin soveltaminen oivallusten johtamiseksi. Esimerkiksi useiden tietokokonaisuuksien läpikäynti toistensa välisten merkityksellisten korrelaatioiden etsimistä varten.
Miksi sinun pitäisi siis opetella data-analytiikkaa? Big Data on tulevaisuus. Sitä syntyy eksponentiaalista vauhtia, ja monet yritykset hyödyntävät tätä dataa parempien päätösten tekemiseen sekä olemassa olevien teorioiden tai mallien todentamiseen ja kumoamiseen. Data-analytiikan kysynnän odotetaan kasvavan tulevaisuudessa, sillä data on päätöksenteon ydin monissa yrityksissä.
Miten data-analytiikkaa voi opiskella ilmaiseksi?
Olen haravoinut läpi yliopistojen opetussuunnitelmat ja keksin polun, jolla yritän sovittaa ilmaisia verkkokursseja yliopistojen kursseihin. Kaikki nämä kurssit ovat kuitenkin Python-kielellä, jos haluat oppia jollakin muulla kielellä, voit vapaasti tutustua muihin kursseihin.
Data-analytiikan moduulien hahmotelma
Hahmotelma perustuu yleisesti yliopistojen moduuleihin. Jätän kuitenkin pois joitakin tärkeitä moduuleja, kuten tietorakenne ja algoritmi, joita yliopistot opettavat, koska ne ovat käsitteellisempiä ja korkeamman tason moduuleja.
Huomaa: Olen asettanut koneoppimisen tärkeysjärjestyksessä ylemmäksi, koska sen avulla voit hyödyntää peruskursseilla oppimiasi taitoja.
Peruskurssit
Moduuli 1: Pythonin perusteiden oppiminen (1 kk)
- Pythonin syntaksin oppiminen
- Silmukoiden oppiminen
- Objektipainotteisen ohjelmoinnin oppiminen
Moduuli 2: Datan esikäsittely, datan visualisointi, eksploratiivinen data-analyysi (1 kk)
- Oppii hyödyntämään python-kirjastoja (matplotlib, numpy ja pandas)
- Näiden kirjastojen avulla voit käsitellä dataa
Syventävät kurssit
Moduuli 3: Koneoppiminen (2 kk)
- Edellytys: Lineaarialgebra
- Koneoppiminen on melko tekninen matematiikan kurssi
- Pythonissa on melko kattava kirjasto koneoppimista varten nimeltään Scikit-Learn.
- Jos haluat käytännönläheisemmän lähestymistavan koneoppimisen oppimiseen, voit tutustua Kaggle Learniin.
Real-World Tools -kurssit
Moduuli 4: Tietokannat (SQL) (1 kk)
- Tietokantakurssilla opetetaan periaatteessa, miten dataa tallennetaan ja miten voit hakea sitä ohjelmointitoimintoja varten.
- Tietokantojen ja SQL:n tuntemus on välttämätöntä, jos haluat ryhtyä datatieteilijäksi.
Moduuli 5: Reaalimaailman työkalukurssit
- Hadoop & Map-Reduce + Spark(valitse yksi) (1.5 kk)
- Nämä ovat Big Data -työkaluja, joita teollisuus käyttää yleisesti suurten tietomäärien käsittelyyn.
- Hadoop-teknologioiden opiskelu antaa sinulle paljon perustietoa, teoriaa ja käytännön taitoja. Lisäksi saatat löytää jotain uutta sen avulla.
- Spark on Hadoopin nykyaikainen toteutus, ja sen käyttö on lisääntymässä.
Moduuli 6: Data Storytelling (1 viikko)
- Tarinan esittäminen datan avulla on analytiikan ammattilaisen puuttuva lenkki datasignaalien ja oivallusten ytimen välittämisessä johtajille, johdolle ja muille sidosryhmille.
Vaihtoehtoiset kurssit
- Datan rakenne
- Algoritmi
- Syväoppiminen
- Viidellä kurssilla perehdyt syväoppimisen perusteisiin, ymmärrät, miten neuraaliverkkoja rakennetaan ja opit johtamaan menestyksekkäitä koneoppimisprojekteja. Harjoittelet kaikkia näitä ideoita Pythonilla ja TensorFlow’lla, jonka he opettavat.
- Se on yksi parhaista syvän oppimisen kursseista. Tällä hetkellä olen tekemässä tätä kurssia ja olen samaa mieltä arvostelujen kanssa, koska se esitetään yksinkertaisella ja selkeällä tavalla, vaikka Deep Learning on tekninen aihe.
- Toinen hyvä ilmainen resurssi on fast.ai
Mitä kannattaa välttää Data Analyticsia opetellessa
Peräpäätelmä on se, että vain opettelet, mutta et sovella tietoa. Yksi tapa, jolla yritän soveltaa tietojani, on aloittaa projekti jokaisen suorittamani moduulin jälkeen. Data-analytiikan osalta voit kokeilla parhaasi valitsemassasi Kaggle-kilpailussa.
Olen sitä mieltä, että ohjelmistotekniikka vaatii perustavampaa ymmärrystä tietojenkäsittelyn käsitteistä kuin data-analytiikka, joten sisällytin moduulien hahmotelmaan enemmän teoreettisia kursseja.
Tahdotko rakentaa asioita saadaksesi tuntumaa?
Jos tahdot, opettele Python ja mene käytännön kursseille. Voit aina palata peruskursseille, kun törmäät esteeseen teoriatiedon suhteen.
Outline of Software Engineering Modules
Fundamental Courses
Module 1: Pythonin perusteiden oppiminen (1 kk)
- Pythonin syntaksin oppiminen
- Silmukoiden oppiminen
- Objektipainotteisen ohjelmoinnin oppiminen
Moduuli 2: Tietorakenteet (2 kk)
- Kurssilla käsitellään keskeisiä tietorakenteita, kuten linkitettyjä listoja, pinoja, jonoja, binääripuita ja hash-taulukoita, sekä haku- ja lajittelualgoritmeja, kuten binäärihaku, quicksort, mergesort, insertion sort jne.
- Tietorakenteet ovat tärkeitä, koska niiden avulla voimme parantaa koodimme suorituskykyä käyttämällä koodimme kannalta parasta tietotyyppiä.
- Suosittelemani tietorakennekurssi on Java-kielinen, koska se pakottaa meidät siirtymään yksinkertaisesta python-kielestä laajakielisempään kieleen. Lisäksi Java sopii hyvin objektisuuntautuneen ohjelmoinnin ja tietorakenteiden oppimiseen.
Moduuli 3: Algoritmit (2 kk)
- Tämä on toinen osa kaksiosaisesta ilmaisesta Coursera-verkkokurssisarjasta, joka käsittelee tietorakenteita ja algoritmeja ja jonka kirjoittajina työskentelevät tietojenkäsittelytieteen professorit Robert Sedgewick ja Kevin Wayne.
- Tämässä osassa opit graafeja ja merkkijonoja käsittelevistä algoritmeista.
- Oppaat myös joitakin edistyneempiä tietorakenteita ja algoritmeja, joita käytetään sovelluskehityksessä.
Moduuli 4 : (Tietokannat) (1 kk)
- Tietokantakurssilla opetetaan periaatteessa, miten tietoja tallennetaan ja miten voit hakea tietoja ohjelmointitoimintoja varten.
Moduuli 5: Verkkotyöskentely (1 kk)
- Verkkotyöskentelykurssin suorittaminen ei ole kovin tärkeää, joten voit halutessasi ohittaa sen. Jos kuitenkin olet kiinnostunut kyberturvallisuudesta, se on ehdottomasti välttämätön kurssi
Käytännön kurssit
Moduuli 6: Viikko 9-10 (Verkkokehitys) (2 kk)
- Teemoja ovat muun muassa tietokantojen suunnittelu, skaalautuvuus, tietoturva ja käyttäjäkokemus. Käytännönläheisten projektien avulla opit kirjoittamaan ja käyttämään API:ita, luomaan interaktiivisia käyttöliittymiä ja hyödyntämään pilvipalveluita, kuten GitHubia ja Herokua. Kurssin lopussa sinulla on tietoa ja kokemusta periaatteista, kielistä ja työkaluista, joiden avulla voit suunnitella ja ottaa käyttöön sovelluksia internetissä.
- Henkilökohtaisesti tämä oli suosikkikurssini web-kehityksessä, koska siinä käydään läpi front end ja back end, ja se on erittäin hyvin selitetty. He opettavat sinulle HTML:n, CSS:n, Javascriptin ja PHP:n.
- Tämä on hyvä resurssi verkkosivujen inspiraatiota varten: https://github.com/melanierichards/just-build-websites
Moduuli 7: Mobiilisovelluskehitys ( valitse mistä pidät eniten) (2 kk)
- IOS
- Android
- Flutter (Suosimani menetelmä sovelluskehitykseen)
- Henkilökohtaisesti en ole oppinut IOS-kehitystä aiemmin. Mutta verrattaessa androidin ja flutterin välillä, flutter on nopeampi kehittää ja prototyyppejä ja siksi suosin flutteria
Jatkokurssit
Moduuli 8: Ohjelmistoarkkitehtuuri (2 kk)
- Tällä kurssilla opit kuvaamaan ohjelmistoarkkitehtuurin visuaalisten työkalujen, kuten UML:n, avulla, mikä on erittäin tärkeää kommunikoida arkkitehtuurista osakkaille sekä kehittäjille, jotka tulevat toteuttamaan sen.
- Olet myös perehtynyt joihinkin standardiarkkitehtuureihin, niiden ominaisuuksiin ja kompromisseihin. Kurssilla puhutaan myös siitä, miten malleja arvioidaan, mikä tekee hyvästä arkkitehtuurista ja miten arkkitehtuuria voidaan parantaa.
Moduuli 9: Ohjelmistotekniikan käytännöt (1 kk)
- Kurssin suoritettuasi osaat
- Soveltaa keskeisiä ohjelmistotekniikan käytäntöjä käsitteellisellä tasolla tiettyyn ongelmaan.
- Vertailla ja vastakkainasettaa perinteisiä, ketteriä ja kevyitä kehittämismenetelmiä korkean tason tasolla. Näitä ovat vesiputous, Rational Unified Process, V-malli, inkrementaalinen, spiraalimallit ja yleiskatsaus ketterään ajattelutapaan
- Esittää tiettyyn tilanteeseen parhaiten sopiva metodologia
Vaihtoehtoinen
Koneoppiminen
- Suosittelen itse asiassa Andrew Ng:n teoreettisempaa koneoppimisen opintojaksoa
- Niinkin, joskin hiukan vanhentunut, hän opettaa konseptin hyvin ja on edelleen yksi parhaista koneoppimisen kursseista monien vuosien jälkeen.
Syväoppiminen
- Viidellä kurssilla opit syväoppimisen perusteet, ymmärrät miten neuroverkkoja rakennetaan ja opit johtamaan onnistuneita koneoppimisprojekteja. Harjoittelet kaikkia näitä ideoita Pythonilla ja TensorFlow’lla, jonka he opettavat.
- Olen tällä hetkellä tekemässä tätä kurssia ja se on esitetty helposti ymmärrettävällä tavalla. Toinen hyvä seikka on se, että Andrew Ng käyttää Pythonia octaven sijaan.
- Toinen hyvä ilmainen resurssi on fast.ai
Conclusion
Vaikka olen suositellut moduuleja yliopistojen kurssien perusteella, voit sekoittaa ja sovittaa niitä toisiinsa, jotta saat tehtyä itsellesi parhaan opintosuunnitelman. Jos tämä artikkeli auttoi sinua, auta minua jakamaan se ystävillesi! Jos haluat tietää lisää minusta ja siitä, mitä teen, vieraile verkkosivuillani http://www.chiayong.me/
.