W jaki sposób uczyć się programowania? Na co powinniśmy zwrócić uwagę?

Załóżmy że już wiesz jakiego języka chcesz się uczyć, wiesz mniej więcej do czego on służy...
Ale nie wiesz od czego należy zacząć to wszystko.

Najlepszym wyjściem w takiej sytuacji jest obejrzenie kilku poradników na YouTube, żeby zdobyć podstawy.
Znając podstawę, to znaczy będąc w stanie stworzyć prosty program który
  1. Pobiera dane od użytkownika
  2. Przeprowadza określone operacje na otrzymanych danych
  3. Wyświetla dane
Jesteśmy w stanie stworzyć bardzo dużo, w tym momencie korzystanie z poradników nie jest czymś obowiązkowym, wystarczy dokumentacja od producenta.
Oczywiście zalecałbym oglądanie poradników do końca, ponieważ wtedy zdobędziecie więcej wiedzy, ale każdy poradnik w pewnym momencie się skończy i niezależnie od tego czy posiadacie wiedzę na temat programowania obiektowego wraz z użyciem wzorców projektowych, czy wasze umiejętności kończą się na podanym wyżej przykładzie (pobierz - zmień - wyświetl), w pewnym momencie będziecie zmuszeni do stworzenia czegoś własnego, aby móc dalej się rozwijać.
Tym bardziej że ucząc się z poradników zapamiętujemy dużo mniej, niż szukając informacji na temat jakiegoś problemu samodzielnie.

W internecie możecie znaleźć mnóstwo pomysłów na proste programy, takie jak różnego rodzaju kalkulatory czy edytory tekstu.
Takie aplikacje są dobrym pomysłem na krótkie ćwiczenie, jednak mają jedną dużą wadę - są małe i często mało użyteczne.

Według mnie najlepszym sposobem na naukę programowania będzie wymyślenie jakiegoś większego projektu, a następnie realizowanie go krok po kroku. Dzięki temu nie dość że nauczymy się podobnych rzeczy co robiąc małe programy, to jeszcze nauczymy się pracy z dużą ilością kodu. Bardzo często robiąc małe programy nie zwracamy uwagi na bardzo ważny porządek w kodzie, do którego powinniśmy się przyzwyczajać od samego początku, podczas gdy w dużych programach (jeśli nie pracujemy przy nim tak często, że znamy cały kod na pamięć) porządek w kodzie jest niezbędny, dzięki niemu nie musimy się zastanawiać "co ta metoda robiła", albo "gdzie ta zmienna występowała".

Oczywiście jak pewnie się domyślacie bardzo ważne jest dopasowanie poziomu trudności do własnych umiejętności.
Projektem który mogę polecić każdemu, jest system zarządzania danymi w bazie danych.
Jest to dość proste, nie wymaga dużych umiejętności do podstawowych działań oraz daje dużo satysfakcji.
Jako przykład takiego programu mogę podać
  • System do zarządzania blogiem
  • System do zarządzania pracownikami (kogo zwalniamy, komu dajemy jaką pensję itd)
  • System do zarządzania stroną informacyjną (sytuacja podobna do bloga)
Jak pewnie zauważyliście, wszędzie tutaj będzie występować mniej więcej ta sama mechanika, jednak nie do końca. Przykładowo w blogu możemy dodać system polubień w czasie rzeczywistym, a w zarządzaniu pracownikami możemy dodać funkcję generującą pracowników, których możemy przyjąć do pracy lub nie, albo wiele innych, możemy przebudować go w gre strategiczną o zarządzaniu firmą.

A jak wygląda sytuacja w przypadku osób które dopiero zaczynają? Tak samo, nikt nie każe wam robić wszystkiego na takim poziomie jak osoby zaawansowane, nikt nie każe wam nawet robić tej zaawansowanej części.
  1. W przypadku bloga możecie zrobić sam system wyświetlania postów za pomocą pętli (jeśli czegoś nie wiesz - sprawdź w internecie)
  2. Następnie dodacie opcję wyświetlania postów wpisanych przez użytkownika (będą przechowywane w pamięci, a nie w bazie)
  3. Dorzucicie do tego połączenie z bazą, gdzie zapisujecie i skąd pobieracie dane
I już macie prosty system dodawania postów do waszego bloga.
Teraz wystarczy że analogicznie zrobicie
  • Zmienianie treści postów
  • Usuwanie postów
I już możecie w pełni zarządzać swoimi postami, jednak pamiętajcie że nie musicie się na tym zatrzymywać, jest jeszcze dużo aktywności które możecie dodać na stronie, są to m.in
  • System polubień i komentarzy 
  • Konta użytkowników 
  • System pozwalający każdemu użytkownikowi  pisać osobnego bloga 
  • System pozwalający pisać blogi grupami
  • Rozbudowane opcje edycji postów (podgląd, zapisywanie treści bez udostępniania, możliwość dodawania zdjęć, prosty edytor tekstu itd)
I wiele innych, możliwości jest bardzo dużo, do każdego z podanych przykładów.

A jak wygląda sytuacja z platformą? Ktoś może stwierdzić że ja piszę w PHP, więc podałem  przykłady jedynie stron internetowych. W rzeczywistości takie programy możecie zrobić wszędzie, przykładowo jako aplikację okienkową, więc platforma nie jest tu wytłumaczeniem.

A nawet jeśli wasz język nie obsługuje bazy danych, to możecie sami "zbudować" taką bazę, mam tutaj na myśli zapis danych do plików, z których następnie wydobywane są określone informacje - umiejętność operacji na plikach również jest ważna.

Dodatkowo mogę powiedzieć, że jeśli wasz duży projekt będzie interesujący, to na pewno zwiększy wasze szanse na pracę, podczas rekrutacji. A na pewno będziecie dużo wyżej w oczach osoby prowadzącej rekrutację, niż wszystkie osoby, które zajmowały się małymi projektami - ćwiczeniami.

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ć?