Tak jsem si přečetl pár diskusí o tom, co by měl umět dobrý programátor. Pokud provedu tak nějak stručný výtah z těch diskusí, tak dobrý programátor by měl umět dobře porozumět problému, který řeší a měl by umět vybrat nejlepší řešení daného problému. Což znamená, že by měl umět navrhnout několik možností řešení různými způsoby. Že by měl umět vybrat ten nejvhodnější a nejefektivnější způsob, tu nejvhodnější technologii, platformu, programovací prostředky (programovací jazyky, techniky, algoritmy) atd.
Pak by to měl umět zrealizovat tak, že výsledný kód bude dobře a (po debugování) pokud možno bez chyb běhat, výsledný kód bude srozumitelný a dobře pochopitelný pro teamové spolupracovníky, bude napsán v termínu a bude znovupoužitelný, bude efektivně zacházet se systémovými prostředky platformy, na které poběží. Dále programátor bude umět debugovat a dobře hledat chyby (nejen svoje, ale i jiných programátorů, jejichž kód bude umět číst), vyznat se ve vlastním kódu i po delším čase, vědět přesně co který řádek kódu dělá atd.
Co se týká znalostí, tak dobrý programátor bude mít širší hrubší přehled o větším množství technologií a bude mít hluboké znalosti ve své specializaci, bude dobře ovládat "teoretické programování" (což zahrnuje znalost algoritmizace a datových struktur a standardů v programátorské praxi, kterých se ale nemusí držet za každou cenu). Bude mít znalosti o platformách o tom, co se v počítači děje při běhu jeho programu, jak to pracuje (počítač, překladač atd.).
Dobrý programátor by se měl neustále učit, znát nejen starší technologie, ale mít přehled i o těch nejnovějších, měl by na sobě neustále pracovat i si ve volné chvilce oddechnout, a také ho programování musí bavit a být na prvním místě - ovšem ne v každé situaci.
Dobrý programátor by měl být zkušený a mít za sebou různé dobře odvedené projekty a měl by mít dobrou praxi v řešení velkého množství problémů (které se řeší programátorsky) a odladěných chyb v kódu.
No a mne by zajímalo, jak dlouho trvá se tohle všechno naučit a mít takové zkušenosti, abych byl dobře platově ohodnocen?
Ještě poznamenám, že je jasné, že každému to bude trvat různou dobu, (někdo toho nedosáhne nikdy). Také záleží na schopnostech a jak co koho baví a kolik času tomu denně věnuje a do čeho se pouští atd.
Takže by mě zajímalo, jak dlouho to trvalo každému z vás, čím jste začínali, co vás chytlo, co vás v určitých obdobích bavilo, jak jste se zdokonalovali, jakou školu jste studovali, jak dlouhou praxi máte v jaké firmě (tím myslím jestli ve velké společnosti nebo v malé firmě nebo podobně - nemusíte jmenovat).
Prostě kolik člověku zabere času, než se stane dobře placeným programátorem?