- Krok 3: Spusťte projekt, abyste si procvičili, co jste se naučili
- Několik projektů vhodných pro začátečníky, které můžete vyzkoušet
- Projekty 1. úrovně
- Projekty 2. úrovně
- Projekty 3. úrovně
- Nevzdávejte se snadno, musíte překonat počáteční potíže
- Důležité je vybudovat si pevné základy
- Učte se praxí. Při učení si vždy hrajte s kódem.
- Část 2: Plán, jak se stát pokročilým programátorem
- Analytika dat
- Jak se můžete naučit datovou analytiku zdarma?
- Přehled modulů datové analýzy
- Věci, kterým se vyhnout při učení Data Analytics
- Softwarové inženýrství
- Jak se můžete naučit softwarové inženýrství zdarma?
- Přehled modulů softwarového inženýrství
- Praktické kurzy
- Kurzy pro pokročilé
- Volitelný
- Závěr
Krok 3: Spusťte projekt, abyste si procvičili, co jste se naučili
Samotné sledování kurzů by vám nepomohlo osvojit si daný koncept. Museli byste si koncept vyzkoušet v praxi. Nejlepším způsobem, jak to udělat, by bylo vymyslet projekt.
Pokud máte nápad na projekt nebo máte problém, který chcete vyřešit pomocí kódování, je to skvělé!
Pokud ne, připravil jsem pro vás seznam projektů vhodných pro začátečníky, kterými se můžete inspirovat nebo si je vyzkoušet.
Několik projektů vhodných pro začátečníky, které můžete vyzkoušet
Tady jsou některé pojmy, které by vás mohly mást
Knihovny: Knihovna je soubor souvisejících částí kódu, které byly zkompilovány a uloženy společně v jednom souboru. Tento soubor lze propojit s vaším kódem a získat tak přístup ke kódu v knihovně.
API: API je zkratka pro Application Programming Interface (rozhraní pro programování aplikací). API je softwarový prostředník, který umožňuje dvěma aplikacím vzájemně komunikovat. Jinými slovy, API umožňuje vyžádat si od poskytovatele softwaru funkce, které můžete využít ve svém kódu. Například rozhraní API služby Spotify umožňuje vyžádat si od služby Spotify data, jako jsou skladby a umělci, a vy je můžete využít ve svém kódu nebo aplikaci.
Projekty 1. úrovně
Kalkulátor
- Jazyk: Python
- Knihovny:
- Průvodce: Žádný
- Průvodce: https://www.programiz.com/python-programming/examples/calculator
Řešitel sudoku
- Jazyk: Žádné
- Průvodce: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Jazyk: Python
- Knihovny: Žádné
- Průvodce: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Projekty 2. úrovně
Chess
- Jazyk: Python nebo Java
- Knihovny: Žádné
- Průvodce: V jazyce Python a v jazyce Java: https://www.youtube.com/watch?v=ejZqLsQDjuo
Týdenní seznam skladeb Discover Spotify
- Vytvoření vlastního systému, který bude dělat něco podobného jako týdenní seznam skladeb Discover Spotify
- Jazyk: Python
- Knihovny: Spotify API
- Průvodce: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb
Automatický nástroj pro sledování času
- Zlepšete soustředění sledováním času stráveného v desktopových aplikacích nebo na webových stránkách v reálném čase
- Jazyk:
- Průvodce: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Projekty 3. úrovně
Automatizace Instagramu
- Automatizace procesu odesílání příspěvků na Instagram
- Jazyk: Python
- Knihovny: Flask,Instapy
- Průvodce: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Bot, který automaticky odesílá tweety do vašeho kanálu
- Jazyk: Twitter API
- Průvodce: 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
Telegramový chatbot
- Chatbot, který umožňuje automatizovat zprávy v chatu telegramu
- Jazyk: Python: Python-Telegram-API
- Průvodce: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Tento seznam není vyčerpávající. Pokud máte problém, který potřebujete vyřešit, zamyslete se nad tím, jak ho můžete vyřešit pomocí programování. I to může být projekt.
Nevzdávejte se snadno, musíte překonat počáteční potíže
Největší chybou, kterou můžete jako začínající programátor udělat, je vzdát se, protože si myslíte, že nejste dost chytří na to, abyste se naučili programovat. Naučit se programovat nemá nic společného s vaší inteligencí.
Učit se programovat je těžké a většina lidí by se v určitém okamžiku setkala s obtížemi, protože je třeba se naučit spoustu témat. Při programování se objeví spousta témat, která vám napoprvé nebudou dávat smysl. Takže se zdržte negativních myšlenek na sebe sama.
Já se také zasekávám. Často si musím tutéž přednášku nebo výukové video pustit několikrát znovu, abych pochopil daný koncept. Nenechte se odradit, pokud se ocitnete na mém místě.
Důležité je vybudovat si pevné základy
Jakkoli elementární se mohou zdát na první pohled, základy programování musí být vždy na prvním místě: čím lépe jim porozumíte, tím snadněji se naučíte pokročilejší koncepty. Pokud vám aktuální téma, které se učíte, nedává smysl, zůstaňte tam, kde jste. Nepřistupujte k dalšímu tématu. Přeskakování dopředu je podobné, jako když stavíte dům bez základů a zanedbáváte základy.
Pokud výukový program (nebo kniha), který používáte, nevysvětlil dané téma dostatečně, možná budete muset najít jiné zdroje, které vám budou vyhovovat. Na Googlu můžete zdarma najít téměř cokoli, co se chcete naučit. Zjistěte, co máte hledat (např. in + další užitečná klíčová slova).
Před hledáním nápovědy si vyhraďte alespoň 20 minut na to, abyste na něco přišli sami. Je velká pravděpodobnost, že odpověď už máte před sebou. Boj s problémem z vás udělá lepšího učitele a celkově lepšího programátora.
Stackoverflow a Learn programming jsou zlaté doly pro pomoc při programování.
Učte se praxí. Při učení si vždy hrajte s kódem.
Cílem je uvědomovat si vlastní učení při postupu výukovou cestou. Nesledujte proto slepě kurzy a slepě nekopírujte kód, aniž byste mu nejprve porozuměli. Pochopte koncepty, které byly v lekci vyučovány, a pokuste se je znovu vytvořit.
Jak budete postupovat, zvykněte si procvičovat programování. Můžete tak učinit na leetcode, hackerrank nebo vytvořením projektu. Po každém modulu se snažte udělat projekt s koncepty, které jste se naučili. Když jsem dělal online kurzy, snažil jsem se každý týden udělat projekt a aplikovat všechny naučené koncepty.
Část 2: Plán, jak se stát pokročilým programátorem
Teď, když jste se naučili základy programování, dalším krokem by mělo být přemýšlení o tom, jakou cestou programování se chcete učit více. Existuje mnoho cest, kterými se můžete vydat, jakmile zvládnete základy programování, přičemž mezi hlavní a oblíbenější cesty patří softwarové inženýrství &Analytika dat.
Analytika dat
Co je to analýza dat?
Analytika dat je věda o zkoumání nezpracovaných dat s cílem vyvodit nové informace. Zahrnuje použití algoritmického nebo mechanického procesu k získání poznatků. Například procházení několika souborů dat s cílem hledat mezi nimi smysluplné korelace.
Proč byste se tedy měli učit datovou analytiku? Velká data jsou budoucností. Vznikají exponenciální rychlostí a mnoho společností tato data využívá k lepšímu rozhodování a také k ověřování a vyvracení stávajících teorií nebo modelů. Očekává se, že poptávka po datové analytice v budoucnu poroste, protože data budou základem rozhodovacího procesu v mnoha společnostech.
Jak se můžete naučit datovou analytiku zdarma?
Pročetl jsem osnovy vysokých škol a vymyslel cestu, jak se pokusit přiřadit bezplatné online kurzy k univerzitním kurzům. Všechny tyto kurzy jsou však v jazyce Python, pokud se chcete učit v jiném jazyce, neváhejte se podívat na jiné kurzy.
Přehled modulů datové analýzy
Přehled obecně vychází z univerzitních modulů. Vynechávám však některé důležité moduly, jako je Struktura dat a Algoritmus, které se vyučují na univerzitách, protože ty jsou spíše koncepční a na vyšší úrovni.
Poznámka: Strojové učení jsem zařadil výše v pořadí důležitosti, protože vám umožní využít dovednosti, které jste se naučili v základních kurzech.
Základní kurzy
Modul 1: Strojové učení: Výuka základů jazyka Python (1 měsíc)
- Učení syntaxe jazyka Python
- Učení smyček
- Učení objektově orientovaného programování
Modul 2: Předzpracování dat, vizualizace dat, průzkumná analýza dat (1 měsíc)
- Učí se využívat knihovny Pythonu (matplotlib, numpy a pandas)
- Tyto knihovny umožňují manipulaci s daty
Kurzy pro pokročilé
Modul 3: Strojové učení (2 měsíce)
- Předpokladem je: Lineární algebra
- Machine Learning je docela technický kurz matematiky
- Python má docela obsáhlou knihovnu pro strojové učení s názvem Scikit-Learn.
- Pokud chcete praktičtější přístup k učení strojového učení, můžete se podívat na Kaggle Learn.
Kurzy reálných nástrojů
Modul 4: Databáze (SQL) (1 měsíc)
- Kurz databází vás v podstatě naučí, jak se ukládají data a jak je můžete získávat pro provádění programovacích funkcí.
- Znalost databází a jazyka SQL je nutností, pokud se chcete stát datovým vědcem.
Modul 5: Kurzy reálných nástrojů
- Hadoop & Map-Reduce + Spark(vyberte si jeden) (1 měsíc).5 měsíců)
- Jedná se o nástroje pro zpracování velkých objemů dat, které se v průmyslu běžně používají pro zpracování velkých objemů dat.
- Učení technologií Hadoop vám poskytne mnoho základních znalostí, teorie a praktických dovedností. Také se při jejich používání můžete dozvědět něco nového.
- Spark je moderní implementací Hadoopu a zaznamenává stále častější využití.
Modul 6. Vyzkoušejte si, jak se v Hadoopu pracuje: Vyprávění příběhů o datech (1 týden)
- Prezentace příběhu pomocí dat je pro analytika chybějícím článkem při předávání podstaty datových signálů a poznatků vedoucím pracovníkům, managementu a dalším zainteresovaným stranám.
Volitelné kurzy
- Struktura dat
- Algoritmus
- Hluboké učení
- V pěti kurzech se seznámíte se základy hlubokého učení, pochopíte, jak budovat neuronové sítě, a naučíte se vést úspěšné projekty strojového učení. Všechny tyto myšlenky si procvičíte v Pythonu a v TensorFlow, které vás naučí
- Jedná se o jeden z nejlepších kurzů hlubokého učení. V současné době jsem uprostřed tohoto kurzu a souhlasím s recenzemi, protože je prezentován jednoduchým a jasným způsobem, přestože Deep Learning je technické téma.
- Dalším skvělým bezplatným zdrojem je fast.ai
Věci, kterým se vyhnout při učení Data Analytics
Úskalím je, že se pouze učíte, ale nepoužíváte znalosti. Jedním ze způsobů, jak se snažím aplikovat své znalosti, je zahájit projekt po každém absolvovaném modulu. V případě Data Analytics se můžete pokusit co nejlépe uspět v soutěži podle vlastního výběru z Kaggle. Použijte Kaggle Learn jako užitečného průvodce
Softwarové inženýrství
Co je softwarové inženýrství
V kostce řečeno, softwarové inženýrství je v podstatě používání programovacích konceptů k vytváření aplikací
Jak se můžete naučit softwarové inženýrství zdarma?
Myslím si, že Softwarové inženýrství vyžaduje základnější pochopení počítačových konceptů než Datová analytika, proto jsem do osnovy svých modulů zařadil více teoretických kurzů.
Chcete si něco sestavit, abyste si to osahali?
Pokud ano, naučte se Python a jděte na praktické kurzy. K základním kurzům se můžete vrátit vždy, když narazíte na překážku v teoretických znalostech.
Přehled modulů softwarového inženýrství
Základní kurzy
Modul 1. Základní kurzy: Výuka základů jazyka Python (1 měsíc)
- Učení syntaxe jazyka Python
- Učení smyček
- Učení objektově orientovaného programování
Modul 2: Datové struktury (2 měsíce)
- Tento kurz se zabývá základními datovými strukturami, jako jsou spojené seznamy, zásobníky, fronty, binární stromy a hašovací tabulky, a vyhledávacími a třídicími algoritmy, jako je binární vyhledávání, quicksort, mergesort, insertion sort atd.
- Datové struktury jsou důležité, protože nám umožňují zlepšit výkonnost našeho kódu tím, že používáme nejlepší datový typ pro náš kód.
- Kurz datových struktur, který jsem doporučil, je v jazyce Java, protože nás nutí přejít z jednoduchého jazyka python do více slovního jazyka. Java je také vhodná pro výuku objektově orientovaného programování a datových struktur.
Modul 3: Algoritmy (2 měsíce)
- Jedná se o druhou část dvoudílné série bezplatných online kurzů Coursera zabývajících se datovými strukturami a algoritmy, jejichž autory jsou Robert Sedgewick a Kevin Wayne, oba profesoři informatiky.
- V této části se seznámíte s algoritmy pro zpracování grafů a řetězců.
- Seznámíte se také s některými pokročilými datovými strukturami a algoritmy používanými při vývoji aplikací.
Modul 4 : (Databáze) (1 měsíc)
- Databázový kurz vás v podstatě naučí, jak jsou data uložena a jak je můžete získat pro provádění programovacích funkcí.
Modul 5: (Sítě) (1 měsíc)
- Kurz sítí není příliš důležitý, takže pokud chcete, můžete ho vynechat. Pokud se však zajímáte o kybernetickou bezpečnost, je to naprosto nezbytný kurz
Praktické kurzy
Modul 6: Týden 9-10 (Vývoj webu) (2 měsíce)
- Témata zahrnují návrh databáze, škálovatelnost, bezpečnost a uživatelské prostředí. Prostřednictvím praktických projektů se naučíte psát a používat rozhraní API, vytvářet interaktivní uživatelská rozhraní a využívat cloudové služby jako GitHub a Heroku. Na konci kurzu získáte znalosti a zkušenosti s principy, jazyky a nástroji, které vám umožní navrhovat a nasazovat aplikace na internetu.
- Osobně byl tento kurz pro vývoj webových aplikací můj nejoblíbenější, protože prochází front end i back end a je velmi dobře vysvětlen. Naučili by vás HTML, CSS, Javascript a PHP.
- Je to dobrý zdroj inspirace pro webové stránky: https://github.com/melanierichards/just-build-websites
Modul 7: Vývoj mobilních aplikací ( vyberte si, která se vám líbí nejvíce) (2 měsíce)
- IOS
- Android
- Flutter (můj preferovaný způsob vývoje aplikací)
- Osobně jsem se vývoj pro IOS dosud neučil. Ale když porovnám android a flutter, flutter je rychlejší na vývoj a prototypování, a proto dávám přednost flutteru
Kurzy pro pokročilé
Modul 8: Architektura softwaru (2 měsíce)
- V tomto kurzu se naučíte, jak reprezentovat architekturu softwaru pomocí vizuálních nástrojů, jako je UML, což je velmi důležité pro komunikaci architektury s podílníky i vývojáři, kteří ji budou implementovat.
- Seznámíte se také s některými standardními architekturami, jejich vlastnostmi a kompromisy. V kurzu se také hovoří o tom, jak se návrhy hodnotí, co dělá dobrou architekturu a jak lze architekturu vylepšit.
Modul 9: Postupy softwarového inženýrství (1 měsíc)
- Po absolvování tohoto kurzu budete schopni
- Použít základní postupy softwarového inženýrství na koncepční úrovni pro daný problém.
- Porovnat a porovnat tradiční, agilní a štíhlou metodiku vývoje na vysoké úrovni. Patří mezi ně Waterfall, Rational Unified Process, V model, inkrementální, spirálový model a přehled agilního myšlení
- Navrhnout metodiku nejvhodnější pro danou situaci
Volitelný
Machine Learning
- Vlastně jsem doporučil spíše teoretický kurz Machine Learning od Andrewa Nga
- I když je mírně zastaralý, vyučuje tento koncept dobře a po mnoha letech je stále jedním z nejlepších kurzů strojového učení.
Hluboké učení
- V pěti kurzech se naučíte základy hlubokého učení, pochopíte, jak budovat neuronové sítě, a naučíte se vést úspěšné projekty strojového učení. Všechny tyto myšlenky si procvičíte v Pythonu a v TensorFlow, které vás naučí.
- V současné době jsem uprostřed tohoto kurzu a je prezentován jednoduchým a srozumitelným způsobem. Dalším dobrým bodem je, že Andrew Ng používá Python místo octave.
- Dalším skvělým bezplatným zdrojem je fast.ai
Závěr
Ačkoli jsem doporučil moduly založené na univerzitních kurzech, můžete si je kombinovat a vytvořit si tak nejlepší učební plán pro sebe. Pokud vám tento článek pomohl, pomozte mi ho sdílet se svými přáteli! Pokud se chcete dozvědět více o mně a o tom, co dělám, navštivte mě na mých webových stránkách http://www.chiayong.me/
.