Przemyślenia o przyszłości programisty
Zastanawiałem się ostatnio nieco nad swoją przyszłością w roli programisty. Czas najwyższy “olać” kilka języków, a zacząć się specjalizować w tych kilku wybranych, tych ulubionych, tych które mnie najbardziej interesują.
W obecnej chwili myślę, że będzie to głównie C/C++/D, jeśli chodzi o kompilowane, natomiast ze skryptowych to Perl, PHP, może Python (choć tego akurat wcale nie znam i na razie się nie śpieszę poznać). Ewentualnie mogę do tej listy dołączyć C#, ale nie planuję większych zabaw z .Netem.
Oczywiście nie liczę tu umiejętności w posługiwaniu się opisowymi i hipertextami typu (x)html, css, xml, czy choćby podstaw JS, bo to akurat chyba każdy programista mający jakiś związek z webdeweloperką potrafi… Podobnie, nabyte zdolności i doświadczenia z Asemblerem, Basicem i innymi, z którymi miałem już do czynienia (patrz notka: Trochę historii z programowania) na pewno w życiu mi się przydadzą, tego akurat mogę być pewien.
Dobry programista może “klepać” kod w czymkolwiek, w końcu wszystko jest prawie takie same, no prócz składni ;)
Ktoś mógłby mi jeszcze polecić dodanie do listy Javy, ale ja podziękuję, bo po co mi ona? Trochę ją “liznąłem” i mi nie podeszła. Zresztą prawdopodobnie “liznę” ją znów od października na uniwerku i wierzę, że na tym się zakończy moja przygoda z Javą. A przynajmniej tak planuję, bo nikt nie wie, do czego może nas zmusić życie ;)
Pamiętam jak zaczynałem swoją przygodę z PHP, wtedy mało kto kodował w OOP, a świat nie słyszał o frameworkach. A teraz? Czasy się zmieniły! Pewnie za kilka lat znów się zmienią, jak i obrany kierunek. Frameworki PHP rosną jak grzyby po deszczu, głównie dzięki prostocie języka - każdy może go łatwo opanować i sobie coś swojego napisać. Ja osobiście “przespałem” ten okres “przejścia” na frameworki w PHP. W tym czasie pewnie bawiłem się innym językiem lub inną technologią. Prócz znajomości CodeIgnitera przydałoby się jeszcze poznać jakieś 2-3 inne i nic więcej, bo po co?
Co do Perla to znalazłem ostatnio fajny framework implementujący model MVC - catalyst. Zapewne mu się bliżej przyjrzę, bo wydaje się ciekawy.
Główny nacisk jednak nadal kładę na C/C++/D bo w nich widzę swoją przyszłość i najlepiej się czuję. To prawda, że kiedyś bardzo lubiłem PHP i nawet przez moment fascynacji (ahh te szczeniackie lata) uważałem go za wspaniałego, a gardziłem innymi językami. To jednak trwało krótko, dopóki nie poznałem magii C/C++ i się nie “zakochałem” ;)
To właśnie umiejętności w posługiwaniu się i optymalnym wykorzystaniu STLa i innych bibliotek/API (WinAPI, MFC, wxWidgets, GTK i QT) powinienem nadal pogłębiać w mniejszym lub większym stopniu. Na szczęście większość tych popularnych jest mi już znana, teraz tylko pozostaje uzupełniać braki i “rzeźbić”. No i muszę się wreszcie przełamać do Boosta, bo aż żal go nie znać i nie używać, skoro to taka “nieoficjalna biblioteka standardowa” C++ :)
Jednym z głównych powodów do przemyśleń, a w wyniku czego, napisania tej notki, był temat Czemu dobrzy specjaliści IT są tak pożądani poza granicami Polski? na forum grupy Praca dla informatyków portalu GoldenLine. Ciekawy temat z ciekawymi wypowiedziami.
Ze śmieszniejszych fragmentów, ale jakże nam “znany” z życia motyw:
mowimy o zawodowcach, dobrym programiscie, a nie panu jacku, ktory zaczynal w sklepie komputerowym a potem zaczal dlubac w php i teraz ubiega sie o prace programisty java.
Komentarze (8)
Python jest prosty, jest tak prosty, że uczą się niego początkujący (patrz ja) jako pierwszego języka. Więc dla programisty z krwi i kości to nie będzie, żadnego problemu. Sądzę, że to powinno cię zaintesować, nauka Pythona w 10 minut
Catalysta miałem zamiar się uczyć, ale porzuciłem to gdy stwierdziłem, że wolę mieć świetną dokumentacje z której rozwiążę większość problemów, niż mieć super hiper możliwości co spowoduję wiele problemów
C/C++ zawsze będzie ważne.
Zdecydowanie polecam bardziej naukę Pythona niż Perla czy PHP (jeśli chodzi o skryptowe). A jeśli chodzi o kompilowane to się nie wypowiadam, bo o ile znam z grubsza C++/C#, o tyle ogólne nie przepadam za językami kompilowanymi.
Jesli chodzi o frameworki do PHP to gorąco polecam PRADO. Fakt nie jest on najprostrzy, ale jego mozliwości sa ogromne.
Właśnie w Perlu i PHP się dosyć dobrze poruszam, więc akurat ich się uczyć już nie muszę, chyba że Perla podszlifować. A w Pythonie nie miałem jeszcze okazji “grzebać” ;)
Myślałem o Rapidzie i Zendzie, i oczywiście jakiś mały, prosty i lekki sobie samemu sklecić na własne potrzeby.
Rozważam właśnie ten problem. Z języków kompilowanych pierwszy odpadł Basic i Pascal(Delphi). Języki te są już martwe, co wnisokuję choćby z ogłoszeń o pracę. Zależy mi na wsparciu najnowocześniejszych technologii, zwłaszcza webowych. Z tego powodu odpadł C++ - nie jest zaprojektowany do pracy w środowisku rozproszonym i ma naleciałości z przeszłości (zgodność z C).
Naturalnym wyborem wydają się tu języki skryptowe. Obecnie programuję w PHP, bo ma składnie podobną do C (i też jego wady) i jest wszędzie. Właśnie ze względu na przestarzałość PHP nie opłaca się za bardzo w niego inwestować. Ruby jest dość młody i brakuje mi wielu nowoczesnych narzędzi (np. framework oparty na zdarzeniach, SDO). Pythona nie znam, ale wydaje się obiecujący.
Jednak języki skryptowe nie nadają się do wszystkiego. Stąd też pozostała mi alternatywa: C# lub Java. Wygrywa ta druga ze względu na przenośność, otwartość oraz rozwój nowoczesnych narzędzi do Web Services, Semantic Web itp. C# ma świetny edytor, integruje się z systemem, ale jestem uzależniony od jednej firmy, której produkty są dość drogie, a standardy zamknięte.
Idź w taki język, który najlepiej do Ciebie przemawia; taki, po który sięgniesz, gdy będziesz miał ochotę coś zrobić dla siebie. Dla mnie akurat takim językiem jest Perl, ale jestem w stanie zrozumieć wybory innych (no, może niekoniecznie PHP, ale zostawmy flamewary na boku).
Nie kieruj się tym, co się dobrze sprzedaje na rynku, bo to ulegnie zmianie za kilka lat. Paradoksalnie można świetnie zarobić na Cobolu - i wcale nie żartuję, bo pracuję z ludźmi, którzy z takiej właśnie pracy odeszli, chociaż była bardzo dobrze płatna.
Jeśli osiągniesz pewien poziom w jakimś języku, to nie będziesz miał trudności ze znalezieniem ciekawej i adekwatnie wynagradzanej pracy. Może niekoniecznie w swoim regionie, ale w końcu podróże kształcą. Unikniesz za to wypalenia po kilku latach pracy z niespecjalnie lubianym narzędziem, choć w swoim czasie cenionym na (lokalnym) rynku.
Stare dzieje, póki co nie muszę wybierać, samo przyszło ;)
Najlepiej to mi się pisze w C++ i Perlu. Ostatnio znów na nowo poznaję magię tego drugiego.
A wiedza i inne umiejętności zawsze się przydają, szczególnie jakieś doświadczenie, bądź styczność z przeszłości. Przez co skrobniecię czegoś choćby w Asemblerze nie powinno być wielkim problemem. Choć jak to mówią - nie używana wiedza zanika, co czasem daje o sobie znać ;)
A to fakt, mnie dużo dały rozmowy z ludźmi piszącymi świadomie w innych językach. Możliwość zobaczenia “jak oni śpiewają” prowadzi do rozszerzenia własnych możliwości w ulubionym języku.
Co nie zmienia faktu, że żadne pieniądze nie skłoniłyby mnie do permanentnej zmiany fachu na programistę PHP czy Javy. No, ale trzy przeprowadzki to chyba nawet coś gorszego od PHP ;-)