Miały być vlogi, ale jednak zostaję przy starej formie tekstowej. Dlatego leci art. gdzie daję kilka swoich przemyśleń na temat „programisty”. Zakładam, że mogę się wypowiedzieć na ten temat z uwagi na kilkuletnie doświadczenie zawodowe:
Kto to jest programista
Programista – dev, koder, software developer, inżynier oprogramowania, tworzy aplikacje internetowe, strony, programy, itd. w danym języku programowania (np. C++, Python, Java, JavaScript, GoLang, PHP) lub bardziej ogólnie w danym ekosystemie.
Podział
Programistów w zależności od tego, którą „warstwą” aplikacji się zajmują dzieli się na:
- FrontEnd – generalnie cała warstwa którą widzi użytkownik
- Backend – dev, dłubie w rzeczach, których użytkownik nie widzi na oczy, ale zapewniają działanie całym aplikacją frontowym
- DevOps – zajmuje się sprzętową warstwą, dba oto, aby aplikacje miały gdzie się uruchamiać i wsio działało na produkcji
- FullStack – ani to DevOps, Frontendowiec, Backendowiec czyli co? Można powiedzieć ze wszystko i nic. Ale fullstack to programista co może wskoczyć w każdy region aplikacji. Oczywiście nie ma specjalizowanej wiedzy jak typowy np. frontedowiec z najnowszych frontowych frameworków, ale bez problemu zrobi coś, najwyżej będzie musiał odświeżyć, nauczyć się czegoś nowego, ale nie ma z tym problemów.
Przemyślenia
Kika moich spostrzeżeń na temat programistów. Pierwsze przemyślenie oprę na słowach Ellen Ullman, w sumie kobita ma kilka lat doświadczenia bo zaczęła programować w 1978.
Pierwszym krokiem jest pasja do pracy, do zgłębiania magicznej przestrzeni pomiędzy ludzkimi myślami, a tym co może zrozumieć maszyna, pomiędzy ludzkimi pragnieniami, a tym co może zrobić maszyna
Drugim krokiem jest wysoka odporność na niepowodzenia. Programowanie jest sztuką tworzenia algorytmów i usuwania wad błędnego kodu. Cytując słowa twórcy języka Fortan – John Backus’a: Musisz cały czas przyjmować niepowodzenia. Musisz mieć wiele pomysłów i bardzo ciężko pracować żeby odkryć, że są błędne i nie działają. Ciągle uparcie powtarzać, aż znajdziesz taki (algorytm) który zadziała.
https://www.nytimes.com/2013/05/19/opinion/sunday/how-to-be-a-woman-programmer.html – „Ellen Ullman”
Przemyślenia 2
Warto pamiętać również o:
- konkurencja – konkurencja zawsze będzie w każdej branży, dlatego warto starać być dobrym, dobry zawsze znajdzie zajęcie, ale, nie warto pamiętać: „Perfekcjonizm zabija powoli”, kod można poprawiać w nieskończoność, ale za takie poprawki biznes raczej nie będzie chciał zapłacić
- umiejętności miękkie vs twarde – dzisiaj pracuje się w zespołach, dlatego np. podczas rekrutacji zwraca się uwagę na umiejętności miękkie, czy swobodnie i spokojnie się z kandydatem rozmawia, itd.
- kodowanie – jeżeli wydaje Ci się że w projekcie będziesz tylko kodował to jesteś w błędzie, czasami więcej czasu spędza się na innych działaniach niż na kodowaniu: uzgadniania z biznesem, dema, papirgologia, itd.
- tajemna wiedza – programowanie to nie jest tajemna rzecz tylko wybranych, wystarczy samozapał i chęć co ciągłej nauki, bo tym zawodzie to ciągle trzeba uczyć się czegoś nowego
- matematyka – nie trzeba być mistrzem z matmy aby programować
- czy jestem dobry do rozmowy kwalifikacyjnej – podstawowy błąd, warto nawet od samego początku gdzieś próbować załapać się na rozmowę kwalifikacyjną, jest to jeden z etapów zdobywania doświadczenia
- dlaczego chcę programować – czy tylko dla kasy czy coś więcej, jeżeli tylko dla kasy to można się szybko wypalić
Zalety
- zarobki
- miejsce pracy – praktycznie można pracować w każdym miejscu
- projekty – niektóre są do bani ale niektóre ciekawe, np. kilka ms pracowałem przy projekcie dla Cerna, fajnie było poznać ludzi i zapoznać się z ich ekosystemem, tak samo, każdy projekt to nowe doświadczenie
- można robić to co się lubi i mieć z tego pieniądze
Wady
- perfekcjonizm – już wspomniałem o tym wcześniej
- duże wymagania z różnych dziedzin
- dużo siedzenia przed kompem po 8 lub więcej godzin – plecki niekiedy napierdzielają
- ciągła nauka i dużo własnej pracy
Zdobywanie wiedzy
- najważniejszy język programowania to angielski
- projekty, zacznij je robić od samego początku
- hackatony
- studia vs bootcamp
- plan nauki i działania – czego się uczmy, w jakim stopniu
- skupianie się na jednym elemencie w danym czasie (laser)
- nie wskakuj od razu na frameworki na starcie ucz się czystego języka
Portfolio
- jest dobrym źródłem informacji o nas samych
- pozwala przedstawić typ wykonywanych projektów
- pokazuje styl kodowania, podejścia do projektu
- pozwala określić co się umie, jakie stosuje technologie
- lepiej mało a lepszej jakości
Możliwość komentowania jest wyłączona.