Rynek potrzebuje coraz więcej programistów - z tym zdaniem można się często spotkać. Dlaczego tak się dzieje? Odpowiedź jest prosta - prawie każda dziedzina i proces może zyskać dzięki dedykowanej aplikacji. Jednak jak się uczyć programowania zarówno na początku drogi jak i potem podczas doskonalenia umiejętności by było to przyjemne i co ważniejsze efektywne?

Książki

Książki są chyba pierwszym pomysłem na początku nauki nowych umiejętności. I tak jak sprawdzają się w wielu dziedzinach - gotowanie, malowanie, ogrodnictwo tak w stosunku do informatyki a szczególnie programowania jestem nastawiony raczej sceptycznie. Książki o programowaniu mają jeden zasadniczy problem - wiele z nich jest nieaktualna (szczególnie polskie tłumaczenia) w momencie wydania. Jedyne książki jakie według mnie warto kupić i czytać to te traktujące o elementach niezmiennych czyli architektura, zasadach prowadzenie projektu i kodu, umiejętności miękkie itd. Natomiast nie kupowałbym książek, które traktują o konkretnej bibliotece ponieważ szybko straci na ważności.

Oczywiście od każdej reguły są odstępstwa. Na przykład dla Javascriptu jest świetna seria You don't know JS, którą znajdziecie za darmo na Githubie - gorąco zachęcam do przeczytania.

Kursy

Dużo lepszym pomysłem na rozpoczęcie nauki według mnie to różnego rodzaju kursy. Tutaj autorzy zazwyczaj starają się aby ich kursy były ciągle aktualne - a jeśli nie to jest wystarczająco duży wybór innych twórców. Kolejna zaleta nad książkami jest taka, że bardzo często są tam ćwiczenia, które należy wykonać samemu w celu utrwalenia wiedzy. Taka nauka jest dużo bardziej efektywna od suchego czytania. Co do serwisów które oferuja kursy mogę polecić kilka:

Własne projekty

Następny etap po kursach gdzie najczęściej jesteśmy prowadzeni za rączkę to zrobienie projektu sami od początku do końca. Nie będzie to łatwe, ponieważ okaże się na początku, że nie wiecie od czego zacząć, co robić i jak to robić. Ale oto właśnie chodzi - tutaj tak naprawdę się przekonacie czy programowanie jest dla was. Taki własny projekt nauczy was dużo więcej niż kursy - nauczy was planowania, pracy z Gitem (to właściwie obowiązkowe), projektowania architektury, szukania informacji w dokumentacji czy też rozwiązywania problemów. Największy problem w przypadku własnych projektów to co zrobić? Na samym początku nie należy za bardzo kombinować - spróbować zrobić to samo co na kursie tylko samemu, rozbudować o dodatkową funkcjonalność lub też zapytać na jakimś forum co można zrobić za projekt. Jeśli nie będziecie wiedzieć co możecie zrobić to możecie napisać do mnie - na pewno coś podpowiem :)

Blog

Kolejny świetny pomysł na naukę i doskonalenie swoich umiejętności to założenie bloga. Nic tak nie zachęca do pogłębiania swojej wiedzy jak chęć napisania nowego postu. Oczywiście wiem jakie możecie mieć powody by nie zacząć pisać np.: nie będę mieć czasu, nikt nie będzie chciał czytać, już jest tyle blogów itd. Skąd to mogę wiedzieć? Sam przez to przechodziłem. Nie ma się o co martwić - programowanie jest tak rozległą i ciągle rozwijającą się dziedziną, że każdy znajdzie miejsce dla siebie. Moją radą na początek jest by nie skupiać się w pozyskanie czytelników a bardziej na pisaniu. Jeśli będziecie pisać regularnie oraz będziecie poruszać ciekawe tematy to czytelnicy pojawią się sami. Grunt to wytrwałość :)

Opensource

No na sam koniec coś dla już bardziej doświadczonych programistów, którzy mają trochę wolnego czasu. Pomoc w rozwijaniu projektu opensource to idealny sposób na rozwój własnych umiejętności. Jeżeli wybierzemy jednen z bardziej znanych projektów to będziemy mogli sporo nauczyć się o architekturze, niskopoziomowych elementach języka, testowaniu, optymalizacji oraz wielu innych w zależności jaki to jest projekt. Jedyny minus to, że może to zająć sporo czasu i na początku nasze pull requesty mogą mieć sporo komentarzy co należy poprawić.

A wy jakie macie metody uczenia się programowania lub co robiliście gdzy zaczynaliście naukę? Jestem ciekawy również co robicie by być ciągle na bieżąco z nowinkami - czytacie artukuły, własne mini projekty, prezentacje? Zapraszam do komentowania i dzielenia się swoimi sposobami :)