Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: 'winterfresh'
Korekta redakcyjna: Piotr Szawdyński
Inne artykuły

Jak zacząć programowanie?

[artykuł] Artykuł odpowiada na pytanie jak rozpocząć przygodę z programowaniem oraz z jakimi trudnościami zmaga się na co dzień każdy współczesny programista.

Wstęp

'Jak zacząć programować?' to standardowe pytanie zadawane przez naprawdę wielu ludzi na forach Internetowych dotyczących właśnie programowania. Sam jakiś czas temu miałem ten problem i też szukałem na to pytanie odpowiedzi. Teraz jednak już wiem, że zadawanie takich pytań na forum jest nie w porządku i słusznie irytuje to starszych użytkowników, którzy bardzo często odpowiadają: „sprawdź w google” lub „takich tematów jest tutaj setki”. Właśnie z myślą o osobach, które chcą zacząć uczyć się programowania, piszę niniejszy artykuł. Piszę go dlatego, że rozumiem te osoby - sam bowiem taki byłem...

Co sprawia największe problemy?

Najcięższe są zdecydowanie trzy rzeczy (a w zasadzie cztery chociaż tą czwartą to bardziej straszą - aczkolwiek przydaje się...). Tymi rzeczami są:
  • motywacja;
  • język programowania;
  • materiały;
  • matematyka.

Motywacja

Cóż, motywacja jest zdecydowanie kwestią najtrudniejszą, gdyż niezwykle łatwo można się zniechęcić podczas nauki programowania... i jest to prawda - nie będę pisał, że tak nie jest, bo po prostu tak jest i koniec. Jednak nie wolno nam się zniechęcać, pod żadnym pozorem. Dlaczego? Bo w taki sposób nigdy nie nauczymy się programować. Wiem, że łatwo się mówi ale ja sam się zniechęciłem jakiś czas temu i teraz tego żałuję. Co prawda po pewnym czasie powróciłem do programowania, jednak do innego języka niż ten w którym zaczynałem i czuję się w nim o wiele lepiej.

Do programowania nie możemy podchodzić np. tak: „ohh ta Java jest za trudna - nie nadaję się do tego.” albo „Kurde! Nie potrafię zrozumieć tych wskaźników - leję na to. Zajmę się sieciami!”. Takie podejście jest zgubne - lecz uwierz - postępowałem podobnie. Jak czegoś nie rozumiałem, znalazłem temat zastępczy, a po chwili byłem już napalony na sieci i systemy. Kupiłem książkę i buuum! 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ć tych wszystkich funkcji i algorytmów. 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 równie często zaglądam do kursów, które bardzo dużo mi dają bo są tam ciekawe informacje, których w mojej książce nie ma.

Utopijna wizja nauki programowania

Uczymy się programować przeglądając: komiksy, demotywatory, kwejk-a albo prowadząc aktywną dyskusję na facebook-u ze znajomymi 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 facebook-u i koniec. Siadasz do nauki programowania.

Skuteczna nauka programowania

Odpalasz IDE, otwierasz książkę bądź kurs internetowy i kodujesz, kodujesz, kodujesz... Najlepiej jeszcze wyłącz GG, aby nie rozpraszała Cię koperta informująca o nadejściu nowej wiadomości. Staraj się tego trzymać a będzie dobrze. Najważniejsze to nie tracić motywacji. No i nie obijać się na miłość Boską!!!

Język programowania

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óż... Twój wybór. Ale tak naprawdę to nie ma znaczenia (chyba, że zaczniesz od Asemblera albo Perla).

To co, C++? 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 oraz 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 niema 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 niema 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 nauki

Bólu głowy można dostać widząc po raz n-ty temat na forum pt. „z czego się uczyć?!”. To denerwuje jeszcze bardziej niż „jak zacząć się uczyć?”. Nie będę tutaj dużo gadał - do wyboru mamy: Internet oraz źródła papierowe, czyli tzw. książki. W Internecie materiałów jest naprawdę od groma.

Ja tu napiszę o kilku fajnych moim zdaniem pozycjach:
  • www.cpp0x.pl – Serwis tematyczny, poświęcony tylko i wyłącznie programowaniu w C++. Na łamach tego serwisu znajdziesz Kurs C++, który stał się następcą bardzo popularnego kursu „od zera do gier kodera”. Wspomniany » KursyKurs C++ kurs opisuje język zgodnie z obowiązującym standardem C++.
  • „Symfonia C++ standard” – zdecydowanie najlepsza pozycja poświęcona językowi C++ od podstaw. Autor wyśmienicie magluje każde zagadnienie aż 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 poświęcona językowi C++ od podstaw jednak zdecydowanie lepszą pozycją (moim zdaniem) jest Symfonia C++ standard.
Książek i artykułów na temat programowania jest znacznie więcej niż to co wymieniłem - naprawdę wystarczy tylko trochę poszukać...

Inne metody nauki programowania

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 niema 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 MATMY?! 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).

Zakończenie

Jeżeli doczytałeś 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 ale będę ten artykuł jeszcze w miarę chęci i wolnego czasu rozwijał (o tak :D). Mam jednak nadzieję, że udzielił Wam od odpowiedzi na kilka nurtujących pytań i nie będziecie już pisać idiotycznych tematów na forach.

Życzę Wam powodzenia w programowaniu i pozdrawiam!