Za jak dlouho se člověk naučí z voleje programovat, když to před tím nikdy nedělal?

Dneska se tolik nakecá o tom, že lidi, kteří dělají práci, za kterou se neplatí dost, mají přesedlat. Jenže je to taková legrace? Dokonce v Česku přeškolují horníky na programátory. Tohle je něco, čím si sám jen tak ze zájmu lámu hlavu – zvládl bych to? Začít zase programovat? Fakt je možné se naučit programovat z voleje za nějakou rozumnou dobu, když jste to nikdy nedělali, abyste byli schopni třeba spáchat takový normální web (když někdo jiný dodá HTML kód, jak je dneska zvykem)? Tady to „Minaříkovic úderka“ zkouší na hornících, ale netřeba chodit tak daleko, jen mi připomněli, že by mě zajímal kvalifikovaný názor. Kupříkladu jak bych na tom byl já sám.

Občas si říkám, že bych se rád naučil jen tak pro legraci programovat si weby. Myslím jako moderně, soudobě. Umím velmi obstojně Fortran, slušně Cobol, samozřejmě Basic a Pascal z doby, kdy TCP/IP používalo šest lidí na světě (a já to nebyl). Samozřejmě, že to jde naučit, ale jak rychle? Samozřejmě, že otevřu knihu Pythonu a zhruba jsem schopen se nadrtit základy za pár dní, jenže rozhodně ne používání všech těch frameworků, které se dnes používají k tomu, aby web vypadal hezky a data se hrabala tam, kde se hrabat mají. Už vůbec netuším, kolik času zabere zorientování se v běžné algoritmizaci – v tom, co má programátor, který to dělá posledních pár let svého života naprosto přirozeně v paži.Navíc jsem nějak nenašel knihy, které by vás provedly programováním v moderním jazyku včetně právě všech těch věcí okolo, které už jsou nutností k tomu, aby to všechno k něčemu vypadalo a slušně fungovalo.

Má na to někdo z programátorů kvalifikovaný názor, jak dlouho může člověku trvat naučit se Python, PHP či co já vím co (Haskel třeba) tak, aby byl schopen třeba rutinně modifikovat nějaký opensource eshop pro klienty?

Chcete nové články emailem?

Přihlašte se zde a nově vydané články vám hned dorazí na email:
Jak se vám líbil článek?
1 Star2 Stars3 Stars4 Stars5 Stars (hlasováno , průměr: 3,33)
Loading...

23 komentářů

  • Jedna vec je programovat, ve smyslu tvorim neco co jsem si sam vymyslel a druha vec je modifikovat kod nekoho jineho.

    Tvorit nove veci je daleko jednodussi nez se poustet do uprav cizich kodu. Dokazu si predstavit, ze motivovany clovek dokaze za 3 – 6 mesicu vytvaret netrivialni projekty. K tomu vsak bude potrebovat spravne vedeni, nejakeho lektora, ktery mu v te zaplave vsech moznosti ukaze presne to co v ten moment potrebuje vedet.

    Upravovat jine systemy se clovek nemusi naucit nikdy. Tam jde hlavne o motivaci pochopit proc nejaky system funguje tak jak funguje, co kterym konstruktem tvurce myslel apod. Je potreba si uvedomit, ze programatorska zkusenost se chova podobne kulturni identita: clovek si na sebe za svuj zivot nabali ruzne zvyklosti a postupy, ktere jinym nemusi byt zjevne a nemusi davat smysl.

  • Až za pár let začnou tímto způsobem přeškolovat skladníky, kvůli automatizaci. Tak tu pak budeme mít plno odborníků na datové sklady 🙂

    Jinak k otázce. Pokud jde o modifikace, tak počítám cca 6 měsíců (instalace, upgrade, nahrat moduly) a cca dalších 6 měsíců, než začnou psát vlastní jednoduché moduly a začít trošku chápat komplexitu problému. Každopádně se bojím, že nebudou mít skill napojit eshop na skladové hospodářství/ucetnictvi i když bude po ruce specifikace.

  • V případě Pythonu si myslím, že lze za měsíc dosáhnout dobré úrovně na nějaké úpravy či dokonce psaní něčeho snadnějšího. U nás jsme loni dělali školení Pythonu a Flasku, oboje po jednom a půl dni. Není to pro naprosté začátečníky, ale tak to by stačil den/dva navíc a člověk by měl vše potřebné. Pak už jen si věci sám osahat a to pár týdnů je podle mne dostatečné. (Mimochodem bude opáčko v Brně: https://vyvojari.seznam.cz/akce/177-seznam-it-akademie-python)

    Je to ale možné pouze v něčem jako je Python. Například Ruby má problém, že vše lze napsat bambilionem+1 způsobů na úrovni jazyka a každá knihovna preferuje svůj styl. JavaScript zase trpí tím, že na dnes používané věci nemají ještě jasné best-practices a za rok to bude úplně jinak. Haskell mám moc rád, ale bál bych se ho použít jako první jazyk – i když není potřeba znát matematiku, na které je založen, přijde mi jednodušší pro nováčky popisovat postup (ale rád bych byl mile překvapen o opaku!). Atd.

    Problém je, že se nepoužívá jeden jazyk. Pak tu je další level dokázat si přečíst jakýkoliv kus kódu (v rozumném jazyce, žádný Brainfuck). Například dokázat vyluštit zamlžený kód v Lue bez jakékoliv předchozí znalosti. 🙂 To už potřebuje léta praxe a zkoumání různých technik ze všech koutů programování a získat intuici čeho se chytat. To může trvat pět a více intenzivních let.

    Suma sumárum: za měsíc už to půjde a do půl roku se člověk dostane na dostatečně dobrou úroveň, kdy bude umět jazyk a potřebné věci kolem.

  • Řekl bych 1 semestr na získání základů a algoritmického myšlení a 2. semestr na hlubší znalosti vybrané technologie. Za předpokladu dobrého lektora. Ale nemusíme odhadovat, jestli můžeme vyhodnotit, jak se povedlo naučit programovat ty horníky.

  • S předchozími zkušenostmi s programováním se podle mě dá naučit dělat weby v řádu dnů, nejefektivněji asi na školení. Např. David Grudl na školení https://www.skoleniphp.cz/ používá PHP jen tak mimochodem – pokud znáš nějaký céčkový jazyk (čemuž je Pascal celkem blízko), tak ti to nebude dělat problémy.

    Bez předchozích znalostí je to hodně individuální. Mnohé děti jsou schopny se po kousíčkách velmi rychle naučit zrovna to, co potřebují. Ale mnoha dospělým to bude trvat měsíce a dobří v tom nebudou nikdy. Web od někoho takového bych nechtěl, protože se časem dostane do stavu, kdy bude nejjednodušší všechno zahodit a udělat znovu.

    Na rozdíl od ostatních si myslím, že měnit existující kód je jednodušší než stavět něco na zelené louce. Spousta úloh, které jsem kdy řešil, vyžadovala jen lokální orientaci v kódu, nalezení něčeho podobného a napodobení toho. Pochopit celý složitý systém ani nebylo potřeba. Když stavím něco vlastního, tak celý ten systém chápat musím.

    • Jinak můžu potvrdit anekdotickou příhodou, že znám minimálně jednoho člověka, který byl naprosto zoufalý v algoritmickém myšlení, a nikdy se programovat nenaučil… Prostě mu to rozkládání většího problému na menší kusy nešlo, a přitom to byl matematik.

  • Nepsal jsem v PHP mnoho let, a nedávno jsem za odpoledne ženě do e-shopu spíchnul modul Zásilkovny pro WooCommerce/WordPress. Vidím to s frameworky právě naopak než David – v případě velkých frameworků si člověk najde už existující modul a ten nějak ohne, inspiruje se jím. Ale uznávám, že jen s dokumentací bych ten modul psal mnohem déle. Už jen proto, že dokumentace bývá často příšerná :).

    Souhlasím s Jakubem, procedurální jazyky jsou všechny na jedno brdo, je to pořád jen assembler + syntactic sugar :). Pokud by někdo přicházel se znalostí jazyka, který staví na jiných paradigmatech, tak to bude mít horší (což je například ten Haskell…)

  • To záleží na talentu a motivaci. Můžete opravovat open source weby ještě ten den, co se začnete učit a vzít to jako součást učení.

    Ovšem podle mého, autor článku k tomu nemá motivaci. V zásadě ho to nebaví, chce pouze „rutinně modifikovat“ a používat – nikoli o tom něco vědět. Bere to jako obchodník čistě prakticky, bez nadšení, zájmu, čehokoli. Mezi řádky se mi zdá, že se mu do toho vůbec nechce – takže jeho podvědomí bude vymýšlet, jak to blokovat a sabotovat, pokud se do toho pustí.

    Všechno programování je na jedno brdo, jedno jako druhé. Na programovacím jazyku až tolik nezáleží. Ačkoli programuji už desítky let, pořád říkám, že existuje jen jediný programovací jazyk, který má jen různé názvy – a mírně změněnou jinou syntaxi. I jiná paradigmata neznamenají nějakou výraznou změnu – jsou to jen drobné modifikace.

    Čím více omáčky si dáte, tím ten proces bude delší a demotivujícnější. Pokud se chce někdo začít programovat, měl by si osekat věci na dřen. Vyhodit frameworky a další nadstavby, a začít jen s čistým jádrem, co to jenom jde. Frameworky celý proces chápání značně zatemňují, a znepřehledňují – pro začátečníka.

  • O programování psali ostatní (a správně), já bych ještě přihodil příběh o tom návratu k programování. Na počítači pracuji každý den, programování není můj obor. Na svém největším projektu v C# jsem dělal před deseti lety, od té doby jenom různé skripty. Na zmíněném projektu jsem se C# učil, a nedokončený kód měl nějakých 100KB, což profík zvládne za odpoledne.
    Dnes jsem se rozhodl napsat menší utilitku, a můžu říct že opětovný začátek byl peklo. Spravilo to asi tak hodinové nahlídnutí do manuálu, a pak jsem se konečně přestal cítit jako debil co to vidí prvně v životě. Mám štěstí, protože nikdo na mě nespěchá, nebude mi kecat do kvality kódu nebo efektivnosti, a mám motivaci. Mohl bych za nějaký čas referovat jak to dopadlo, ale asi radši ne. 😀 U vás to vidím jako se začátkem běhání, narazíte na problémy přes které se musíte dostat a spousta věcí vás překvapí, a chvíli potrvá než to k něčemu bude.
    Horníkům přeju štěstí, a doufám že se do nich někdo nesnaží natlačit taky vysokoškolskou matiku/fyziku jako se VŠ snaží do každého kdo se okolo počítačů jenom mihne.

  • Tohle mne zajima. Taky bych se to chtel naucit, ale pod vedenim lektora. Nicmene jeste predtim bych chtel absolvovat nejaky kurs v rozsahu nekolik dni (nebo desitek hodin) kde budou zaklady IT od bitu, bytu, pres ovladace atd. Nevite o nejakem podobnem kursu?

    • Jako úplně první si najděte (dostatečně malý ale zajímavý) problém, který vás bude bavit vyřešit (naprogramovat). Pokud nebudete mít nějaký cíl, tak se v tom budete poflakovat zleva doprava a nikdy se neposunete dál.

  • Robert: Najděte si několik hodinových přednášek na youtube na toto téma. Některé jsou velice kvalitní. A je jich mnoho i v českém jazyce. Nebo se podívejte na AVC web z ČVUT, kde jsou záznamy vysokoškolských přednášek na tato témata.

    Přednášky nabízené třeba skrze české IT weby – trpí nekvalitou přednášejících. Mnozí z nich přednášejí a učí to, co sami nezvládají, což je spíše pravidlo než výjimka. Sebevědomí ovšem nechybí. Zato takové přednášky mají dobrou a širokou propagaci, nicméně o kvalitě bych značně pochyboval.

    Zejména na kvalitu přednášek kolem PHP a MySQL v české kotlině bych si nevsadil ani zlámanou grešli. Kvalita lektorů a jejich znalostí, ale zejména jejich softwarových návyků a inženýrství, plně odpovídá starému vtipu: „kdo to neumí, ten to učí“.

    Máte jen minimální šanci – na úrovni statistické chyby – že v české kotlině najdete dobrý kurz týkající se čehokoli kolem webových technologií, který bude užitečný, a hlavně bude předávat správné informace. Zato máte prakticky jistotu, že vás na kurzu naučí špatné návyky, a různá řešení typu drbání se levou rukou za pravým uchem, protože lektor má handicapy ve znalostech a tak improvizuje, aby to nedal najevo.

    Zvláště zoufalá situace je v databázích, kde lektoři by mnohokrát neprošli ani testem znalostí z 1. lekce i té nejprimitivnější slabikářové teorie. Přesto školí jako o život.

    Člověk má být sice pozitivní, ale české veřejné kursy jsou více o sebevědomí a nesebekritičnosti lektorů, než o tom, že mají co předat. A je lépe se věci naučit dobře, než na nějakém kursu získat špatné návyky a pak je těžce přeučovat – to zabere více času a úsilí než se to naučit správně od začátku.

  • Kdyz s youtube se blbe diskutuje a pokladaji doplnujici otazky 🙂
    Cestina neni dulezita, anglictina je OK. Dokonce to nemusi byt ani zadarmo. Nicmene diky za info, je mi jasne ze to nebude jednoduche.

  • Otázky lze klást autorovi nebo na diskusních fórech. Nebo člověkovi, který problematiku ovládá a znáte ho osobně – na toto je ideální studium na univerzitě. 🙂

    Jinak plně souhlasím s tím, co napsal Ondřej Surý. To je jedna z nejlepších rad, která tu zazněla.

  • Cit.: „Podle našich statistik zabere zpravidla rok a půl až dva, než holka získá dostatečnou odvahu a znalosti, aby se mohla přihlásit na juniorskou pozici“

    Zdroj: http://finmag.penize.cz/kaleidoskop/321330-holky-se-divaji-na-veci-jinak

  • Shodou okolností jsem začal loni v červenci „programovat“ v práci za peníze. Předtím jsem dělal SEO, PPC atd. Celá moje předchozí programátorská praxe byla asi jedna semestrálka v Javě přes asi 5 lety.

    Chtěl a musel jsem změnit obor. Ale zas prostě se o něco jako weby atd. zajímám tak nějak celý život. Samozřejmě můj kód asi stále za moc nestojí, ale zas mě z práce nechtějí vyhodit, tak to asi stačí.

  • Já si myslím, že kvalitní programování je druh umění … a stejně jako všichni neumíme malovat nebo zpívat, tak ne všichni můžou být programátory …

  • Zajímavá otázka , přesto jsem se ani od jednoho z odpovídajících nedozvěděl, za jak dlouho se může obyčejný dospělý , bez jakýchkoliv zkušeností, naučit programovat. Třeba já, VŠ netechnického směru, v matematice bída a děs. Obávám se, že dostat do sebe alespoň základy by mi trvalo minimálně rok každodenního intenzivního studia bez jakékoliv záruky úspěchu. P.S. Když píšete semestr, myslíte kolik hodin studia denně? Děkuji.

  • Já kdysi obstojně programoval Karla 🙂 pak Basic. Následně 25 let pauza. Začal jsem arduinem, a během cca půl roku jsem se dopracoval k tomu, že jsem schopen naprogramovat si v tom pseudo céčku cokoliv potřebuju. Někdo tu to zmiňoval, je potřeba mít problém, který jsem motivován vyřešit. Učit se to do vzduchu je kravina. Koupil jsem si stavebnici a jel jsem podle tutorialu, cca 2 dny absolutní základy, následně jsem řešil své věci, stahoval různé hotové kódy a ty lepil k sobě jak vlašťovka hnízdo, učil jsem se skrze chyby. A že jich bylo. Následně jsem se tím prokousával a pokoušel se to pochopit, arduino je na to asi jednoduché, protože to šlo opravdu rychle. Kdyby byl nástroj na ipad, bylo by to ještě rychlejší 🙂 Teď chci začít se swiftem a psát pro IOS, opět mám věc co potřebuji naprogramovat, takže po nutných nudných začátcích k seznámení se s prostředím se k tomu zase dostanu jako ta vlaštovka.
    Pokud má někdo logické myšlení a nějaký background klidně z dětství, svazarmu, bastlení, tak by mu nemělo trval déle než půl roku se k rozumným výsledkům dobrat. Předpoklad je pravidelnost a tah na branku. Já se tomu denně věnoval v průměru hodinu, většinou na to byl čas tak 3x týdně před půlnocí 🙂 Pokud by někdo pomohl se začátky, tak by to bylo asi ještě rychlejší.

  • Naučit se to dá poměrně rychle – záleží kolik tomu věnuje člověk času. Programování má hodně společného s cizím jazykem – musíte znát „slovíčka“ i „gramatiku“ abyste je spojili do srozumitelné věty. Pokud v tom chcete být dobrý musíte programovat minimálně obden. Díky tomu budete dělat rychlé pokroky a budete mít motivaci pokračovat dál. Pokud nabyté znalosti chcete udržet na kvalitní úrovni – tak musíte v podstatě programovat stále. Je na zvážení jestli to využijete a zda není něco co Vám přinese větší užitek.

  • Souhlas. Programování je komunikace v jiném jazyce. Takže otázku „Za jak dlouho se můžu naučit programovat?“ si můžete transformovat do „Za jak dlouho se naučím cizí jazyk?“ Uvádí se, že anglosaské jazyky se naučíte za 650 hodin (odhadem na úroveň B1). Což je zhruba 11 let pokud se učíte jednu hodinu týdně. Nebo taky 3 měsíce pokud jedete osm hodin denně. No a pokud ten jazyk aktivně nepoužíváte, tak jedete velmi rychle dolů. Stejné je to s programováním.
    Pokud má někdo 25 let staré základy, tak ho za týden naučím dělat v Pythonu v SQLAlchemy a Flasku a bude schopen udělat nějakou malou aplikaci. Pokud na tom bude celý rok pracovat (každý den), tak bude po roce obstojný programátor. Samozřejmě pokud se na to za celý rok ani jednou nepodivá, tak bude začínat zase téměř od nuly.
    Na druhou stranu za 3 měsíce celodenních školení budete umět programovat tak, že vás přijmou do většiny IT firem.
    No a pokud budete chtít přejít od Pythonu k Ruby, tak zase od začátku. Resp. to bude jako od němčiny k holandštině. Něco bude stejné, něco podobné, ale pokud to chcete rozumně použít tak je tam hromada detailů, které je potřeba se naučit ale nikdo vám o většině neřekne, ale musíte na ně narazit až to budete používat.

  • Já si prošel tím co píšeš. Taky jsem kdysi dělal Pascal a Basic (ve kterém jsem vydal svého času úspěšný kecálkový program Pokec) a pak dloooooouhá léta nic. Asi 2 roky dozadu jsem potřeboval udělat nějaký sw na evidenci servisních zakázek. Poptával jsem různě nějaké programátory, ale nikdy jsem nebyl spokojený s nabídkou. A můj zaměstnanec mi tehdy řekl – „vždyť jsi kdysi programoval a tohle je vlastně jen jednoduchá práce s databází, to snad zvládneš ne“? A já „ale já nemám ani páru o tom, jak zařídit aby se něco zobrazilo na webu“ a on „tak si otevři Google, všechno je už dnes vymyšlený“ – no a já to udělal. Zjistil jsem, že existuje něco jako PHP, MYSQL atd. (dřív jsem znal jen okrajově HTML). Ten sw jsem si nakonec udělal ani ne za měsíc. Funguje dodnes (ale teď se tomu směju jak vypadá).

    Takže ano, když máš motivaci, tak to jde a navíc poměrně rychle (pokud řešíš konkrétní problém). Za půl roku co jsem začal jsem byl pro svoji novou firmu schopen vytvořit komplet (kromě šablony, tu jsem koupil a doupravil) logistický web na přeposílání zásilek z Číny a Německa (https://www.tiptrans.com) včetně adminu, přijímání plateb, itrafakturace, napojení na různá API atd. atd. Opravdu prakticky z nuly.

    Samozřejmě by se tomu asi nějaký pokročilý programátor zasmál ale já mám ze svého díla radost. U programování vidím jednu hodně zajímavou věc – je to nikdy nekončící proces. A asi zejména u začátečníků se stává to, co teď cítím já – jak se člověk učí za chodu, tak najednou dojde k bodu, kdy by to nejraději komplet přepsal podle toho, jak to umí teď. Ale to by bylo asi na delší vyprávění.

    Takže pozor. Je to návykové 🙂

  • Snažím se programovat zhruba tři roky – asi od třiceti. Všechno začalo stáží, pak tak po půl roce se mi podařilo najít první místo jako junior PHP programátor. Z práce mě vyhodili po roce a něco. Nastoupili tam dva programátoři a každý za den stihl „napsat víc kódu“ než já. Následovalo další hledání práce. Opět nástup jako PHP programátor. Pracovní poměr skončil po měsíci a něco – důvodem byla moje pomalost. Řekli mi, že tam mají nějaké projekty a že mi je nemohou dát, protože by mi trvalo roky (!) to naprogramovat. V další práci se mi podařilo vydržet půl roku. K řešení nějaké větší části se mi za tu dobu dostat nepodařilo – jsem pořád něco jako bugfixer nebo dělám jen dílčí věci.

    Postupně mi začalo vadit i samotné prostředí resp. to, že se na všech úkolech musí vykazovat strávený čas, takže s každým novým požadavkem jsem už dopředu akorát ve stresu z toho, že to zase nestihnu vyřešit včas. Zlepšení si nastalo, ale moje sebevědomí ohledně „schopnosti“ programovat se za tu dobu dostalo na bod mrazu. Programování mi jde moc pomalu a je tedy otázkou, jestli mi vůbec jde. Celkově jsem tedy pomalejší – i v jiných činnostech 🙂 Ale potřebuji najít práci, kde mě kvůli tomu nebudou vyhazovat, takže spíš řeším změnu práce z programátora na něco jiného – no těžko říci, jestli by mi třeba výhledově práce kodéra šla líp…

    Bohužel programování není jenom o tom, že umím něco naprogramovat – to se může naučit v podstatě každý, ale pak je to o tom, jak rychle a jak dobře.