/Chcę się nauczyć programować

Chcę się nauczyć programować

Podziel się

Jeśli chcesz się nauczyć programować to zwyczajnie to zrób! Brzmi banalnie i nawiązuje do memów z serii JUST DO IT!prawda?

Co polecisz do nauki języka [wstaw nazwę]?

Książki, konferencje, wielkie kursy i szkoły programowania… to nie jest dobry początek. Szkoły sprawdzą się w ostateczności, ale kiedy dopiero zaczynasz, to zapewne chcesz poznać technologię, składnię, sposoby działania pewnych mechanizmów charakterystycznych dla języka. Najlepszą metodą jest pisanie. Tak, dobrze czytasz. Pisanie jest zajęciem praktycznym i mimo nieznajomości zagadnienia warto na początku ustalić sobie cel. Przykładowym może być stworzenie projektu, który będzie rozwiązywał jakiś jeden problem. Jeśli masz już temat to warto przejść do kolejnego kroku…

Co umożliwi nam nasza aplikacja?

Odpowiedzi może być tak dużo jak projektów, ale podam przykładowe, tak żebyś mógł/mogła zorientować się w temacie:

  • pozwala użytkownikowi na zalogowanie
  • pozwala użytkownikowi na zakup produktu
  • pozwala użytkownikowi na wyświetlenie listy promocji
  • pozwala użytkownikowi na wyświetlenie listy zakupów

Nie musisz zagłębiać się w wewnętrzne działanie aplikacji. Musisz tylko spisać możliwości, stworzyć pewnego rodzaju listę rzeczy do zrobienia. Nie przesadzaj na początek. Czasem wystarczą tylko dwa/trzy punkty, ale też takie, które nie sprawią, że napiszesz drugiego Facebooka. Zaczynamy małymi kroczkami (polecam listę zakupów).

Kolejną fazą będzie określenie funkcjonalności, czyli musisz rozbić punkty z powyższej listy na twór bardziej szczegółowy. Przykładzik:

Pozwala użytkownikowi na wyświetlenie listy promocji (przykładem może być Ceneo.pl – bardzo uproszczona wersja)

  • zgromadzenie danych o produktach i sprzedawcach
  • znalezienie ofert, które są najtańsze w swojej kategorii cenowej i typie produktu

Przykład ten jest baaardzo uproszczony, ponieważ Ceneo.pl korzysta z algorytmów sztucznej inteligencji, ale obrazuje on to co trzeba zrobić, krok po kroku, aby zrealizować pewien punkt z pierwszej listy.

Pytaj

W internecie i w swoim otoczeniu z pewnością znajdziesz ludzi, którzy z chęcią wytłumaczą ci, dlaczego masz robić tak a nie inaczej. Pokażą dobrą drogę oraz poprawią błędy. Wystarczy poszukać for tematycznych, grup na Facebooku czy popytać czy ktoś nie zechciałby zostać mentorem. Pamiętaj jednak o tym, żeby zwracać się do takich ludzi w ostateczności, kiedy internet nie jest w stanie jasno odpowiedzieć na twoje pytanie. Dzięki temu nie tylko zyskamy kontakty, ale też będziemy mieli osobę, która podpowie, uratuje z opresji czy popchnie do przodu.

Mam już IDE, środowisko i co dalej?

Zapewne patrzysz na ekran i zastanawiasz się co zrobić kiedy widzisz tylko migający kursor i ginącą chęć do czegokolwiek. Teraz możesz zacząć przegrzebywać dokumentację, StackOverflow czy tutoriale pokazujące najprostsze przykłady programów. Przepisuj je, testuj działanie, zmieniaj co tylko się da. Zwyczajnie podejdź do tego jak do zabawy. Tutaj ważnym krokiem jest stworzenie notatek. Opisywać będziesz w nich błąd jaki występuje oraz jego rozwiązanie krok po kroku. Nie działa Ci przypisanie wartości do zmiennej w języku C? Stwórz notatkę ze sposobem w jaki to napisałeś/aś i nie działało. Następnie podaj sposób rozwiązania i krótką notkę o tym dlaczego nie może być tak jak w pierwszym przypadku.

Próba: scanf(„%d”, value);
Rozwiązanie: scanf(„%d”, &value);
Notatka: Pierwszy sposób nie przekazuje wskaźnika na zmienną value, dlatego wartość wczytana z klawiatury nie może być przypisana do zmiennej. W pamięci na czas wykonania funkcji tworzona jest nowa zmienna value i jest ona usuwana po zakończeniu realizacji scanf. Wartość zmiennej, którą przekazałem, nie zmienia się. Wskaźnik sprawia, że operacja przypisania nowej wartości odbywa się na „mojej” zmiennej.

Tak mam się nauczyć programować?

Tak, właśnie tak. Po drodze jednak stanie przed nami bardzo dużo rozpraszaczy, ale wtedy przychodzi z pomocą lista ciekawych pojęć. Podczas tworzenia pierwszych programów będziemy rozpraszani przez najróżniejsze zagadnienia i technologie. Ważnym jest, by skupić się na aktualnym projekcie i jego realizacji. Nie ma sensu poznawania trzydziestu frameworków, jeżeli jeszcze nie potrafimy programować. Wtedy jedynym słusznym rozwiązaniem jest taka lista. Zapisujemy „odwrotna notacja polska” i po skończeniu pierwszego, drugiego czy dziesiątego zadania, będziemy mogli zapoznać się z tym ciekawym algorytmem. Często zapoznając się z danym zagadnieniem zauważymy, że do naszej listy dochodzi dziesięć innych i tak oto poznamy „serializację obiektów” czy „pamięć dzieloną”. Teraz może to nie być przydatne, ale w przyszłości nie tylko będziemy znali dany temat, ale też będziemy mogli porozmawiać z innymi programistami na ten temat (tak oto wchodzi się w to środowisko).

Gdybyś w tym momencie uczył się czystej teorii to zauważyłbyś(żyłabyś), że wiesz jak coś wygląda, ale nie masz pojęcia jak to napisać. W programowaniu najważniejsze jest klepanie. Powtarzanie pewnych działań i rozbudowywanie aplikacji o kolejne funkcjonalności to proces, który naturalnie rozwija i daje radość z tego co się robi. Na początku nie będzie się nic rozumiało, to jest naturalne, ale z czasem, gdy wszystko ułoży się w głowie, będzie to miało ręce i nogi.

Ludzie ucząc się nie zwracają uwagi na to, że po przeczytaniu książki pt. „JVM, sekrety i inne ciekawe bytecode’y” (nie szukajcie, nie ma takiej książki) będą pamiętali o tym co właśnie przyswoili przez jakiś tydzień – tak, wiem, jestem optymistą. Będą mieli satysfakcję z tego, że nie zmarnowali swojego czasu, bo PRZECIEŻ SIĘ UCZYLI. Praktyka to też nauka, ale taka, która łączy teorię z realnymi problemami i sposobami ich rozwiązywania. Wchłoniesz wiedzę, która później będzie dla ciebie przydatna i będziesz wiedział jak ją zastosować.

Podsumowanie i trochę TL;DR

Programowanie to bardzo szeroka dziedzina i jeśli chce się w nią wejść to należy to robić małymi kroczkami. Nie należy wszystkiego robić na szybko, bo nic z tego nie wyjdzie. Parę godzin dziennie, regularnie da nam więcej niż jedno 18-godzinne posiedzenie raz na tydzień.

Wymyśl projekt, zacznij pisać, twórz listy ciekawych pojęć i pomysłów, PISZ.

Nauczyć możesz się z wielu źródeł, ale konsekwencja i praktyka sprawią, że ciężka praca zaowocuje w przyszłości. Języków jest więcej niż w liter w alfabecie, więc każdy znajdzie coś dla siebie. Później przyjdzie czas na konferencje i książki, ale to jest czynnik do pogłębiania wiedzy, nie do jej początkowej fazy zdobywania.

Powtórz po mnie: CHCĘ SIĘ NAUCZYĆ PROGRAMOWAĆ!

Miłego tworzenia!

Najtrudniejszy pierwszy krok… – Anna Jantar.


Podziel się

Założyciel i prezes grupy XOR. Programista, miłośnik technologii, bloger, student informatyki na Politechnice Świętokrzyskiej. W wolnych chwilach pisze w C++, Javie i czasem w Pythonie. Lubi fotografię i wyborny, ale niszowy humor.