Jak zacząć programować? To standardowe pytanie zadawane przez naprawdę wielu ludzi na tym forum. Sam jakiś czas temu miałem ten problem i też szukałem nań odpowiedzi. Teraz jednak już wiem, że zadawanie takich pytań na forum jest nie w porządku i może nieco irytować starszych użytkowników, którzy wiadomo, co odpowiedzą: „sprawdź w google”, lub „takich tematów jest tutaj setki”.
Najcięższe są zdecydowanie trzy rzeczy (a w zasadzie cztery chociaż tą czwartą to bardziej straszą aczkolwiek przydaje się (!) )
a) Motywacja
b) Język
c) Materiały
d) matematyka
Motywacja
Cóż, tutaj kwestia zdecydowanie jest najcięższa gdyż niezwykle łatwo jest się zniechęcić podczas programowania…. i to jest prawda, nie będę pisał, że tak nie jest…bo tak jest i koniec. Jednak nie wolno nam, pod żadnym pozorem. Dlaczego? Bo w taki sposób nigdy nie nauczymy się programować. Wiem, łatwo się mówi ale ja sam się zniechęciłem i teraz tego żałuję. Co prawda wróciłem do programowania, ale do innego języka, w którym czuję się o wiele lepiej. Nie możemy podejść do tego tak: „ohh ta java jest za trudna..nie nadaję się do tego” albo „kurde…nie rozumiem tych wskaźników…. leje to zajmę się sieciami”. Takie podejście jest zgubne. Rzeczywiście…miałem podobnie. Nie rozumiałem czegoś i napaliłem się na sieci i systemy. Kupiłem książkę i buum stwierdziłem, że lepsze było programowanie i przeprosiłem się z kodem. Mocna motywacja to tak naprawdę podstawa. Nie ważne czy masz 12 czy 16 lat…żeby dobrze programować nie musisz tak naprawdę zaczynać od lat ośmiu czy siedmiu. Ja zacząłem w wieku szesnastu lat i dalej się uczę…mam motywację, chcę to robić zawodowo i lubię to. Powiedzmy sobie teraz szczerze…programowania nie da się nauczyć. Naiwny jest ten, który twierdzi, że się da. Nie sposób jest zapamiętać te wszystkie funkcje i algorytmy. Prędzej czy później sięgniemy do książki, albo dokumentacji bądź jakiegoś internetowego kursu. Programista uczy się całe życie. Ja uczę się z książki, ale często zaglądam też do kursów, które bardzo dużo mi dają bo są tam ciekawe informacje, których w mojej książce NIE MA.
Uczymy się programować przeglądając: komixxy, demoty, kwejka albo prowadząc aktywną dyskusję na fejsie ze „ziomkami” lub gadu-gadu: „co tam?!”. Nie…jak najszybciej o tym zapomnij. Tak nigdy nie nauczysz się programować. Umówmy się…uczysz się programować to włączasz kompa, czytasz nowinki ze świata IT, sprawdzasz pocztę i wykonujesz inne rutynowe czynności typu odpisywanie na GG (jeśli ważne) a potem (jak koniecznie musisz) sprawdź co nowego na fejsie i koniec. Odpalasz IDE, otwierasz książkę bądź kurs internetowy i kodzisz, kodzisz kodzisz. Najlepiej jeszcze wyłącz GG, aby nie rozpraszała Cię koperta z wiadomościami. Staraj się tego trzymać a będzie dobrze…najważniejsze to nie tracić motywacji…i nie obijać się na miłość Boską!!!
Język
Masz już motywację i stajesz teraz przed najcięższym wyborem w swojej karierze programistycznej. Nad językiem…
Od razu zapomnij o programowaniu jeżeli myślisz, że „o nauczę się delphi i to mi na całe życie wystarczy”. Błąd. Wielki błąd. Nie możemy obrać sobie jednego języka i tylko jego się trzymać. Technologia się zmienia i musimy być na to gotowi. Skąd wiesz, czy Java albo Python za kilka(naście) lat nie znajdzie się na miejscu Pascala?
Jaki więc język wybrać?
Są ludzie, którzy twierdzą, że naukę najlepiej zacząć od właśnie Pascala (ja twierdzę, że od j. polskiego) bo jest zdecydowanie najłatwiejszy (tu bym się kłócił :P). No cóż…wasz wybór. Ale tak naprawdę to NIE MA znaczenia (chyba, że zaczniesz od asemblera albo perla). To co, C++? Tak, dlaczego by nie? Ucząc się C++ uczysz się jednocześnie C i wcale nie jest prawdą, że nie umiejąc C nie nauczysz się C++. Ucząc się jednego języka inny załapiesz błyskawicznie…przecież to tylko inne instrukcje i składnia może być inna. Od czego ja zacząłem..? No ja tak naprawdę liznąłem PHP a tak niby na poważnie to od Javy. Ale niemożliwie mnie to zniechęciło tak więc czmychnąłem w kąt i przytuliłem się do C++ i jest mi w nim dobrze. Można w sumie powiedzieć, że zaczynałem od tego właśnie języka… wiedząc zaledwie nie wiele.. tylko co to są warunki tak naprawdę :). Tak więc podsumowując NIE MA znaczenia od czego zaczniecie byle się nie zniechęcicie i nie wbijecie sobie do łbów, że na całe życie przy tym jednym zostaniecie. Ja preferuję zacząć od C lub C++ :). Bardzo przyjazne języki tak naprawdę a lektura? Ja zaczynałem od Symfonii C++ Standard Jerzego Grębosza.
Czy mogę już napisać grę?
Aż by się chciało w tej chwili rzucić mięsem…. daruj sobie programowanie jeżeli myślisz, że nauczysz się jednej książki na pamięć i już napiszesz grę. To naprawdę nie jest takie proste. Ależ oczywiście.. możesz mieć motywację aby w przyszłości pisać gry ale błagam nie pisz czegoś w stylu „w jakim języku najłatwiej napisać grę?”
Po pierwsze… już wiem, że jesteś na poziomie podstawówki, po drugie NIE MA czegoś takiego jak: „w jakim najłatwiej?” … kurde w żadnym? Zacznij od napisania jakiegoś porządnego kalkulatora a potem myśl o grach bo jestem pewien, że z takim nastawieniem prędzej się zniechęcisz niż tę grę napiszesz… a i tak nie będzie nikt w nią grał (:P). Nie myśl więc, że będziesz jednoosobowym blizzardem. Ja nie wiem dlaczego każdy kto zaczyna programowanie myśli że od razu napisze grę… podejrzewam, że takie osoby grają maniakalnie w Tibię (:D).
Materiały
Do głowy można dostać widząc po raz n`ty taki temat na forum „z czego się uczyć?!”. To denerwuje jeszcze bardziej niż „jak zacząć się uczyć?”.
Nie będę tutaj dużo gadał…do wyboru mamy: internet, źródła papierkowe tzw. książki. Tego w internecie jest naprawdę od groma.
Ja tu napiszę o kilku fajnych moim zdaniem pozycjach..
Od zera do gier kodera - mega tutorial,
„Symfonia C++ standard” – zdecydowanie najlepsza pozycja traktująca o C++ od podstaw. Autor wyśmienicie magluje każde zagadnienie do znudzenia. Polecam dla bardzo początkujących.
„Thinking in C++” – pozycja również bardzo popularna jednak nie jest ukierunkowana do laików.
„Algorytmy, struktury danych i techniki programowania.” – ciekawa pozycja dla osób mających jakieś pojęcie o programowaniu i chcących poznać ciekawe algorytmy.
„C++ dla każdego” – książka traktująca C++ od podstaw jednak zdecydowanie lepszą pozycją (moim zdaniem) jest Symfonia C++ standard.
Ludzie, tutaj naprawdę wystarczy dobrze poszukać…
Ciekawą techniką nauki programowania jest wygrzebanie gdzieś jakiegoś kodu i analizowanie go.
„Aha tutaj jest jakieś for”…. szukamy w słowniku co to znaczy, potem patrzymy na resztę i…”AHA!!! TAK SIĘ TO ROBI!!”. Bardzo „ciężka metoda” szczególnie jak się o programowaniu NIE MA kompletnie pojęcia ale za to jaka skuteczna :).
Ciekawym motywem jest też oglądanie video-kursów na youtube..są za darmo i z komentarzem głosowym więc jak się jest słuchowcem to można się wiele z tego dowiedzieć.
Uprzedzam tutaj pytanie… nie, nie ma książki, która pokazuje jak od „Hello world” napisać grę w 3D najlepiej z dźwiękiem i grafiką jak w Wiedźminie 2 Zabójcy Królów.
Matematyka
Tutaj chce mi się śmiać (bo sam prymusem nie jestem ale to raczej z lenistwa) i jednocześnie płakać jak czytam niektóre komentarze ludzi, którzy z uporem maniaka wmawiają początkującym, że „NIE UMIESZ MATY?! NIE MASZ CZEGO SZUKAĆ W PROGRAMOWANIU!!! MUAHAHAHAHAHA”.
Przyznam…. Matematyka jest potrzebna ale tu głownie tak naprawdę chodzi o logiczne myślenie a nie o to, żeby napisać jakiś program to trzeba wykonać serię skomplikowanych obliczeń.
Polecam pewną ciekawą pozycję…mianowicie to:
„Od matematyki do programowania. Wszystko, co każdy programista wiedzieć powinien” – ciekawa pozycja naprawdę. Ale i tak lepiej uważać na lekcji…a najlepiej to w podstawówce bo potem będziecie żałować, że macie takie braki ze swojej winy (tak jak np. ja).
Jeżeli doczytałaś to do końca to gratuluję cierpliwości (to wspaniała cecha, którą każdy programista posiadać powinien). Wiem, że nie wyczerpałem tutaj do końca tematu...
Życzę Ci powodzenia i pozdrawiam :)
P.S Sorki za taką rozprawkę ale nie umiałem się powstrzymać
P.S 2. Jak masz jakieś wątpliwości pisz proszę do mnie na PW:)