0

Jaki język programowania wybrać? – Strefa Juniora

Jaki język programowania wybrać

Cześć! Dzisiaj postaram się odpowiedzieć na jedno z najczęstszych pytań stawianych przed rozpoczęciem kariery tj. “Jaki język programowania wybrać?“, albo “Jak zacząć przygodę z programowaniem?“. Takie samo pytanie stawiałem sobie ja, podzielę się z Tobą moimi spostrzeżeniami, jak to wyglądało wtedy (jak zaczynałem) jak to wygląda teraz. Dowiesz się czemu stawianie sobie takich pytań – moim zdaniem – mija się z celem.

Wpis ten zawiera informacje pomocne dla osoby zaczynającej swoją przygodę z programowaniem. Jeżeli jesteś taką osobą, to koniecznie odwiedź dział juniora.

W poszukiwaniu idealnego języka programowania

Zapewne spora część programistów, na początku swojej kariery szukała języka programowania, w którym chciała by pisać. Do tej grupy należałem również ja. Prawda jest taka, że nie ma idealnego języka i poszukiwanie go nie ma za bardzo sensu. Czytając o każdym języku spotkasz się z jego zagorzałymi zwolennikami i osobami negujący go do potęgi. Będziesz pogłębiał się w tym „bagnie” i nawet nie zauważysz, kiedy znienawidzisz jakiś język, mimo że nawet nie napisałeś w nim ani jednej linijki kodu. Dodatkowo stracisz sporo czasu.

Moje początki

Podam swój przykład. Pytałem sam siebie, czy chcę iść w kierunku C++ poznanego na studiach (ta… poznanego… każdy wie jakie są studia, ale to jeszcze kiedyś opiszę), czy wybrać coś innego: Java, Python czy może jeszcze coś innego. Zacząłem czytać o każdym z tych języków… dużo… za dużo. Przecież Youtube był pisany w Pythonie, to musi być najlepszy język! Ale czekaj, czemu Java przoduje w rankingach? Ale, kurde… na studiach nikt nie pisał w Javie, po co uczą C++ (teraz już wiem ;))? Tak wiele pytań. Cały czas analizowanie i czytanie. I nagle… minął miesiąc czy dwa, a ja nadal nic nie wybrałem. W końcu musiałem podjąć decyzję, chciałem napisać grę (kto nie chciał?). Postanowiłem, że wybiorę taki język, o którym znajdę pierwszą książkę na temat pisaniu gier. I mam! Książka „Od zera do gier kodera”, język C++. Dobra, to lecimy. I tak, w końcu, wybrałem ten nieszczęsny język. Pisałem tą głupią grę „Kółko i Krzyżyk” chyba z miesiąc, ale było warto. Tak oto zaczęła się moja „przygoda”. Może tak też zacznie się Twoja.

Rankingi języków programowania

No dobra, ale czy to nie lepiej uczyć się języka, na który jest największy popyt (najwięcej ofert pracy)? Może i warto, ale zobacz z drugiej strony. Im większy popyt na programistów danego języka, tym więcej osób się go uczy, tym większa konkurencja. Próg wejścia dla Juniorów w dużych miastach w dzisiejszych czasach jest dosyć duży (w porównaniu z tym co było kilka lat temu). Następnie, języki programowania ciągle ewoluują, nie masz pewności, czy nawet jak znajdziesz zatrudnienie jako programista języka X, to czy firma nie zacznie się przenosić na język Y. Nie masz takiej pewności. W najlepszym wypadku skończysz utrzymując system w starym języku, albo zostaniesz zwolniony, bo nie będziesz już potrzebny. Mowa tutaj oczywiście o osobach, które kurczowo będą się trzymać swojego pierwotnego wyboru.

Mógłbym tutaj zmieścić rankingi języków, ale byłyby one pewnie już nie aktualne w dniu kiedy to czytasz. W dodatku co ranking to inne zestawienie. Niby przodują teraz Java i Python, gdzieś nawet znalazłem HTML i CSS na takiej liście (litości… to ktoś jeszcze to traktuje jako język programowania?), ale nie wiadomo jak sytuacja będzie wyglądać za rok albo dwa (Java pewnie będzie nadal przodować, ale kto wie).

Tak więc, według mnie nie ma sensu za bardzo przywiązywać uwagi do tych rankingów, lepiej wybrać język odpowiadający naszym zainteresowaniom.

Wybór języka programowania pod projekt

Tak naprawdę, jedyny sens analizowania początkowego języka widzę z punktu wymagań projektu. Musisz zdecydować co chcesz napisać (tak się najlepiej uczy, ale z tym też się podzielę). Wybrać dziedzinę problemów. To doprowadzi Cię do filtra, który trochę ułatwi Ci zadanie.

Jeżeli chcesz napisać grę (tak jak ja) to nie wybierzesz Matlaba albo F#. Twój wybór padnie prędzej na Java,C++,C#,Python – zależnie od silnika gry jaki wybierzesz. Z kolei jeżeli bardzo pragniesz zagłębić się w świat sztucznej inteligencji, to prawdopodobnie wybierzesz Pythona – to obecnie raczej lider w tej kwestii (swoją drogą ciekawe czy MS kiedyś go dogoni ze swoimi projektami, fajnie by było ;)). Tak samo strony internetowej raczej nie będziesz pisał w C, a analizy danych robił w Javie, tylko wybierzesz najprawdopodobniej R, Pythona albo Matlaba.

Jak widzisz wybór projektu może sporo podpowiedzieć. Oczywiście nie jest tak, że nie możesz czegoś napisać w wybranym przez siebie języku, może być po prostu trudniej (ale liczy się zabawa, nie ;)). Więc, jeżeli masz problem co wybrać, polecam spojrzeć na to z perspektywy Twojego projektu.

Ale ja nadal nie wiem jaki język programowania wybrać

Jeżeli nadal nie wiesz co wybrać, to przytoczę Ci algorytm, który bodajże Maciej Aniserowicz przedstawił w jednym z odcinków swojego podcastu:

  • wypisz na kartce wszystkie języki jakimi się interesujesz,
  • weź monetę,
  • dobieraj języki w pary i rzucaj tak długo aż zostanie jeden.

Dokładnie tak, zrzuć wszystko na los (jak coś pokręciłem to przepraszam, słuchałem tego pewnie o 5 rano na treningu, przed kawą ;)). Dokładnie takie znaczenie ma Twój wybór. Najważniejsze to zacząć! Z czasem zobaczysz, że to nie język w programowaniu jest najważniejszy. Teraz nie zdajesz sobie z tego sprawy, ale tak właśnie jest. Oczywiście znajomość języka jest kluczowa, aby pisać dobry kod, ale umiejętności programisty wykraczają poza to. Liczy się sposób w jaki myślisz, jak rozwiązujesz problemy, jakich wzorców projektowych używać. Znajomość podstawowych algorytmów i struktur danych również odgrywa duże znaczenie. A wiesz co jest najlepsze? Te wszystkie wymienione rzeczy są uniwersalne, znajdziesz je pisząc w każdym języku programowania (pomińmy tutaj egzotyki jak Prolog czy JavaScript ;)). Jak raz się tego nauczysz to będziesz mógł z tego korzystać wielokrotnie. Przekwalifikowanie się na inny język może wydawać się straszne, ale wcale nie jest tak źle. Oczywiście nie staniesz się ekspertem od razu, ale znajomość zasad, jakimi rządzi się programowanie ułatwi Ci to przejście.

Sam przebrnąłem przez wiele języków programowani (przebrnąłem, dobrze poznałem tak naprawdę 2, z czego w jednym moje wiedz już dawno się zdezaktualizowała), były to (wspomniany) min. C++, Assembler, Java, C, Prolog, Matlab, R, VHDL, Python, aż finalnie wylądowałem w przestrzeni C#. A wiesz jak zaczęła się przygoda w C#? A no tak, że programowałem w C++ i szukałem pracy jako programista tego języka. Poszedłem na rozmowę o staż, a Oni mi wyjechali z jakimś tworem C#. Co to w ogóle jest? Na pewno nie chodzi o C++? Nie. Dostałem 2 tygodnie na przygotowanie i zobaczymy jak pójdzie na okresie próbnym. Chyba się sprawdziłem, bo zostałem na dłużej.

Zacznij działać

Tak więc widzisz. Twój wybór, nad którym się tak zastanawiasz już drugi miesiąc, może nie mieć żadnego znaczenia. Skończysz pisząc w czymś kompletnie innym, albo jeszcze lepiej zostaniesz zastąpiony przez maszynę – bo tak się finalnie stanie. Co wtedy zrobisz? Będziesz zły na cały świat, bo dwa miesiące wybierałeś język i uczyłeś się tylko tego języka? Algorytmów też nie znasz, abstrakcyjnie też nie do końca umiesz myśleć? Tak więc, wybierz w końcu coś i zaczynaj! Ucz się wszystkiego, rozwijaj w wielu dziedzinach, nigdy nie wiesz jaka wiedza może być przydatna. Nie marnuj czasu na bezsensowne poszukiwania świętego Grala.

A jak wyglądała Twoja przygoda w poszukiwaniu początku? Masz to już za sobą, czy dopiero zaczynasz? Podziel się tym w komentarzu.

Pozdro!

Patryk Bogdański

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.