Od czego zacząć naukę programowania?

Każdy programista zaczynając swoją przygodę z kodzeniem zadał sobie kiedyś pytanie: od czego zacząć naukę programowania? Tak na dobrą sprawę nie ma uniwersalnej metody, która pozwoli zgłębić techniki tej skomplikowanej dziedziny. To jest tak jak z nauką języka obcego, każdy musi znaleźć na to swój jedyny sposób. Dla jednych to będzie oglądanie filmów, dla drugich konwersacje, a dla jeszcze innych czytanie książek. To samo jest z nauką programowania. Wydaje mi się, że temat ten został już odmieniony niemal przez wszystkie przypadki. Dlatego po prostu opowiem Wam jak to wyglądało w moim przypadku i może w jakiś sposób naprowadzi Was to na właściwą ścieżkę.

Kartka papieru i pierwszy kalkulator

Do mojego pierwszego spotkania z programowaniem doszło po ukończeniu szkoły średniej. Postanowiłem pójść na studia informatyczne nie mając większego doświadczenia w tych tematach. Ot dużo korzystałem z komputera dlatego chciałem zrobić krok dalej. Pomyślałem, że dobrze byłoby się jakoś do tego przygotować. Wybrałem do tego język C++. Wydaje mi się, że jest to najpopularniejszy język wśród początkujących programistów. Trafiłem na kurs cpp0x.pl, który na początku był dla mnie dość wymagający. Analizowałem każdą lekcję dokładnie, przy herbatce próbowałem pisać kod. Pamiętam jak udało mi się napisać kalkulator na kartce. Wyglądało to dziwacznie dla kogoś z boku, dla mnie jednak sprawiało to niesamowitą frajdę.

Książki też jakieś miałem, moją pierwszą była Symfonia C++. O ile na początku nadążałem o co tam chodzi (przykłady są świetnie opisane), o tyle z każdym kolejnym rozdziałem było coraz trudniej. Moim błędem było na początku to, że po zrobieniu kalkulatora czy jakiegoś innego prostego programu, nieco osiadłem na laurach. Teraz po wielu latach studiów czy zawodowej pracy twierdzę, że najwięcej da się nauczyć realizując projekt, jakikolwiek, mniejszy czy większy składający się z kilku części.

Stawiaj sobie ambitne cele, już na samym początku

Dla początkujących programistów za słowem projekt stoi ogromna ilość pracy do wykonania. Większość osób z tego rezygnuje, zniechęca się co jest kardynalnym błędem. Nigdzie tak dużo się nie nauczysz, jak przy realizacji jakiegoś projektu. Co to może być? Jak to mówią: sky is the limit! Zastanów się nad tym, czy w jakikolwiek sposób możesz sobie ułatwić życie programem komputerowym lub aplikacją mobilną stworzoną przez siebie. Brakuje Ci miejsca, w którym zaplanujesz swój budżet? Stwórz program do monitorowania i planowania swoich wydatków! Czy też tak masz wchodząc do sklepu, że lista zakupów która była w Twojej głowie nagle wyparowała? Napisz aplikację do której możesz dodawać rzeczy do kupienia.

Ktoś powie: Zaraz zaraz, po co mam tworzyć aplikacje, które już istnieją? Nie o to chodzi w tym wszystkim chodzi, aby stworzyć coś co stanie się hitem rynku a na Twoje konto pieniądze będą spływać wartkim strumieniem. To ma służyć głównie Tobie oraz doskonaleniu Twoich programistycznych umiejętności. Ma to być dla Ciebie szkoła, z której masz wyciągnąć wiedzę oraz zdobyć doświadczenie.

Jeszcze ktoś inny powie: Kurde taka aplikacja brzmi bardzo skomplikowanie. Nie można zacząć od czegoś łatwiejszego? Odpowiedź brzmi: nie, nie i jeszcze raz nie! Stawiając sobie ambitne cele co prawda wskakujemy do głębokiej wody, ale tylko tak będziemy w stanie nauczyć się dobrze pływać. Poza tym z drugiej strony każdy większy projekt składa się z kilku lub kilkunastu części, mniej lub bardziej skomplikowanych. Wielu przyszłych lub początkujących programistów patrzy na projekty całościowo nie widząc co się na nie składa. Jeżeli tematyka Cię przytłacza, podziel sobie projekt na kilka etapów i zacznij jego realizację od tych łatwiejszych. Nie szukaj wymówek, bo to prosta droga do nikąd.

No dobra, to od czego zacząć?

Tak jak wspomniałem na początku, nauka czegokolwiek jest kwestią indywidualną. Jedni podąrzają według schematów wytyczonych przez szkoły czy tak zwanych guru, drudzy szukają swojej własnej drogi. Jeżeli miałbym powiedzieć coś Adrianowi, który zaczynał przygodę z programowaniem, to z pewnością byłoby to zalecenie o ambitniejsze podejście do tematu. Powiedziałbym mu, żeby nie bał stawiać sobie ambitnych celów już na samym początku. Napisanie kalkulatora może się sprawdzić jako zadanie do napisania na kartce. Jednak na programistycznym polu bitwy przydaje się zdecydowanie bardziej zaawansowany arsenał umiejętności i doświadczenia.

W dzisiejszych czasach Internet ma do zaoferowania niezliczoną ilość ogólnodostępnych materiałów. Mam na myśli kursy dostępne na stronach internetowych (wspomniane przeze mnie cpp0x.pl), materiały wideo na platformach takich jak Udemy czy liczne webinary. Są również opcje płatne, to już zależy wyłącznie od Ciebie czy jesteś w stanie zainwestować już na samym początku w rozwój swoich umiejętności.

Przepraszam, że zawiodłem tych, którzy przyszli tu po gotowca w postaci wytyczonej trasy nauki programowania. Każdy musi znaleźć swoją ścieżkę i podążać według niej. Tylko Ty dobrze wiesz, co jest dla Ciebie najlepsze i jaka forma nauki jest dla Ciebie optymalna. A jeżeli masz jakieś pytanie, zapraszam do sekcji komentarzy lub bezpośredniego kontaktu z moją osobą przez formularz albo social media 🙂