Jak nauczyć się programowania?

Domyślam się, że sporo osób które trafiły na tego bloga nie zajmuje się programowaniem, a jedynie interesuje się w jaki sposób to wygląda, lub są ciekawe od czego zacząć.
Dla takich osób postanowiłem napisać specjalny post, w którym opowiem jak wyglądało to w moim przypadku, w jaki sposób bym przeszedł przez tą drogę, gdybym miał taką świadomość oraz wiedzę jak teraz, oraz co polecam.

Zacznijmy od zastanowienia się, jakie są różnice między aktualnie opłacalnymi/popularnymi językami programowania, to znaczy - czy nauka języka A sprawia, że oddalam się od języka B, który może być dla mnie lepszy?
  • Większość używanych języków programowania, to języki obiektowe.
    Przejście z jednego języka obiektowego na drugi jest bardzo proste, ponieważ w większości opiera się na nauce składni - przykładowo w C# aby wejść do elementu "głębiej" (np użycie metody wewnątrz klasy) używamy kropki, za to w PHP służy do tego strzałka ->
  • Spora część nazewnictwa w większości języków wygląda identycznie, przykładowo zmienne tekstowe to string, liczbowe to int, logiczne to bool. Praktycznie zawsze przekazujemy wartości do metody w taki sam sposób - używając nazwaMetody(wartości). Można powiedzieć że znając jakiś język, np Javę, nie musimy się uczyć większości nazw, które występują w C# czy C++.
  • Nauka programowania, to nauka logicznego myślenia, podczas pracy z bibliotekami bardzo często musimy korzystać z dokumentacji, jest to dowodem na to, że nie trzeba znać dobrze nazewnictwa określonego języka, bo wszystko można szybko sprawdzić w internecie. Najważniejszy w programowaniu jest sposób, w jaki chcemy rozwiązać określony problem.
    Ucząc się programowania i tworząc samemu kod uczymy się bardziej rozwiązywania problemów, niż samego języka.
Jednak ktoś może powiedzieć, że nie wszystkie języki programowania są obiektowe (np niektóre są funkcyjne), albo niektóre mają kompletnie inne nazewnictwo. To prawda, jednak te języki nie są zalecane dla osób początkujących, kiepsko widzę przyszłość osoby która chce zaczynać od Assemblera (osoby która nie wie dokładnie czym jest programowanie, chce jedynie spróbować), ponieważ elementy z tego języka mogą być trudne do przeniesienia na inny język, np obiektowy. W dodatku języki obiektowe są dużo prostsze do ogarnięcia przez ludzki umysł, dużo prościej jest nam zrozumieć działanie tego.
Dlatego jeśli jesteś osobą początkującą, zabierz się za jakiś popularny, obiektowy język programowania, nie dość że będzie ci dużo prościej, to jeszcze ta wiedza będzie bardziej użyteczna.

Jestem również świadomy faktu, że wielu początkujących nawet nie wie jakie są języki programowania, a tym bardziej które są obiektowe.
Niżej przedstawiłem listę najpopularniejszych języków obiektowych, które mogę polecić osobom początkującym (jest to lista języków z którymi osobiście pracowałem i według mnie są dobre na start)
  • C#
  • JavaScript
  • Java
  • PHP
Pewnie sporo osób które kojarzą czym jest programowanie, nie rozumie, dlaczego nie podałem języka C++, stało się tak, ponieważ uważam że jest on zbyt ciężki jak na osobę początkującą.
Sam osobiście od niego zaczynałem, pisanie programów w nim nie było zbyt interesujące, składnia mi się nie podobała, oraz całe to programowanie wydawało mi się nie fajne.
Dopiero po jakimś czasie, kiedy stwierdziłem że dam programowaniu drugą szansę, przez uczenie się JavaScriptu, stwierdziłem że pisanie mechanizmów jednak może być przyjemne i dawać wiele satysfakcji. Kluczem jest robienie interesujących rzeczy zaraz po rozpoczęciu nauki, za pomocą prostego języka.
Według mnie JavaScript jest do tego idealny, ponieważ jest bardzo prosty do opanowania w podstawowym zakresie, oraz praktycznie na początku nauki możemy "bawić się" w edycje strony internetowej. Możemy za pomocą niego dynamicznie zmieniać wygląd i zawartość strony internetowej, co na pewno spodoba się wielu początkującym. Według mnie jest to dużo lepszy sposób na nauczenie się podstaw języka, niż nudne programy konsolowe, w trudnych do opanowania językach.
Oczywiście w innych, np w C++ również możemy przeprowadzać takie operacje, jednak mało który nauczyciel na to pozwala na początkowym etapie nauki, a sam uczeń nie wie kiedy jego wiedza będzie wystarczająca, do przejścia na "wyższy poziom". W JS praktycznie konieczne jest tworzenie takich programów, ze względu na nieco bardziej ograniczoną współpracę z konsolą (trudniejsze dla początkującego) oraz prostszą obsługę elementów w aplikacji (pola z tekstem, przyciski, zdarzenia itp).

Komentarze

Popularne posty z tego bloga

Czy programowania można nauczyć się samemu?

Jak komentować kod i nazywać zmienne?

Jak planować projekt by się nie zniechęcić?