Blog | Jak jsem se naučil Ruby on Rails a za 12 týdnů jsem spustil Freelancity

Jak jsem se naučil Ruby on Rails a za 12 týdnů jsem spustil Freelancity

Přeložil jsem pro vás článek Jamese Fenda, který uměl HTML+CSS, zato ani trošku backendové programování (byl v horší pozici, než většina mých čtenářů). James během 12 týdnů spustil svůj projekt Freelancify.com.

23. ledna jsem spustil svůj sen, Freelancify.com. Vraťme se o 12 týdnů zpět: Byl jsem internetový podnikatel, který utratil tisíce dolarů, snaže se dostat na trh minimální tržní produkt (MVP), protože mi chyběla schopnost, kterou jsem považoval za až moc složitou na naučení. Jako mnoho jiných, myslel jsem si, že programátorem se člověk rodí (a u mnohých to platí) se zvláštní schopností řešit problémy a matematikou v malíku, což je činí genii v programování.

A přesně před 12 týdny jsem udělal nejlepší rozhodnutí za hodně hodně dlouhou dobu. Mé sny už nebudou … jen sny. Teď mám schopnost vytvořit nové verze bez toho, aby utratil víc, než jen za hosting a investoval vlastní píli. S takovou schopností, je to jako mít během zlaté horečky flotilu mašin, zatímco ostatní mají lopaty. Každému doporučuju naučit se programovat.

Oprava do minula: Dříve jsem napsal, že jsem se naučil Rails za 8 týdnů. Pokud přesně spočítám datum do spuštění, bylo to 12 týdnů. Každopádně po 8 týdnech jsem cítil, že jsem nabral tolik znalostí, že další 4 týdny jsem se věnoval víc aplikaci znalostí, než učení se.

Jaké znalosti jsem měl předtím, než jsem se pustil do Rails?

Byl jsem designér se znalostí HTML+CSS. Ze všeho nejvíc jsem se zaměřoval na UI a UX design. Nejdál jsem byl schopný ohýbat WordPress. Netušil jsem, co je MVC framewor, nebo jak vůbec fungují databáze. Design/layout a HTML wireframe Freelancify jsem vytvořil sám v červnu 2011.

Proč jsem se rozhodl naučit se Rails?

V červnu 2011, poté, co jsem měl hotové wireframy, začal jsem hledat vývojáře, který by mé fireframy zprovoznil. Wireframy obsahovaly téměř všechno, včetně input buttonů, dropdowns, formuláře, tlačítka, odkazy, které fungovaly a vedly tam, kam měly atd. Našel jsem vývojáře a ve zkratce ten člověk to nedodělal. Zanechal mě s tisíci dolarů dluhů a s nedokončeným produktem. Tak jsem se ozval Nashovi Crewsovi (poznal jsem ho na setkáních Ruby on Rails v Nashvillu) a potkal jsem ho osobně, abych zjistil, jestli stávající kód projektu byl k něčemu. Bohužel ne, stav zdrojáků byl tak hrozný, že by jejich převzetí zabralo stejně času, jako by dobrý vývojář napsal celou věc znovu. Byl jsem v pytli. Věděl jsem, že si nemůžu dovolit potopit další tisíce a tehdy mi řekl Josh: „Proč se prostě nenaučíš Ruby on Rails? Tohle je perfektní projekt na to, aby ses je naučil.“, dodal: „Dvakrát týdně si s tebou k tomu sednu a pomůžu ti.“

Tu noc jsem si sednul a přemýšlel jsem celé hodiny. Mé možnosti byly: dostat někde práci a zaplatit účty, nebo risknout všechno a naučit se Rails a jíst a jíst a jíst nejlepší Ramen nudle, které kdy Itálie stvořila (amatér, neví, odkud je Ramen :) – pozn. JK).

Rozhodl jsem se. Druhé ráno jsem zavolal Joshovi. Jdu do toho naplno! Dal jsem si rozpočet na zbytek mých úspor a koupil jsem si 3 měsíce životních nákladů (pro svobodného chlapa bez dětí, je tisíc dolarů na měsíc dost peněz). Čas pustit se do práce! Stal jsem se full-time studentem. Cyklil jsem skrz výsledky hledání, Stack OverFlow, Josh, IRC #RubyOnRails channel. Railsová komunita mě měla zpět pokaždé, když jsem se zasekl, což bylo často.

Mé příští 3 měsíce

Mise: Dostat na trh minimální tržní produkt. Musí být aspoň tak dobrý, aby nějak fungoval, ale ne tak strašný, aby lidi odpudil.

Týdny 1 až 3

Tato doba byla pro mě úplně nejtěžší. Ale nevzdal jsem to.

Walls are built to keep the people who really don't want it out.

Nastavit vývojové prostředí byla série nasrávací frustrace. Tip #1: sežeňte si Mac. Tip #2: používejte Homebre, RVM, Git a Heroku (ano, to je vše, co potřebujete). Strávil jsem pár dní nastavováním, mazáním a začínáním znovu a znovu. Když to zopakujete dostkrát, zvyknete si na příkazovou řádku a porozumíte, proč věci fungují tak, jak fungují. Pak první, co jsem zkusil, bylo: TryRuby, Rails for Zombies a Rails Tutorial od Michaela Hartla. Vůbec jsem se nestaral o to, že jsem neznal 120 % z materiálů. Dokončil jsem Rails Tutorial a naprogramoval jsem jakože-Twitter aplikaci v pár týdnech, přestože jsem celou dobu netušil, co vlastně dělám. Později to začne dávat smysl.

prvni tri tydny jsem se ucil 182 hodin

Týden 3 až 6

S Twitterovou aplikací, kterou jsem udělal během Rails Tutorialu, jsem získal větší sebevědomí. Po udělání tutorialu, jsem nebyl vývojář, ale znal jsem základní kroky při tvorbě aplikací od jejího programování, až po deployment na Heroku. Všechno mezitím jsem ale pořád nechápal. Jak se teď můžu začít učit doopravdy? Díky práci na mém projektu, na nečem, na čem mi záleží. Josh a já jsme se rozhodli, že se pustím do Freelancify a uvidíme, co zvládnu.

První věc, kterou jsem udělal, bylo přenesení vše z wireframe do views a do partials. Nageneroval jsem si práci s uživateli a projekty. Pak jsem se začal učit o prvním opravdovém klenotu (gem je klenot i balíček v jazyce Ruby, slovní hříčka – pozn. JK) gemu Devise. Pak další věci, jako že každý uživatel mohl mít své portfolio. Jak jsem jednou pochopil, jak fungují relace a jak volat a zobrazovat data ve vztazích, život se stal mnohem jednodušší.

Pokaždé, když se úplně zaseknete, přeskočte tu část. Až budete budovat nějakou část později, pravděpodobně se naučíte zprovoznit to, co jste přeskočili.

3-6 tyden jsem se ucil 182 hodin

Týden 6 až 9

Krůček za krůčkem jsem se učil opakováním pořád dokolečka. Už jsem pár věcí uměl a pracoval jsem a pak Bum! narazil jsem do zdi a netušil jsem, kam dál. StackOverflow a Josh a IRC mi obvykle pomohlo dostat se dál. Když to zopakujete (pársetkrát), budete se učit hodně rychle. Strávit všechny ty frustrující hodiny testováním odpovědí ze StackOverflow, abych zjistil, že nefungují, mi ve skutečnosti pomohly. Naučil jsem se, co nedělat. A když už najdeš odpověď, obvykle zjistíš, proč předchozí postupy nefungovaly. Touto dobou jsem si začal uvědomovat širší souvislosti a začal jsem chápat PROČ věci fungovaly tak, jak fungovaly. Cítil jsem se jak idiot a vracel jsem se zpět a refaktoroval svůj starý kód vždycky, když jsem se naučil efektivnější postup. Když jsem dosáhnul této fáze, kostečky začly zapadat na své místo.

Týden 9 až 12

Touto dobou jsem jel fakt naplno, abych dostal Freelancify do stavu, kdy se bude dát spustit. Touhle dobou jsem měl pocit, že létám skrz fičury a zprovozňuju je. Poslední týden jsem strávil čištěním a odstraňováním chyb. V pondělí jsem spustil. Ale pořád je hodně toho, co se musím naučit…

Článek i komentáře (k dnešku 146 odpovědí) si můžete prohlédnout zde: How I Learned Enough Ruby On Rails In 12 Weeks To Launch Freelancify.

Programování Podnikání & Startupy

Předejte zkušenosti i dalším a sdílejte tento článek!



Jiří Knesl
Business & IT konzultant

Jiří Knesl poprvé začal programovat v roce 1993. Od té doby, díky skvělým učitelům a později zákazníkům, měl možnost neustále růst v oboru vývoje webových aplikací a informačních systémů. v roce 2002 se přidal zájem o ekonomii a v roce 2006 o organizaci práce. Vším tím se konstantně profesně zabývá jak ve svém podnikání, tak i u zákazníků. Za posledních 5 let vydal na tato témata přes 400 článků.

Prohlédněte si moje reference

Mám zkušenosti z rozsáhlých projektů pro korporace, velké podniky, střední i malé firmy, ale i pro startupy v cloudu. Zvyšoval jsem jejich know-how, pomáhal nastavovat jejich organizační strukturu, byl lektorem a mentorem v náročných situacích. Podívejte se, jak vidí můj přínos samotní klienti.

Sledujte mé postřehy na sociálních sítích