Czym jest nauka programowania?

Page Title Shape 1
Page Title Shape 2
Page Title Shape 3

Nauka programowania bardzo często jest mylona z nauką konkretnego języka programowania. To nie do końca tak wygląda. Ucząc w CodersLab, mówię moim kursantom, że znajomość semantyki danego języka jest sprawą drugorzędną. Tak naprawdę powinniśmy zaczynać od wyrabiania sobie dobrych nawyków programistycznych oraz rozwijania umiejętności logicznego myślenia. Rozpoczynając naukę programowania, należy odpowiedzieć sobie na jedno pytanie – czym właściwie jest programowanie?

Programowanie to nic innego jak umiejętność rozwiązywania logicznych problemów, które stawiają nam product menedżerowie lub po prostu przełożeni. To, w jakim języku zapiszemy dane rozwiązanie, jest sprawą drugorzędną, nierzadko niezależną od nas.

Wybór technologii czy frameworków bardzo często jest kwestią wyboru CTO lub IT Managera. Lubię porównywać tę kwestię do tworzenia różnego typu powieści. Przecież najpierw musimy wymyślić opowieść, żeby potem móc określić, w jakim języku ją spiszemy. To dlatego, tak ważne jest, aby dobrze wybrać pierwszy język programowania. 

Moim zdaniem najlepszym wyborem jest JavaScript lub Python. Pewnie zastanawiacie się dlaczego? Oba te języki mają to do siebie, że są z rodziny języków wysokopoziomowych tzn. takich, które nie modyfikują bezpośrednio zachowań hardware’u. Innymi słowy — można w nich stworzyć aplikację internetową. Znając ich podstawy, jesteśmy w stanie opanować mechanizmy występujące w programowaniu np.: zmienne, funkcje, instrukcje warunkowe czy chociażby obiekty. 

Ugruntowana wiedza z tego zakresu pozwala nam na łatwiejsze opanowanie kolejnych języków w przyszłości. Wynika to z faktu, że większość języków posiada podobną semantykę w zakresie tych mechanizmów. Natomiast my, znając zasady ich działania, jesteśmy w stanie rozwiązać praktycznie dowolny problem z punktu widzenia logicznego.

Moim zdaniem dobrego programistę możemy poznać po tym, jak rozwiązuje dany problem, a nie czy zna na pamięć wszystkie funkcje wbudowane w dany język. 

Spędzając wiele godzin podczas programowania, mimowolnie zapamiętujemy większość tych funkcji, także ta wiedza przychodzi nam z czasem. Jednak rozwiązanie problemu to umiejętność, którą musimy nabyć. Niektórzy mają naturalne predyspozycje do takich zadań. To dlatego jedni radzą sobie z nauką szybciej, a inni wręcz przeciwnie. Nie należy jednak poddawać się, gdy przychodzą pierwsze trudności, ponieważ wszystkiego jesteśmy w stanie się nauczyć, oczywiście przy odpowiednim podejściu. Pamiętaj, że wszystko na początku jest trudne. Jednak gdy przyswoisz sobie pewną część wiedzy, będzie ci łatwiej. Najważniejsze w tym wszystkim jest to, aby zacząć mieć w sobie odpowiednią dozę determinacji. Na szczęście społeczność programistyczna jest bardzo otwarta i pomocna.

Ogólnie rzecz ujmując, wiedza, jaką zdobędziesz, będzie sumą wszystkich twoich doświadczeń wynikającą z projektów, w jakich będziesz brał udział. Rozwiązując 30 razy ten sam problem, wyrobisz sobie świetne rozwiązanie, które będziesz stosował w przyszłych projektach. Dla przykładu pracując pięć lat firmie, zajmującej się wytwarzaniem systemu CRM, będziesz mieć opanowane pewne rozwiązania dotyczące tej dziedziny biznesu. Po paru latach, gdy zmienisz pracę i zaczniesz pracować nad systemem przetwarzania Audio-Video, nie będziesz miał w głowie gotowych rozwiązań. Natomiast będziesz musiał je samodzielnie wypracować i wymyślić. To jest właśnie zdobywanie doświadczenia. To odróżnia programistę z 6-letnim stażem od programisty z 6-letnim doświadczeniem. Mówiąc wprost — doświadczenie !== staż pracy.

Jeśli wystarczająco mocno zachęciłem cię do rozpoczęcia nauki programowania, to teraz chciałbym cię przestrzec przed pewnymi metodami nauki. W Internecie możesz znaleźć wiele stron oferujących wideo tutoriale, jednak na samym początku odradzałbym korzystanie jedynie z takiej formy nauki. Wynika to z faktu, iż możesz natknąć się na zagadnienia, których nie będziesz w stanie samodzielnie zrozumieć. Wtedy nieocenioną pomocą może okazać się osoba bardziej doświadczona. Niestety tutorial stworzony dla mas, nie jest w stanie dopasować swojego przekazu do każdego indywidualnie. Czasami bywa tak, że dane zagadnienie trzeba przedstawić w prostych słowach, podając analogię, którą będziesz w stanie przełożyć na własne życie i doświadczenia. Dlatego, jeśli chciałbyś uzyskać taką pomoc (indywidualnego mentora) to, skontaktuj się ze mną.

Kolejna forma nauki, która może okazać się nieidealna dla początkujących to książki. Należy tutaj rozważać dwie dziedziny książek z tematyki IT. Pierwszy typ to książki do nauki języków programowania takich jak np. JavaScript, Python, czy PHP. Drugi typ to książki do nauki architektury, kontroli wersji, czy komunikacji w projekcie. Te pierwsze mogą być nieaktualne, ponieważ języki programowanie ewoluują. Tak więc czytając książkę o JavaScript z roku 2000, na 100% nie będziesz miał aktualnych informacji np. z zakresu ES6. Natomiast drugi typ książek, jest aktualny praktycznie przez cały czas. Sposób wytwarzania oprogramowania, architektura, czy kontrola wersji to umiejętności, które warto zgłębiać, gdyż są one uniwersalne i niezależne od języka programowania. Także, jeśli dziś obrałeś kierunek nauki JavaScript, a za dwa lata uznasz, że chcesz się nauczyć np.  C#, to zagadnienia te będą obowiązywać również w tym języku.

Wybierz zatem mądrze formy nauki, aby nie sparzyć się i nie zniechęcić już na samym początku. Programowanie jest naprawdę przyjemną pracą i daje wiele radości z tworzenia. Wymaga jednak dużego wysiłku w trakcie nauki. 

Daj znać w komentarzu jaka forma nauki według Ciebie jest najlepsza do rozpoczęcia przygody z programowaniem. Możesz też napisać do mnie maila. Bardzo ciekawi mnie Twoje zdanie na ten temat.

Previous Post
Newer Post

Brak produktów w koszyku.

X