Jsem programátor samouk, vzděláním japanolog, který se naučil programovat díky tomu, že měl hodně starších kamarádů programátorů a skočil do první webové agentury, která nabízela brigádu, takže moje cesta je asi trochu jiná, ale zkusím shrnout své zkušenosti, co mi chybělo a co naopak bylo fajn.
Co mi zásadně chybělo, bylo vedení v podobě nějakého schopného seniora, který by si mě vzal pod křídlo a naučil mě programovat pořádně.
V naší agentuře jsme byli vesměs kluci 20-25, pro které to povětšinou byla první práce a každý projekt většinou zaměstnal jednoho programátora a jednoho kodéra s tím, že pokud si někdo vyloženě nevěděl rady, byla tu šéfová, velká kapacita na databáze, která v případě technických záseků pomohla. Ale jinak jsme byli v podstatě hozeni do vody.
Projekty byly vesměs různé eshopy a CRMka, takže nic složitého, co by začáteční nezvládl, takže jsme měli prostor hned na začátku získat hodně samostatnosti. Zásadní nevýhodou ale bylo, že jsme se téměř nenaučili kooperovat s druhým programátorem a každý si mastil kód tak, jak uznal za vhodné nebo načetl best practices na netu.
Výhody: člověk seděl na deseti židlích najednou (backend, frontend, administrace linuxu, kódování, databáze, komunikace s klientem) a tak se rychle naučil základy mnoha různých vývojářských rolí a technologií. Navíc bylo super dělat v punkové firmě s pár dalšími neopeřenci a mít dobrý pocit, že člověk není korporátní opička.
Nevýhody: Žádné vedení, žádná struktura, nedostatek příležitostí naučit se pracovat v týmu a přiučit se od někoho s hlubšími praktickými i teoretickými znalostmi.
Samozřejmě tím, že přicházíš z MFF, tak asi budeš mít zmáknutou všechnu teorii, co bys mohl potřebovat, ale vzhledem k tomu, jak častý kámen úrazu pro programátory jsou soft skills, schopnost podřídit se cizímu řešení a udržovat konzistentní strukturu projektu, doporučoval bych najít pozici ve větším týmu se zkušenými lidmi.
To, co dělá dobrého seniora nebo team leadera, nejsou jeho technické schopnosti (které jsou samozřejmě potřeba), ale schopnost vést lidi, řešit konflikty v týmu a mentorovat juniory. Z vlastní zkušenosti vím, že srozumítelné vysvětlení nějakého problému od šikovného kamaráda mi většinou dalo víc, než tisíc teoretických knih a tutoriálů a být ten člověk, za kterým ostatní budou chodit pro jasnou a srozumitelnou radu, je jedna moc příjemné a jednak obrovská hodnota pro jakoukoliv firmu, kde budeš v budoucnu pracovat.
Navíc, čím starší budeš, tím spíš si budeš chtít dělat věci po svém, tím víc ti různé jednodušší úkoly budou připadat jako otrava a tím víc budeš nesnášet korporátní struktury, tak doporučuju jít do velké firmy dokud ti ta práce ještě přijde sama o sobě nová a zajímavá a máš nadšení z toho, že prostě jenom programuješ věci pro reálný svět.
Poslední lidská rada: pokud vycházíš Matfyz a máš dobré výsledky, pravděpodobně budeš mít ego through the roof a různí javascriptoví "lepiči kódu" a podobné existence, zde s oblibou nazývané jako lopaty, ti přijdou jako póvl. Pokud se to týká zrovna tebe, doporučuji pilně pracovat na pokoře, protože vždy můžeš narazit na problém, který bude nad tvoje síly a dokázat se dohodnout s lidmi horšími, než ty a přijmout radu od lidí lepších než ty, je pro tvůj osobní růst i pro spokojenost v týmu extrémně důležité.