Częste pytania początkujących programistów – moje odpowiedzi cz. I

Dosyć często początkujący programiści pytają o te same rzeczy, na które już dawno padła odpowiedź. Mam nadzieję,
że ten artykuł pozwoli niektórym, znaleźć tę odpowiedź nieco szybciej w przyjaznej dla nich formie. Zapraszam.

Spis treści:

  1. Jak zacząć naukę programowania? Co na początek?
  2. Chcę zarabiać dużo w IT, ale nie lubię programować, co jeszcze mogę robić?
  3. Czy lepiej iść w techniczną ścieżkę, a może zostać Team Leadem?
  4. Już długo wysyłam CV, próbuję znaleźć pracę i nikt nie odpisuje. Czy jest jeszcze praca w IT?
  5. Nie działa mi ten kod, dlaczego? Co jest nie tak z tym czymś?
  6. Mam dwie oferty pracy do wyboru, którą wybrać? Większe pieniądze czy ciekawy projekt? Jak to teraz rozegrać?
  7. Jakie słuchawki z wyciszeniem na open space?
  8. Lepiej cały czas szukać pracy, czy dopiero wtedy, gdy chce się ją zmienić?
  9. Jaki język aktualnie najlepszy do nauki pod kątem przyszłości?

1. Jak zacząć naukę programowania? Co na początek?

Proponuję zrobić narzędzie, z którego będziesz korzystał albo coś, co da Tobie największą frajdę. Zaawansowany kalendarz, listę zadań, wyszukiwarka fajnych filmów, własną grę – cokolwiek.

Organiczny rozwój na początku moim zdaniem daje lepsze efekty, niż wałkowanie kursów lub próba rozwiązywania algorytmicznych zadań.

Następnie spróbuj osiągnąć przynajmniej zarys swojego projektu – wstępną wersję strony, mini grę itp. Twoje rozwiązanie, będzie mieć nieco błędów, niedociągnięć i wad – ważne aby działało.

Wtedy polecam wybrać dowolną książkę, która skupia się na wybranej przez Ciebie technologii i tematyce. Po prostu weź książkę, której poziom będzie dostosowany do Twojej wiedzy i postaraj się przeczytać całą. Znajdziesz tam całą masę informacji i w końcu wszystko zacznie się układać.

Niektórym bardzo do gustu przypadają książki z serii
Head First
, moim zdaniem, idealne na początek.

Po tej pierwszej lekturze koniecznie przeczytaj czysty kod.

2. Chcę zarabiać dużo w IT, ale nie lubię programować, co jeszcze mogę robić?

W e-booku Praca przyszłości w branży IT opisuję 11 zawodów, na które warto zwrócić uwagę. W skrócie, dla osób, którym programowanie nie leży proponuję

  • Rolę testera, od manualnego do automatycznego
  • Scrum mastera
  • DevOpsa lub administratora
  • Project managera

Warto ogólnie przyjrzeć się obowiązkom, jakie pojawiają się w branży. Część z nich przenika się wzajemnie niezależnie od nazewnictwa stanowiska.

3. Czy lepiej iść w techniczną ścieżkę, a może zostać Team Leadem?

Przede wszystkim warto pamiętać, że im wyższe stanowisko, tym wiąże się z tym większa odpowiedzialność i decyzyjność.

Z punktu widzenia programisty, często wydaje się, że managerowie i liderzy niewiele robią i bardziej przeszkadzają niż pomagają 🙂

Wbrew pozorom dbanie o to, aby wszystko i wszyscy ze sobą współpracowali wymaga energii i dużej odporności psychicznej. Jako lider jesteś na celowniku cały czas. To do Ciebie kierowane są zarzuty, wymagania oraz obowiązki. Często lider musi podejmować decyzję nie mając pełnego obrazu sytuacji, ufając swoim współpracownikom i mając nadzieję, że podane przez nich terminy są w miarę realne.

Warto zapytać się samego siebie, czy dogaduję się z ludźmi? Czy umiem delegować? Czy wspieram innych i gram zespołowo?

Bycie Team Leadem to też spotkania, outlook, powerpoint i excell jako główne narzędzie pracy.

Przyszłościowo na pewno jest to ścieżka warta rozważenia, właściwe zarządzanie ludźmi i projektem ostatecznie przynosi więcej zysków (zwłaszcza, gdy zdecydujesz się na rozwój własnego biznesu).

Techniczna ścieżka wbrew pozorom bywa łatwiejsza i częściej pozwala spać po nocach. Zatem wszystko zależy od Twojej natury. Wiele osób próbuje wchodzić na wyższe stanowisko ze względu na prestiż i finanse, długoterminowo jednak takie podejście może się odbić na zdrowiu i skończyć wypaleniem zawodowym.

4. Już długo wysyłam CV, próbuję znaleźć pracę i nikt nie odpisuje. Czy jest jeszcze praca w IT?

Na początek warto pamiętać, że okresy rekrutacyjnie wyglądają rożnie w zależności od regionu. Nie należy patrzeć, kto w ile miesięcy znalazł pracę, ponieważ daje to bardzo nierzeczywisty obraz rynku.
Należy wiedzieć, że:

  • Część firm przenosi się do Polski i planuje zamknąć rekrutacją w ciągu danego okresu. To oznacza, że poszukiwani przez nich kandydaci są w stanie znaleźć pracę w ciągu paru tygodni, ale wystarczy miesiąc różnicy, aby wszystkie te stanowiska były obsadzone
  • Niektóre przedsiębiorstwa budżetują rekrutację, co kwartał lub pół roku. Pomimo otwartej rekrutacji, nowych pracowników zatrudnią dopiero, gdy będą znali budżet. Kilka miesięcy czekania w takiej sytuacji nawet przy wyższych stanowiskach nie jest niczym specjalnym.
  • Zapotrzebowanie różni się w zależności od technologii, niekiedy są to nawet różnice w używanym frameworku. Warto poszerzyć swój stos technologiczny, aby w pełni pokrywał wymagania.
  • Niektóre firmy rekrutują poprzez system poleceń albo zewnętrzne firmy. Należy zarówno uzupełniać linkedin jak również podpytywać znajomych. Nie wszystkie ogłoszenia lądują na portalach o pracę.

Mając to na uwadze, warto przemyśleć, czy zarówno CV jak i sam e-mail zostały skonstruowane prawidłowo. CV warto targetować punktując istotne z puntu widzenia rekrutacji umiejętności.

W trakcie procesu rekrutacji naprawdę dużą uwagę przykłada się do tego, czy ktoś ma konto z projektami na github.com albo portfolio. Warto linkować także do projektów zrobionych na studiach, albo niekomercyjnie, bez względu na to czy robiliśmy je sami czy też w grupie. Można zaznaczyć, za co odpowiadaliśmy.

5. Nie działa mi ten kod, dlaczego? Co jest nie tak z tym czymś?

Pytanie wbrew pozorom zadawane nie tylko przez juniorów 🙂

Gdy zapytamy delikwenta czy zajrzałeś do logów?, często słychać jedynie głuchą ciszę.

Na pewno rozwiązaniem nie jest próba wrzucania pytania, bez właściwego zaangażowania się w samodzielny proces rozwiązania problemu.

Zatem:

  • Czy umieściłeś kod/skrypt/program w edytorze i zweryfikowałeś czy nie ma błędów kompilacji, składni itp.?
  • Czy przejrzałeś logi błędów z programu, systemu (np journactl), serwera (np. apache, nginx)?
  • Czy zainstalowałeś niezbędne biblioteki, aktualizacje, oprogramowanie właściwe dla architektury systemu?
  • Czy zweryfikowałeś wpływ innych programów (firewall, antywirus)
  • Czy sprawdziłeś występujące kody błędów na Stack Overflow, oraz w Google dla wersji oprogramowania, jakie używasz?
  • Czy umieściłeś swój program w edytorze online, który pozwala na uruchomienie w taki sposób, że nie ma błędów niezwiązanych z Twoim pytaniem?

Do wszelkiej maści przypadków programistycznych polecam zadawać pytanie razem z kodem z fiddle lub dostępnych edytorów onlie (wydaje się, że istnieje praktycznie dla każdego języka), przykładowo:

Do izolacji oprogramowania i wpływu braków bibliotek warto przemyśleć Dockera.

6. Mam dwie oferty pracy do wyboru, którą wybrać? Większe pieniądze czy ciekawy projekt? Jak to teraz rozegrać?

W zależności od Twojego etapu rozwoju, a także priorytetów, odpowiedź będzie różna.

Osobiście początkującym osobom zawsze polecam, aby przede wszystkim wybierały ciekawy projekt, we wschodzących technologiach (ponownie odsyłam do Kariery w branży IT).

Doskonale rozumiem pokusę dużych pieniędzy, jednak planując długoterminowo, mamy znacznie lepsze pole manewru, a w późniejszym czasie, także zarobki.

Warto też bacznie zwracać uwagę, czy rekrutujemy się do Software House, czy też do firmy, która głównie zajmuje się outsorcingiem kadry. W tej pierwszej jest większa szansa, na zwracanie uwagi, na jakość wytwarzanego oprogramowania, podczas gdy w tej drugiej, nacisk jest głównie kładziony na wypracowane godziny.

Rozwój w firmie, która wytwarza własne oprogramowanie, też jest bardziej organiczny i mniej sztuczny niż w miejscach, w których „ścieżka kariery” jest po prostu hasłem w ogłoszeniach o pracę.

Osobom, które już początki mają za sobą, a także są odporne na zmiany i stres polecam przemyślenie większych finansów pod warunkiem, że potrafimy dobrze zarządzać budżetem. Niekiedy taka praca wiążę się z niewiadomą o przyszłość i możliwym ucięciem projektu w dowolnej chwili, zatem oszczędzanie jest tu kluczowe.

Jeżeli chcesz pracować za duże stawki i masz możliwość relokacji, proponuję przyjrzeć się ofertom ze Szwajcarii, Abu Dhabi oraz kontraktom w Londynie.

Gdy dostałeś konkurencyjną ofertę, po prostu przekaż tę informację do pierwszej firmy. Zawsze warto negocjować. Każdy rozsądny człowiek, rozumie, że większa oferta jest większa. Kiedyś przyjąłem ofertę o 11:50, a o godzinie 12:30 tego samego dnia zrezygnowałem.

Powiedziałem: ‚przepraszam, mam korzystniejszą ofertę, jeżeli Państwo mogą się do niej zbliżyć to oczywiście przemyślę’. Jak to mawiają No hard feelings, business is business.

7. Jakie słuchawki z wyciszeniem na open space?

Osobiście używam Sennheiser PCX 550 i jestem z nich bardzo zadowolony. Niektórzy są fanami Bose QC30 i też sobie chwalą.

8. Lepiej cały czas szukać pracy, czy dopiero wtedy, gdy chce się ją zmienić?

Polecam chodzić na rozmowy rekrutacyjne raz na jakiś czas. Dobrze jest weryfikować nie tylko swoją wiedzę, ale też umiejętności rozmowy oraz to jak postrzega nas ktoś obcy.

Dla jasności, nie zachęcam do tracenia czasu swojego i innych – warto sprawdzić firmy, o których coś słyszeliśmy, albo wydaje się, że mogłyby być dobrym dla nas miejscem. Ostatecznie warto zakładać, że taka rozmowa pójdzie dobrze.

Chodząc na rozmowy bez ciśnienia na „zmianę pracy”, będziesz bardziej na luzie. Sam zadasz więcej pytań i raczej spojrzysz na firmę, jako kulturę pracy i wytwarzania produktu, niż tylko miejsce, które da parę złotych więcej.

Z drugiej strony, jeżeli jesteś zadowolony z miejsca, w którym jesteś, to tego typu aktywność, może Cię nieco wytrącić z naturalnego rytmu pracy. Warto wyczuć moment, kiedy albo już męczysz się w projekcie, albo widzisz pierwsze oznaki niekorzystnych zmian w swojej pracy.

W przeciwnym wypadku, po prostu pracuj dobrze i nie przejmuj się, że ktoś gdzieś zarabia więcej.

9. Jaki język aktualnie najlepszy do nauki pod kątem przyszłości?

Szczegółowo odpowiadam na to pytanie w e-booku Praca przyszłości w branży IT. Krótkie podsumowanie tej odpowiedzi brzmi:

Bez względu na to, co wybierzesz, ostatecznie ważne będzie jak mocno i dobrze zgłębisz temat całego procesu wytwarzania oprogramowania – wtedy nawet, jeżeli ilość ofert na dany stos technologiczny się zmieni, dosyć łatwo zmienisz pracę.

Dodaj komentarz

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