- Praca
Praca z lepszymi od siebie to najszybsza droga do rozwoju. Ta droga jest tak szybka, iż niektórzy boją się nią jechać w obawie przed rozbiciem na drzewie. Mówiąc wprost: z obawy przed tym, iż okażą się nie dość dobrzy. Dlatego tak wiele osób wybiera 10 lat pracy w smutnej firmie nad smutnym projektem zamiast ciągłego rozwoju. Po prostu nie bądź jedną z tych osób.
2. Studia
Podobno nikomu niepotrzebne. Podobno niczego się tam nie nauczysz. Podobno, tak słyszałem “przez miesiąc w tej pracy nauczyłem się więcej niż przez całe studia”. To fajnie. Tylko kto jest temu winny? Studia czy Ty sam?
Niemniej studia bez pracy nie znaczą nic. Tak samo jak praca bez studiów. To są po prostu dwie oddzielne rzeczy, które się uzupełniają.
3. Książki
Z jakiegoś powodu niedoceniane w świecie IT. Słyszałem wiele razy, iż więcej nauczę się z dokumentacji technicznej niż z książki. Powiem tak: o ile ktoś uważa czytanie dokumentacji za przyjemność to szczerze mu zazdroszczę. Ja zostanę przy książkach. Po prostu lubię znać punkt widzenia wielu ludzi, a nie tylko suche fakty.
Kiedyś gdzieś usłyszałem, iż w świecie Javy są dwie pozycje obowiązkowe. Pierwsza to “Clean Code”. Po jej przeczytaniu wydaje Ci się, iż wiesz wszystko o programowaniu. Druga to “Java Concurrency in Practice”. Po jej przeczytaniu wiesz już, iż nie wiesz nic o programowaniu.
4. Tutoriale i MOOC
Moim zdaniem jest to jedna z bardziej efektywnych form zdobywania wiedzy praktycznej samodzielnie. Dobrze jest posiadać w tym celu dwa monitory. Na jednym odpalasz tutorial na Youtube, a na drugim kodujesz.
Jeżeli potrzebujesz bardziej usystematyzowanej wiedzy niż często wyrwane z kontekstu tutoriale na Youtube to polecam: Coursera, Linda, Frontendmasters, DevcastZone (po polsku).
5. Konferencje
Świetny sposób na poszerzenie horyzontów. Nie zdobędziesz tam raczej wiedzy praktycznej (nie nauczą Cię kodować), ale dowiesz się, co jest możliwe. Ja jeżdżę zawsze kiedy mogę i jeszcze nigdy się nie zawiodłem. Prezentacje są lepsze lub gorsze, ale zawsze dowiem się czegoś wartościowego.
6. Szkolenia i certyfikaty
Spotkałem się ze stwierdzeniem, iż im więcej certyfikatów tym gorszy programista. Nie wiem z czego wynika taka opinia. Być może z zazdrości, iż komuś chciało się poświęcić czas i energię.
Ilekroć ja spotykałem certyfikowanych programistów to byli oni co najmniej bardzo dobrzy. Wyróżniali się tym, iż dogłębnie znali daną tematykę. Jak wiadomo, diabeł tkwi w szczegółach. Na szkoleniach poznasz wiele szczegółów, które w życiu codziennym na pewno się nie przydadzą. One przydadzą się dopiero wtedy, gdy będziesz walczył z diabłem (bugiem). 🙂
7. Społeczność
Programiści są szaleni. Tutaj nie ma zasady “po robocie nie gadamy o robocie”. Jest wręcz przeciwnie. W każdym większym mieście znajdzie się grupa zapaleńców, która regularnie się spotyka. Jest to o tyle fajne, iż te spotkania są niezobowiązujące. Możesz zaangażować się na tyle, ile chcesz. Spotkania mają często formę wykładów lub warsztatów, na które każdy może przyjść bezpłatnie i czerpać. A jest z czego, bo takie społeczności skupiają najlepszych z najlepszych. Skąd masz wiedzieć kiedy realizowane są spotkania? Sprawdź na MeetUpie.
8. Fora, Stackoverflow, GitHub
Nie będę się tutaj rozwodził. Najlepiej o tym opowie Jacek Laskowski, który jest klasą samą w sobie. Jest to jedyna osoba w Polsce, która otrzymała tytuł Java Champion, więc o ile on się nie zna, to ja już nie wiem kto się zna 🙂
9. Prasa i blogi.
Czytaj blogi. To skarbnica wiedzy i praktycznych przypadków. Do agregowania treści polecam Feedly. Mnie też możesz tam znaleźć:
Co do prasy to jej przewagą jest wielostopniowa korekta, którą przechodzą w redakcjach. W związku z tym nie ma tutaj tylu przekłamań jak na blogach. Wiedza jest równie aktualna i zdecydowanie lepszej jakości niż na blogach. Wada jest taka, iż tej prasy nie ma zbyt wiele. Osobiście prenumerowałem miesięcznik Programista, ale zarzuciłem tę praktykę kiedy zorientowałem się, iż w każdym numerze znajduje max. 3 artykuły z działki, która mnie interesuje. Przydałby się polski mięsięcznik o Javie/JVM 🙂
10. Projekty OpenSource
Nie mam doświadczenia, ale słyszałem, iż to super sprawa. Idealna opcja dla studentów, którzy nie chcą lub nie mają czasu w pracę zawodową. Nic tak nie uczy jak praca nad realnym projektem z realnymi problemami. Dla mnie byłoby to już za dużo gdybym po pracy miał jeszcze programować społecznie, ale są ludzie którzy znajdują na to czas i zapał. Szczerze ich podziwiam. Do takiego projektu możesz dołączyć np. na GitHubie. Możesz też zainteresować się jakąś społeczną inicjatywą np. Koduj dla Polski