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

Koniec