Ostatnio coraz częściej spotykam się z pytaniem osób, które chcą się nauczyć programować, jakiego języka warto się nauczyć pod kątem przyszłego rynku pracy. Czy jeżeli nauczę się języka X to będą miał pracę? Co lepiej, Y czy Z, żeby dużo zarabiać? I tego typu różne pytania.
Postanowiłem więc poświęcić trochę własnego czasu (i jutrzejsze niewyspanie w pracy) i odpowiedzieć na to, jakże ważne, z punktu widzenia młodego programisty, pytanie. Rada, wbrew pozorom jest bardzo prosta, nie trzeba poświęcać dużo czasu i wysiłku, żeby wcielić ją w życie oraz szybko przyniesie efekt. A mianowicie…
… idźcie do diabła.
Każda osoba, która zadaje to pytanie jest zakałą informatyki. Powinna przestać marzyć o tym zawodzie i znaleźć sobie jakieś ciekawsze zajęcie (prawnik, lekarz, strażak, mechanik, fizyk kwantowy). Nigdy nie osiągnięcie przyzwoitego poziomu. Może i będziecie zarabiać kilka tysięcy zł, może któremuś z was nawet jakimś cudem uda się zarabiać kilkanaście. Ale nadal pozostaniecie tylko marną imitacją prawdziwego programisty (bo o wyższych szczeblach kariery nie macie co marzyć).
Więc dotarliśmy do miejsca w którym część osób zdążyła opuścić tą stronę, rzucając sporą ilość bluzgów pod moim adresem. Druga część zaczęła te bluzgi wypisywać w komentarzach. Teraz coś dla inteligentnych. Nie potrafię zrozumieć skąd wzięło się to twierdzenie, że znajomość konkretnego języka programowania da sławę, kobiety, pieniądze i wieczne życie. Niewiedza gimnazjalistów, którzy po nocach grają w MW2, wychwalając jaką wspaniałą jest grą? Chęć pochwalenia się przed kolegami co się potrafi? Mało ważne. Ważniejsze jest to, co trzeba zrobić, aby z ww. osiągnąć chociaż jakieś sensowne pieniądze i może o sławie (bo o kobietach zapomnijcie, fajne dziewczyny nie lecą na takie banalne bajery, a życia wiecznego jeszcze nikt na tym świecie nie doświadczył)?
Jakość głupcze!
Nieważne jest co robisz, tylko jak. Nieważne w czym piszesz swoje programy, ważne, żebyś robił to dobrze, Twój kod był szybki, czytelny i… parę innych których będą was próbowali nauczyć, a i tak po przyjściu do pracy będziecie popełniać błędy. Ważne, żeby to co robisz miało sens i dobrze działało. Nawet jeżeli będziesz zaliczał wpadki, ale systematycznie się uczył i podnosił swój poziom, lepiej na tym wyjdziesz niż na znajomości nawet najbardziej pożądanego języka programowania. Zwykły zamiatacz ulic, który dobrze wykonuje swoją pracę, jest bardziej wartościowy niż mizerny programista.
Jakość i ilość
Znajomość konkretnego języka programowania nie gwarantuje jeszcze porządnej pracy (choćby było zapotrzebowanie na programistów tego języka znacznie przewyższające liczbę programistów). Warto znać kilka języków. Nie trzeba wszystkich od razu znać perfekcyjnie na pamięć, wraz ze wszystkimi ważniejszymi bibliotekami (tego i tak nikt nie pamięta, od tego jest dokumentacja). Przydatna umiejętność w przypadkach jeżeli Twój ulubiony język nie jest najlepszym narzędziem do rozwiązania problemu z którym przyjdzie Ci się zmierzyć. Nigdy też nie wiadomo czy nie będziesz musiał zarobkowo programować w czymś innym. Dodatkowo zawsze zdobywasz w ten sposób nowe umiejętności. Poszerzasz swoje horyzonty. I nawet jeżeli nie masz zamiaru nauczyć się jakiś egzotycznych języków to możesz poznać te, które wiążą się z Twoją dziedziną.
Modne i lubiane
To, że w tej chwili coś jest modne i często wykorzystywane (jak Java i C#) nie oznacza, że będzie takie za 5 lat. Jeżeli język jest popularny, to prawdopodobnie bardzo łatwo zastąpić jednego programistę innym (nawet studentem). Może warto zainwestować trochę czasu w naukę mniej popularnych języków? Taki COBOL nadal jest wykorzystywany w bankowości a większość jego programistów albo nie żyje, albo siedzi w domach spokojnej starości.
Nie języka a programowania ucz się
Nauka języka to tylko czubek góry lodowej którą trzeba pokonać aby stać się dobrym programistą. Znacznie ważniejszy jest sposób w jaki rozwiązujesz problemy. Inteligencja, doświadczenie, postrzeganie świata i umiejętność przełożenia to na kod, algorytmy. To są rzeczy nad którymi powinieneś skupić swoją uwagę. Języka można się nauczyć w miarę szybko. Pozostałe rzeczy potrzebne do bycia dobrym programistą zdobywa się latami. Chyba że jest się zdolnym, ale wtedy raczej nie zadaje się takich pytań.
Pasja
Znam sporo osób, które zarabiają całkiem rozsądne pieniądze. Wszystkie te osoby podchodzą do swojego zawodu z pasją i oddaniem (nie znam za to ani jednej która by zarabiała dużo podchodząc do tego tylko w kategorii aby zarobić jak najwięcej). Ich bycie programistą nie zaczyna się o 8 rano i nie kończy o 16. Dzięki poświęceniu swojemu hobby mogli osiągnąć to co teraz mają.





Dobra robota
takie coś powinno być przedstawiane wszystkim zadającym pytania typu “od jakiego języka zacząć”.
Świetna praca, akurat jestem gimnazjalistą i idę w tym kierunku i myślę że bardzo mi pomogłeś z dokonaniem wyboru zacznę od jakiegoś mniej popularnego języka