Wprowadzenie
Od czego zacząć naukę programowania? To pytanie zadaje sobie coraz więcej osób chcących wejść do świata IT będąc totalnie
początkującym albo chcąc się przebranżowić lub zdobyć dodatkowe umiejętności, które pomogą im w obecnej pracy wejść na wyższy
poziom. Przy okazji mogą rodzić się też inne pytania jak np.:
- Czy programowanie jest dla mnie?
- Jak szybko można nauczyć się programowania?
- Ile zarabia programista?
- Jaką ogólną wiedzę powinien posiadać programista?
- W jaki sposób uczyć się programować?
Poniżej została przedstawiona checklista, która ma na celu ułatwić Ci zapoznanie się i obranie konkretnej ścieżki nauki programowania
„od zera do bohatera” albo od zera do junior software developera 🙂
Poznaj podstawowe pojęcia zanim zaczniesz
Zanim zaczniesz właściwą naukę, dobrze by było poznać podstawowe pojęcia jakie panują w tym świecie.
Pozwoli to na dalszym etapie lepiej sprecyzować ścieżkę rozwoju.
Niektóre z pojęć, które warto poznać określają z grubsza obszar w jakim będziesz się poruszać tworząc aplikacje.
Są to takie pojęcia jak:
- Frontend – (aplikacje frontendowe) czyli mówiąc najprościej wszystko co jest związane ze stronami internetowymi działającymi
w przeglądarce WWW i tym co widać gołym okiem tj. tekst, grafika, przyciski na stronie itp. - Backend – (aplikacje backendowe) jest to przeciwieństwo aplikacji frontendowych, a więc tworząc takie aplikacje,
efekty ich działania nie będą bezpośrednio widoczne dla użytkowników, ale działają niejako w tle i po stronie serwera - Desktop – (aplikacje desktopowe) są to aplikacje uruchamiane bezpośrednio na komputerze użytkownika, charakteryzują się tym, że
zazwyczaj mają swój własny instalator i trzeba ja najpierw zainstalować na komputerze, aby można było z nich korzystać - Mobile – (aplikacje na smartfony i tablety) są to aplikacje uruchamiane na tabletach i smartfonach zarówno z systemem Android jak i iOS
- Web – aplikacje webowe czyli ogół aplikacji działających dzięki wykorzystaniu połączenia z internetem
- Cloud – tzw. chmura obliczeniowa, ale obecnie jest to szerokie pojęcie zawierające w sobie wiele różnych usług z których można korzystać
nie posiadając aplikacji zainstalowanej na swoim komputerze a jedynie logując się do chmury, która taką aplikację udostępnia on-line - Embedded – są to urządzenie elektroniczne zawierające w specjalistyczne i dedykowane oprogramowanie w sobie, przykładem takich urządzeń są
centralki do obsługi sterowania w inteligntnym domu albo panel sterowania obsługujący parametry samochodu - AI (Artificial Intelligence) – czyli sztuczna inteligencja i wszystko co z nią związane, w tym ML – Machine Learning, czyli uczenie maszynowe
1. Przeprowadź rozpoznanie i zastanów się co możesz i co chciałbyś robić jako programista
Kiedy poznasz podstawowe pojęcia, możesz przejść do kolejnego kroku, a w nim postaraj się poznać swoje preferencje co do tego jakie są Twoje zainteresowania i co chciałbyś robić jako programista. Łatwiej będzie wytrwać w czymś, co jest dla Ciebie interesujące niż w czymś co robisz bo musisz.
Dowiedz się też jak wygląda praca programisty i że nie polega tylko i wyłącznie na „klepaniu kodu”.
I tutaj możesz posiłkować się wiedzą z poprzedniego kroku tzn. znając obszary działalności w zależności od obszaru, będziesz
używać innego języka programowania. Obecnie wiele języków oferuje podobną funkcjonalność i można je stosować zamiennie dla frontendu, backendu
czy aplikacji desktopowych. Ale w praktyce istnieją pewne trendy, gdzie określone języki są chętniej używane w określonym typie aplikacji.
Jeśli dopiero zaczynasz, a nie bardzo wiesz jaki język wybrać, to możesz wybrać coś co jest używane powszechnie a przy okazji
nie jest bardzo skomplikowane przynajmniej do nauki na początku. O tym dowiesz się w kolejnych krokach.
Tak jak też zostało wspomniane wcześniej, praca programisty to nie tylko pisanie kodu, ale też tworzenie zadań tzw. tasków,
w których opisuje się co jest do zrobienia. Oprócz tego jest też debugowanie, przeglądanie i sprawdzanie cudzego kodu, branie udziału w spotkaniach
projektowych, analiza wymagań klienta, szacowanie czasu potrzebnego na wykonanie zadań, a także ciągła nauka nowych zagadnień.
Poza samym programowaniem, właściwie zawsze przydaje się też wiedza z takich obszarów jak bazy danych, praca z systemem kontroli wersji, znajomość
komend systemu operacyjnego Linux i wiele innych (napiszę o tym w innym artykule) i oczywiście znajomość języka angielskiego.
2. Wybierz język programowania
Wiesz już wstępnie czym zajmuje się programista oraz mniej więcej co Cię interesuje. Pora na wybór języka programowania do nauki na początek.
Pierwszym kryterium wyboru może być, to czy zdecydowałe(a)ś się tworzyć aplikacje frontendowe, backendowe, desktopowe czy mobilne itp.
Poniżej zamieściłem listę najbardziej popularnych języków programowania, wykorzystywanych w wyżej wymienionych obszarach:
- Frontend
- JavaScript
- TypeScript
- HTML
- CSS
- Backend
- JavaScript/TypeScript
- Java
- C#
- PHP
- Ruby
- Go
- Desktop
- C++
- C#
- Python
- Visual Basic
- Mobile
- Java
- Kotlin
- Objective C
- Embedded
- C/C++
- Python
- Artificial Intelligence
- Python
- R
Jak widać wybór jest duży, a trzeba zaznaczyć, że są to jedynie najbardziej popularne języki programowania i niektóre mogą być stosowane zamiennie w wielu obszarach. Jeśli tak duży wybór Cię przytłacza, to dobrym pomysłem na początek będzie wybranie czegoś popularnego, w miarę prostego i przyjemnego do nauki jak np. JavaScript, HTML i CSS. Jest to „święta trójca”, która działa ze sobą bardzo dobrze jako całość i ucząc się choćby podstaw tego zestawu, ocenisz czy ten temat jest dla Ciebie. Zaletą tych języków jest, że programy w nich można pisać i uruchamiać nawet bezpośrednio w przeglądarce WWW, która jest domyślnie zainstalowana na każdym komputerze.
3. Poznaj podstawy wybranego języka
Wiesz już co Cię najbardziej interesuje i czym chcesz się zajmować jako programista oraz jaki język wybrać.
Kolejnym krokiem będzie „zaprzyjaźnienie się” z wybranym językiem i poznanie jego podstaw oraz zastosowań w praktyce.
I tutaj znowu jest kilka możliwości, jeśli chodzi o sposób nauki podstaw języka.
Najbardziej popularnymi i dostępnymi sposobami nauki są:
- Kursy on-line
- Tutoriale
- Książki
- Bootcampy
Najtańsze, bo darmowe, są tutoriale, które przeprowadzają przez podstawowe funkcjonalności wybranego języka – instalację, składnię,
instrukcje języka, zmienne, pętle itp. Dużo tutoriali w języku angielskim znajdziesz tu: - https://www.tutorialspoint.com/tutorialslibrary.htm albo
- https://www.w3schools.com/
Drugie w kolejności i zazwyczaj bardziej obszernie omawiające temat są kursy on-line np. na stronie Udemy.com oraz książki i ebooki np. wydawnictwa Helion.
Na ostatnim miejscu są Bootcampy, które są najdroższe, ale też nauczysz się z nich prawdopodobnie najwięcej, z tym że problemem jest tutaj próg wejścia
i ryzyko, że wydasz znaczną sumę pieniędzy, a nie wykorzystasz później nabytej wiedzy w praktyce.
Dlatego moim zdaniem na początek, niejako na spróbowanie, optymalnym rozwiązaniem jest zakup kursu lub/i książki lub ewentualnie połączenie
tego z darmowym tutorialem, krok po kroku.
Przykładowe źródła wiedzy dla książki, kursu i tutoriala JavaScript:
Tutorial: https://www.w3schools.com/js/default.asp
Kurs: https://www.udemy.com/course/javascript-jedyny-kurs-ktorego-potrzebujesz/
4. Wykonaj pierwszy prosty projekt bazując na zdobytej wiedzy (w trakcie projektu rozszerzysz ją o nową wiedzę)
Poznałeś podstawy języka i masz ogólne pojęcie o tym czym jest programowanie. To jest dobry moment żeby wykorzystać nowo zdobytą wiedzę w praktyce.
Sprawdź się główkując trochę nad prostym mini-projektem. Na tym etapie zaczynasz mieć styczność z prawdziwym życiem programisty, które
polega na ciągłym rozwiązywaniu problemów. Najciekawsze w programowaniu jest to, że zazwyczaj rozwiązań jednego problemu jest wiele, kwestia
czy wybrane rozwiązanie jest optymalne. Generalnie im coś jest prostsze tym lepiej. Ale na tym etapie liczy się sama zabawa oraz nauka.
Tak więc jeśli jeszcze tego nie zrobiłeś, zainstaluj swoje IDE (Integrated Development Environment – jeśli nie wiesz co to jest, niech będzie
Twoim zadaniem domowym, aby dowiedzieć się co to jest) i bazując na zdobytej wiedzy oraz posiłkując się informacjami z internetu, książek lub kursu,
spróbuj zmierzyć się z pierwszym mini-projektem. Przykładowe w miarę proste projekty to:
- Tworzenie listy „ToDO” do której można dodawać nowe rzeczy oraz usuwać z niej i wyświetlać dotychczas dodane zadania
- Gra „Wisielec”
- Zegar
- Gra w kółko i krzyżyk
5. Poszukaj mentora albo dalej Poszerzaj swoją wiedzę o inne bardziej zaawansowane zagadnienia oraz tematy uzupełniające
Jeśli przebrnąłeś przez pierwsze cztery kroki, można powiedzieć, że właśnie stałeś się ekspertem w dziedzinie programowania – gratulacje!
A tak na całkiem poważnie, Twoja droga dopiero się rozpoczęła, ale jeśli na tym etapie nadal chcesz zdobywać wiedzę, to jesteś na dobrej drodze
i może to oznaczać, że programowanie jest dla Ciebie 🙂
Co dalej?
Kolejne kroki to poszerzanie zdobytej wiedzy o zagadnienia bardziej zaawansowane, a także poznawanie tematów pobocznych, bez których samo
poznanie tylko wybranego języka programowania trochę nie ma sensu. Mowa tu o wiedzy jak działają i jak korzystać z baz danych, jak pobierać i wysyłać dane
przez internet, poznanie dobrych praktyk, poznanie systemu kontroli wersji Git, odczytywanie i zapisywanie do plików itd.
I to by było na tyle w tym artykule, jeśli masz dodatkowe pytania – skorzystaj z formularza kontaktowego dostępnego na stronie Kontakt
albo Instagram.
Powodzenia 🙂