Początek drogi do zostania programistą
Chcąc zacząć naukę programowania, pierwsze pytanie, jaki Ci się prawdopodobnie pojawia, jest: Jaki język programowania wybrać? Na rynku jest wiele popularnych języków programowania: Java, Python, JavaScript, C, C++, C# czy PHP. W Każdym z nich można programować różnego typu aplikację. Niestety jest tak, że nie każdy język programowania nadaje się do wszystkie. Każdego z nich używa się w określonym celu. Jeden lepiej sprawdzi się w tworzeniu aplikacji internetowych, a inny w tworzeniu gier. Na początek ważne, aby się długo nie zastanawiać, wybrać jakiś język programowania, zacząć naukę i sprawdzić, czy jest to w ogóle coś, czym chce się zajmować.
Popularne języki programowania
Poniżej przytoczyłem tutaj kilkanaście języków programowania. Choć jako, że jesteś osobą, która dopiero zaczyna swoją przygodą z programowaniem, tak naprawdę nieważne, który język programowania wybierzesz, jest to tylko narzędzie, które ma dla siebie specyficzną składnie. Sama koncepcja programowania, czyli jak to robić, dla każdego języka jest taka sama. Nawet jeśli na początku wybierzesz jakiś język programowania, który Ci się nie spodobał i nauczysz się go, każdego kolejnego będziesz uczył się już dużo szybciej, bo podstawy programowania dla każdego z nich są takie same, jedynie czym mogą się różnić to właśnie nieco składnią. Dlatego nic nie stoi na przeszkodzie, że na początku stwierdzisz, że chcesz się rozwijać jako programista stron internetowych, a później jednak wybierzesz inną drogę rozwoju. Oczywiście będą różnice w danej branży programowania, ale będzie ich się dużo prościej nauczyć, gdy będziesz znać ogólną koncepcję programowania.
Java
Obiektowy język programowania używany do rozwiązań biznesowych. Jest to język, który najczęściej działa po stronie serwera, dlatego jest dobrym wyborem, jeśli nie interesują Cię rzeczy związane z projektowaniem strony czy grafiką. Java jest częstym wyborem w projektach, które muszę być rozwijane latami, przez co korporacje często wybierają ten właśnie język.
Python
Uważany za dość prosty język programowania (przynajmniej jeśli chodzi o podstawy). Dzięki dość prostej składni i specyfikacji języka, a także ogromnej ilości bibliotek, jest językiem o szerokim zastosowaniu oraz w miarę prosto można w nim napisać skomplikowane rzeczy.
JavaScript
Język programowanie wykorzystywany do pisania stron internetowych po stronie klienta (to co użytkownik widzi na stronie). Jeśli interesuje Cię projektowanie i tworzenie stron internetowych, do tego jesteś osobą kreatywną, to właśnie ten język programowania będzie dla Ciebie najlepszy.
C#
Język programowania stworzony przez firmę Microsoft. Podobnie jak Java, jest dedykowany do rozwiązań biznesowych i działa po stronie serwera. Jeśli interesują Cię produktu tej firmy, to może i język programowania też przypadnie Ci do gustu.
PHP
Język programowania dedykowany pod pisanie stron internetowych po stronie serwera. Może się tym chwalić, że w nim zostało obecnie napisanych najwięcej stron. Dobrym połączeniem tego języka, jest wykorzystanie go z technologią WordPress.
Obszar programowania
Podczas wyboru odpowiedniego języka programowania, warto zastanowić się w jakim obszarze chciałoby się tworzyć, ponieważ w świecie programowanie jest tak, że dla konkretnej branży, mamy określone języki programowania, które najlepiej się tam sprawdzają.
Frontend
Mamy dowolny serwis WWW. Frontend to część aplikacji widoczna dla użytkownika. Odpowiada za tworzenie interfejsu stron internetowych oraz interakcje z nią związanych:
- Wciśnięcie przycisku.
- Rozwijanie listy.
- Przekierowywanie na inną podstronę lub stronę.
- Animacje.
W tej ścieżce rozwoju należy zaznajomić się na początek z HTML, CSS i językiem programowania JavaScript. Jeśli już nauczysz się podstaw, warto nauczyć się jednej z technologii: Angular, React lub Vue.
Backend
Backend jest to część aplikacja niewidoczna dla użytkownika i znajduje się na zewnętrznym serwerze. Jest to niezbędna warstwa aplikacja do prawidłowego funkcjonowania strony WWW. Takimi zadaniami realizowanymi w ramach tego obszaru, mogą być:
- Rejestracja i logowanie użytkowników na stronie.
- Dowolne zapisywanie danych, aby użytkownik przy kolejnym wejściu na stronę dalej je miał np. informacje o twoim koncie na Facebooku.
- Obsługa płatności.
- I wiele innych funkcjonalności wymagających złożonych procesów.
Jeśli wybierzesz ten obszar programowania, to warto wybrać język Java (oraz framework Spring), C# (dodatkowo framework ASP.NET), Python (oraz framework Django), PHP (Laravel, Symfony lub WordPress), Node.js czy Ruby (framework Ruby On Rails).
Full-stack
Jest to połączenie dwóch powyższych. Osoba posiada umiejętności pracy jako Frontend i Backend Developer. Często jest tak, że ucząc się programowania na początku wybierasz jeden z tych obszarów, a następnie z czasem uczysz się tego drugiego. Dlatego z reguły jest tak, że jesteś specjalistą w jednym, ale drugi obszar również bardzo dobrze znasz.
Bazy danych
A może interesuje Cię praca przy tworzeniu, zarządzaniu i analizie baz danych? To warto zapoznać się ze strukturalnym językiem zapytań SQL oraz z różnymi relacyjnymi bazami danych MySQL, Microsoft SQL Server, PostgreSQL czy Oracle Database. Alternatywą dla tego rozwiązania są nierelacyjne bazy danych NoSQL: MongoDB czy Redis . W praktyce jest tak, że zna się oba typy baz danych. Na początek polecam nauczyć się robić w SQL, następnie przejść do NoSQL.
Aplikacje mobilne
Tworzenie oprogramowania na urządzenia mobilne. Jeśli chcesz programować aplikację na Androida, postaw na Java lub Kotlin (Obecnie Kotlin jest dedykowanym językiem). Natomiast jeśli interesują Cię produkty od firmy Apple, to dobrym wyborem, dla urządzenia iOS, będzie Objective-C lub Swift (Jeśli decydujesz się na ten wybór to należy się zaopatrzyć się w MacBooka, aby móc programować na te urządzenia). Istnieje też podejście hybrydowe, gdzie tworzymy oprogramowanie od razu na obie platformy. W tym podejściu warto zapoznać się z Flutter lub React Native.
Data science
Jeden z nowszych obszarów. Osoba z tej branży zajmuje się przetwarzaniem i analizą danych (np. Big Data). Najczęściej wykorzystuję się języki programowania Python, R lub Scala. Jeśli kogoś interesuje ten temat to warto również zapoznać się z technologiami Hadoop i Spark.
GameDev
Tworzenia gier komputerowych. Jeśli interesuję Cię ta branża polecam zapoznać się z silnikiem Unity (wykorzystuje język programowania C#) lub Unreal Engine (język programowania C++).
Sztuczna inteligencja i uczenie maszynowe
Jeśli interesują Cię tematy związane ze sztuczną inteligencją i uczeniem maszynowym to warto nauczyć się języka Python, R lub ewentualnie Java (mniej popularna w tym obszarze).
To jaki język programowania wybrać na początek
W tym wpisie przytoczyłem Ci kilkanaście języków programowania i technologii z nimi związanych. Po przeczytaniu tego artykułu prawdopodobnie nawet nie wiedziałeś o istnieniu połowy z nich, przez co w twojej głowie pojawić się mogło jeszcze więcej wątpliwości co do odpowiedniego wyboru. Wybacz. Natomiast teraz masz większy pogląd na to, jak bardzo świat programowania jest obszerny. Mnóstwo języków, technologii, obszarów, a to dopiero początek. Oczywiście nie chcę Cię zniechęcać. Na start wystarczy, żebyś wziął jeden język programowania, który najbardziej Ci odpowiada na podstawie obszaru, w którym można go wykorzystać i zaczął się go uczyć. Poniżej przedstawiłem Ci kilka przykładowych wyborów na podstawie danych preferencji:
- Jeśli interesuje Cię tworzenie stron internetowych, pięknych interfejsów i grafik, wybierz JavaScript.
- Jeżeli interesuje Cię tworzenie stron internetowych, ale nie lubisz robić strony graficznej, a bardziej przemawia do Ciebie praca z przetwarzaniem danych i różnych procesów, wybierz Java. Naukę języka możesz zacząć wybierając jeden z kursów opisanych w artykule o Najlepszych tutorialach z Java.
- Jeśli interesuje Cię tworzenie aplikacji na urządzenia mobilne:
- Na system Android, wybierz Kotlin.
- Na system iOS, wybierz Swift.
- W przypadku gdy interesuje Cię analiza i przetwarzania naprawdę dużej ilości danych, wybierz Scala.
- Jeżeli interesuje Cię tworzenie gier, wybierz C#.
- Jeśli chciałbyś pisać aplikacje desktopowe na Windowsa, wybierz C#.
- W przypadku gdy podobają Ci się tematy ze sztuczną inteligencją i uczeniem maszynowym, wybierz Python.
Podsumowanie
Jaki język programowania wybrać? Mam nadzieje, że po przeczytaniu tego artykułu, w miarę dobrze przedstawiłem Ci ten problem i teraz już wiesz jak odpowiedzieć na to pytanie. Pamiętaj, że wybór początkowego języka programowania należy tylko i wyłącznie do Ciebie.
Co na początek warto zrobić?
- Wybierz początkowy obszar i język programowania.
- Znajdź dowolny kurs (Polecam YouTube na początek) i zacznij przerabiać materiał. Jeśli wybrałeś na początek Java lub JavaScript, w dalszej części serii znajdziesz rekomendowane przeze mnie kursy dla tych języków programowania.
- Sprawdź dostępność ofert pracy i wymagania na stanowisko junior Developera lub staż np. Wpisz w Google frazę Java junior developer. Warto szukać ofert w swoim regionie. Wtedy będziesz wiedział ile ofert jest dostępnych w danym języku programowania w twojej okolicy.
- Na podstawie oferty pracy możesz przygotować TODO listę wymaganych umiejętności, aby starać się na tego typu stanowiska. Często w ofercie jest wypunktowane, co dana osoba powinna umieć ubiegając się o stanowisko.
- Śledź na bieżąco blog uprogramisty.pl.
Na blogu będę starał się iść w stronę języków (i technologii), które znam i pracuję na co dzień (Java, Spring, JavaScript, TypeScript, Angular, SQL). Na nich się będę w dalszej mierze opierał w kolejnych artykułach serii. Nawet jeśli, wybrałeś inny język na początek, zachęcam do dalszego śledzenia serii, ponieważ w dalszej części będą omawiane rzeczy, które są ważne dla programisty niezależnie od wybranego języka programowania m.in. budowanie CV, szukanie pierwszej pracy, czy jak wygląda dzień z życia programista.