Programowanie- co musisz wiedzieć na początek?

Jakiś czas temu zapytałam na moim fanpage’u pytanie, jaki temat powinnam poruszyć w następnej kolejności. Do wyboru były programowanie, lub nauka języków obcych. Większość osób zdecydowała się na to pierwsze, dlatego w dzisiejszym wpisie, choć z dużym już opóźnieniem, postanowiłam w końcu zebrać odpowiedzi na najważniejsze pytania, jakie prawdopodobnie zadajesz sobie przed rozpoczęciem nauki.

1. Czym jest programowanie?

Strasznie długo zastanawiałam się, jak odpowiedzieć na to pytanie tak, żeby „eksperci” mnie nie zjedli, a „nowicjusze” zrozumieli. Chcąc zrzucić z siebie odpowiedzialność za swoje słowa, postanowiłam posłużyć się cytatem z tego artykułu, który bardzo dobrze pojęcie programowania tłumaczy:

Jeśli chcecie się porozumieć z obcokrajowcem, musicie znać jego język, lub którykolwiek z języków znanych przez niego (najczęściej jest nim Angielski). Z komputerem jest natomiast podobnie – Jednak jego „mową” ojczystą jest system dwójkowy co może być problematyczne do nauki dla człowieka. On sam (procesor) nie zrozumie ludzkiego języka z całym tym bagażem wieloznaczności i braku jednoznacznej precyzji. Rozwiązaniem jest język pośredni, bazujący na ludzkim, (angielskie słownictwo funkcji) ale matematycznie jednoznaczny. Nazywamy je właśnie językami programowania. I tą właśnie „mową” pośrednią będziemy się posługiwać

 

2. Czy programowanie jest dla każdego?

A czy w ogóle jest rzecz, która byłaby dla każdego? Raczej nie. Ja na przykład absolutnie nie jestem w stanie nauczyć się tańczyć, bo poczucie rytmu mam zerowe. Faktem jest też, że najwięcej osób, które „odpadły” po pierwszym roku studiów na mojej uczelni, nie dało sobie rady z matematyką, lub właśnie programowaniem. Uważam jednak, że spróbować powinien każdy, kto czuje, że to może być coś dla niego. Należy uzbroić się przede wszystkim w wytrwałość i cierpliwość, a cała reszta Twojego „profilu” będzie mieć mniejsze znaczenie.

3. Czy potrzebna jest znajomość matematyki?

I tak, i nie. Po pierwsze zależy, jakie programy planujesz pisać. W większości przypadków znajomość wyższej matematyki nie będzie Ci do niczego potrzebna. Na pewno jednak konieczna będzie umiejętność logicznego myślenia i rozkładania zadań na czynniki pierwsze tak, by móc tworzyć algorytmy. W skrócie: musisz umieć myśleć matematycznie, ale niekoniecznie posiadać wielką wiedzę w tej dziedzinie.

4. Od jakiego języka programowania rozpocząć naukę?

Istnieje na ten temat kilka teorii, z których każda ma swoje uzadnienie. Wiele osób poleca rozpoczęcie nauki od języków relatywnie prostych, jak Python, Ruby, czy JavaScript, żeby nie rzucać się od razu na głęboką wodę. Inni z kolei radzą podejście do C/C++, ponieważ po opanowaniu tych języków, nauka każdego kolejnego nie powinna sprawiać już większych problemów.
Ja osobiście uważam, że jeśli wiesz, co konkretnie chcesz robić w przyszłości to problem rozwiązuje się automatycznie- uczysz się tych języków, które będą Ci do tego potrzebne. Jeśli jednak na razie chcesz tylko sprawdzić, czy programowanie to w ogóle coś dla Ciebie, zdecyduj się na którykolwiek z bardziej popularnych języków, do nauki którego łatwo znaleźć w internecie darmowe kursy i który jest na tyle powszechnie używany, że w razie problemów łatwo znajdziesz kogoś, kto będzie umiał Ci pomóc.

5. W jaki sposób rozpocząć swoją naukę programowania?

Jeśli jesteś samoukiem to polecam skorzystanie z jednego z licznych darmowych kursów dostępnych w internecie. Najlepiej któregoś z tych interaktywnych, gdzie Twoje rozwiązania od razu są sprawdzane. Na początek polecam stronę codecademy.com, jeśli chodzi o podstawy, wydaje mi się, że mają największy wybór dobrych kursów.
W przypadku, gdy dysponujesz nieco większym budżetem, jeszcze lepiej jest zainwestować w udział w jakimś stacjonarnym kursie.
Odradzam natomiast na początek naukę z książek. Po pierwsze napisane są one często mało przystępnym dla ludzi nieobeznanych z tematem językiem, po drugie na starcie zdecydowanie bardziej potrzebne są nam godziny ćwiczeń praktycznych od wiedzy teoretycznej.

Mam nadzieję, że uda mi się tym postem zachęcić choć kilku z moich czytelników do spróbowania swoich sił w programowaniu. Koniecznie daj znać w komentarzu, jeśli po przeczytaniu zdecydowałeś się do rozpoczęcia nauki, lub jeśli masz jeszcze jakieś pytania w tym temacie!