Myślisz o przebranżowieniu na zawód programisty? Warto to wiedzieć!

Odpowiedz Nowy wątek
2019-01-12 13:26
Tig
35

A więc masz X lat, zajmujesz się w życiu Y, mieszkasz w Z.
Myślisz o zmianie zawodu na zawód programisty.
Tematy o podobnej treści pojawiają się wielokrotnie, a jakość odpowiedzi jest niska, spowodowana znużeniem Odpowiadających.

Post ma na celu przedstawienie pewnych kwestii, które powinny rozważyć osoby rozważające przebranżowienie.
Zasady tutaj opisane są spełnione w znakomitej większości przypadków, ale wiadomo, że w życiu od każdej takiej zasady są wyjątki. Wyjątki te są nieliczne.
Uwaga: W celu uniknięcia powtarzania się, będę nazywać "początkującymi programistami" osoby kandydujące na poziom entry-level (staż) oraz junior (programista z małym doświadczeniem).
Będę też używał pojęć "mid" - programista na średnim poziomie doświadczenia, "senior" - programista na wysokim poziomie doświadczenia.

Dla leniwych -- podsumowanie (tzw. TL;DR;) znajduje się na końcu.

Biorąc pod uwagę przebranżowienie, musisz wziąć pod uwagę co najmniej poniższe tematy:

I. Profil osoby, która będzie konkurować z Tobą o pracę

Na stanowisko programisty początkującego będzie kilkanaście-kilkadziesiąt osób chętnych.
W celu pokonania konkurencji musisz się zaprezentować jako najlepsza z tych osób, tzn. każda jedna osoba z tej grupy musi być mniej atrakcyjna dla pracodawcy.

Typowych konkurentów, których musisz POKONAĆ(mowa tylko o takich!) można podzielić na 2 grupy:

student lub absolwent

  1. ma ponadprzeciętne obycie z komputerami -- wie co to folder, jak szybko skasować linijkę w edytorze, umie odpalić terminal i wykonać komendy, zna skróty Ctrl+X/C/V itd. itp.
  2. uczył się matematyki rozszerzonej na poziomie licealnym -- na maturze rozwiązywał problemy podając dane(input), algorytm rozwiązania złożony z kilku mniejszych algorytmów, wynik(output)
  3. ukończył/kończy studia na kierunku informatyka -- w trakcie studiów odbył co najmniej kilkadziesiąt (szacunek dla studiów magisterskich: 20-25 przedmiotów) związanych z językami programowania i technologiami pokrewnymi, na każdym z tych przedmiotów musiał napisać na zaliczenie średnio 3 "większe" programy lub 30 malutkich, o przedmiotach związanych z teorią informatyki nawet nie wspominając
  4. w trakcie studiów rozwiązywał na własną rękę problemy programistyczne - pracował na część etatu i/lub pracował na cały etat w wakacje i/lub robił własne projekty

Zróbmy więc szacunek tego, co taki student minimum wykonał:
10 przedmiotów x3 programy zaliczeniowe "większe" == 30 programów x 20h każdy == 600h
10 przedmiotów x30 programy małe == 300 programów x 2h każdy == 600h
praca własna, niekoniecznie komercyjna == powiedzmy 4x przerwa wakacyjna 2 miesiące x 168h == 1344h
matematyka - doskonalenie umiejętności myślenia(no dobra, raczej wkuwania), algorytmów dyskretnych i grafowych, metod numerycznych itd == powiedzmy 25 przedmiotów x 4h == 1500h (tylko wykłady i ćwiczenia/laboratoria!)

Podsumowując szacunek dobrego, ale nie wybitnego, absolwenta studiów magisterskich, który będzie konkurował z Tobą o miejsce pracy:

  • ugruntowana wiedza z matematyki oraz informatyki licealnej
  • 2500 godzin poświęcone na programowanie i technologie pokrewne
  • 1500 godzin poświęcone na matematykę/teorię informatyki -- wiele z nich może być czasem straconym, tym niemniej część stanowi rzeczy przydatne w życiu typowego mida

samouk

  1. ma ponadprzeciętne obycie z komputerami -- jak wyżej; zna dobrze język angielski -- na tyle dobrze aby wyszukać i zrozumieć informacje w Internecie
  2. ma silną motywację do nauczenia się "rozmowy z komputerami" -- czego dowiódł, poświęcając ogromną ilość czasu implementując samodzielnie nietrywialne rozwiązania informatyczne, które działają, mają ręcę i nogi przynajmniej na poziomie użytkowym, które można zobaczyć, porównać z konkurencyjnymi rozwiązaniami
  3. może mieć niekiedy mniejszy zakres poznanych technologii lub wręcz nie znać pewnych podstaw matematycznych, ale na pewno coś nietrywialnego potrafi w swojej dziedzinie
  4. potrafi rozwiązać problem programistyczny z szerokiej gamy problemów, potrafi wyszukać i zaadaptować jakieś rozwiązanie, potrafi już przewidzieć pewne konsekwencje swoich rozwiązań -- z tym wszystkim spotkał się w pracy własnej, ze szczególnym naciskiem na umiejętność zidentyfikowania problemu, wyszukania rozwiązania, adaptacji do swoich potrzeb

Podsumowując szacunek samouka na poziomie pozwalającym konkurować z Tobą o miejsce pracy:

  • ukończony lub działający co najmniej jeden samodzielnie stworzony spory projekt programistyczny, po którym widać, że autor ma spore doświadczenie w programowaniu, i umie rozwiązać wiele różnych problemów
  • średnio 4h/dzień programowania x 365 dni x 2 lata == 2920 godzin, oczywiście można przyjąć tu wartości dowolne, zależne m.in. od tego, czy konkuruje o stanowisko entry-level czy już junior

II. Przydatność osób początkujących dla pracodawcy

Osoba początkująca ma za zadanie rozwiązać stosunkowo proste problemy.
Dostając zadanie rozwiązania prostego problemu, typowe problemy z którymi może się zmagać osoba początkująca:

  • niezdolność do zidentyfikowania miejsca wystąpienia problemu (w kodzie)
  • niezdolność do zrozumienia, co już istniejący kod robi i dlaczego, w konsekwencji niezdolność do zaproponowania zmiany
  • konieczność przedstawienia (swoim językiem, czyli często w sposób nieprecyzyjny, zaciemniający) napotkanego problemu midowi/seniorowi, który potem mid/senior i tak musi rozwiązać
  • niezdolność do wyjścia z własnych błędów, w konsekwencji prośby o pomoc do midów/seniorów o pomoc z błędami, które to błędy każdy mid natychmiast naprawi, albo nigdy nie popełni

Czyli mamy dwa ogólne przypadki:
a) samodzielna osoba początkująca, typowo rozwiązująca problemy w dużej mierze samodzielnie, ale bardzo wolno lub wolno,
ale po której rozwiązania bez sprawdzenia nikt rozsądny nie puści na produkcję; w wyniku sprawdzenia typowo wychodzą kwestie przypadków pesymistycznych ("nieoczekiwane" sytuacje chwilowej awarii, "niegrzeczni" użytkownicy proszący o dane innych użytkowników, itp.)
b) niesamodzielna osoba początkująca, która więcej zabiera czas osobom realnie pracującym, niż przynosi wartości

Czyli mamy:
a) zysk dla pracodawcy w okolicach zera -- te 10% czasu zabranego midom/seniorom bilansuje się na niewielki plus z pozostałym czasem (90% pracy własnej, którą mid zrobi 3x szybciej, powoduje że wychodzi
90% czasu przepracowanego x 0,33 wydajności - 10% == 30% - 10% == zysk 20% wydajności mida dla pracodawcy
b) zysk dla pracodawcy ujemny -- te 30% czasu zabranego midom bilansuje się na minus z pracą własną (analogicznie 70% czasu przepracowanego x 0,33 wydajności - 30% == STRATA 7% wydajności mida dla pracodawcy)

Podsumowując, jeżeli osoba "a" zarabia więcej niż 20% zarobków mida, to już jest niesprawiedliwie wysoko wynagradzana, jeżeli osoba "b" zarabia cokolwiek zamiast dopłacać, to już jest niesprawiedliwe wysoko wynagradzana.
To powoduje niską chęć pracodawców do zatrudniania osób początkujących, a wysoką do zatrudniania osób mid/senior.
Jeżeli pracodawcy w ogóle mają chęć zatrudniania początkujących, to najczęściej w nadziei, że taka osoba zostanie w firmie i zwróci się w perspektywie czasu.

III. Znajomość technologii a praca programisty

Część osób rozważających przebranżowienie może mieć przekonanie, że znajomość składni języka programowania lub w ogólności znajomość technologii jest jednym z najważniejszych warunków do pracy programisty.
Jest to pogląd równie uzasadniony, jak taki, że umiejętność napisania "Ala ma kota" umożliwia pisanie książek, które się sprzedają w milionowych nakładach. Przecież książka to tylko wielkich rozmiarów ciąg zdań, prawda?

Tymczasem istotna jest umiejętność zastosowania języka programowania, innych technologii, do rozwiązania realnego problemu w czasie akceptowalnym przez pracodawcę, z zachowaniem pewnych zasad co do wydajności; integralności oraz bezpieczeństwa danych; odporności rozwiązania na zmiany, i jeszcze wielu innych podobnych czynników.

Wracając do przykładu z książką, naprawdę nie jest rzeczą trudną nauczyć się pisać zdania. Nie jest łatwo nauczyć się pisać książki, na których można zarobić.
Na wszelki wypadek podam analogię.
Nie jest rzeczą trudną opanować język programowania czy technologie pokrewne. Nie jest łatwo nauczyć się tworzyć oprogramowanie, które ma ręce i nogi.

(IV. do 2^64 - 1 -- zarezerwowane na potem, jeżeli mi się coś przypomni)

PODSUMOWANIE

I. Konkurujesz lub rozważasz konkurowanie na stanowisko początkującego programisty z osobami, które poświęciły typowo kilka tysięcy godzin na programowanie, i potrafią samodzielnie rozwiąząć albo szeroką gamę problemów, albo są doskonali w jednej dziedzinie. Mowa o bezpośrednich konkurentach -- najlepszych z aplikujących na to stanowisko, a nie średnich, nie słabych.

II. Przydatność początkującego programisty dla pracodawcy jest niska albo bardzo niska, o wiele niższa niż przeciętna osoba początkująca sobie wyobraża. Liczba ofert pracy i płace to odzwierciedlają, przy czym pozornie niskie płace początkujących programistów, są lepsze niż się wydaje.

III. Nauczenie się "na 95%" języka programowania i technologii pokrewnych do warunek konieczny do pracy programisty, ale nie warunek dostateczny. Trzeba też wiedzieć, jak w praktyce się stosuje ten język programowania, aby rozwiązać praktyczne, realne problemy, i do tego potrzeba doświadczenia w tworzeniu oprogramowania. Sporo doświadczenia.

edytowany 2x, ostatnio: Tig, 2019-01-12 13:33

Pozostało 580 znaków

2019-03-23 09:47
5

Sam zostalem devem w wieku 34 lat, no ale wtedy nie czytalem tego forum i nie wiedzialem ze jestem za stary i ze nie powinienem bo i tak sie nie dostane. Mam wyzsze informatyczne i przez wiele lat bylem adminem, finansowo po zmianie branzy tez duzo nie stracilem bo nie wiedzialem ze powinienem zadac max 2k netto :)

Dokladnie, takie geganie na tym forum robi duzo zlej roboty - renderme 2019-03-23 10:02
to jest najbardziej rakogenny dział - BluzaWczolg 2019-03-23 11:45
Ludzie tez sobie czesto dorabiaja teorie do znalezienia pracy, ze jak sie nikt do nich nie odezwal, to znaczy, ze za duzo wymagaja $, za malo umieja. Firmy czesto robia rekrutacje i nikogo nie zatrudniaja, bo zlecenie ostatecznie nie wejdzie lub wejdzie mocno okrojone. - renderme 2019-03-23 11:49
@bind3v: No i super! Ja zostałem juniorem jak miałem 32 lata ;-) Też mam wyższe informatyczne, a po studiach zajmowałem się systemami ERP. Postanowiłem coś zmienić, bo ta praca zaczęła mnie męczyć. Robiłem czasem jakieś landing page i doszedłem do wniosku, że chcę robić web :-) Poszedłem na bootcamp (ale teraz grubo poleciałem, co?), bo samemu nie chciało mi się uczyć. Tydzień po bootcampie zacząłem staż w Software housie, gdzie po 3 miesiącach nie zaproponowali mi pracy :-) Poszedłem do innej, większej firmy, trochę czasu minęło i myślę, że do końca roku będę już midem :-) - juniorJS 2019-03-23 14:19

Pozostało 580 znaków

2019-03-28 20:53
2

Jak to wszystko przeczytałem to muszę napisać swoją historię. Zaczęło się ponad 10 lat temu gdy nie wiedziałem jakie studia wybrac, z racji tego że skończyłem liceum o profilu zarządzanie informacją a pierwszego pc dostałem na komunię ( Pentium MMX ) oraz moja przyszła żona powiedziała że cały dzień 'siedze' na komputerze zacząłem studia informatyczne. Tak mnie matematyka na pierwszym roku zrównała z błotem że brałem korepetycje. Na same studia zarabiałem jako pracownik budowlany - pomocnik cieśli. W weekendy studia, matematyka po ciężkiej bo w sezonie 12h pracy... Nieważne... Wkurwienie na to wszystko spowodowało że postanowiłem robić to co lubię czyli ' siedzieć na kompiterze'!
Nie będę się rozpisywał...
Studia skończone.
Na piątym semestrze mieliśmy 2 miesiące praktyk.
Cześć oczywiście 'zalatwila' sobie papier, a ja nadal chciałem robić to co lubię 'siedziec na komputerze'.
Dzięki pracy po 12h na budowie odłożyłem kilka tys. zł.
Na praktyki zgłosiłem się po przeczytaniu książki 40stron(grubsze mnie zniechęcają) HTML,CSS - podstawy. 2miesiace pracy za 0zl. Miałem odłożone to mogłem sobie pozwolić na 'siedzenie na kompie'. Po 1 tygodniu 8h pracy oczy piekły jak bym spawał na spawarce ;) po dwóch miesiącach umiałem więcej niż przez 2,5roku studiów! A matematyka nie była potrzebna!!!
W tej samej firmie do końca studiów zarabiałem:
1.6tys 2.2tys. po studiach dostałem UoP 2.4tys.
Inne czasy bo wtedy minimalna wynosiła 1.2tys.
Po 3 latach od skończenia studiów postanowiłem opuścić 'matke' dostałem 2,7zl. Po 3 miesiącach w następnej firmie dostaje 3,2tys. Po roku 3.5tys. cały czas UoP. Doświadczenia mam około 5lat.
Dostaje ofertę w giga korporacji 4,2tys.
Następnie po pół roku ładuje na bruku.
Miesiąc bez pracy ale znajduje coś dla siebie za te same pieniądze (3tys UoP 1,2tys premia). Po dwóch latach mam mieć gdzieś indziej złote góry zmieniając formę zatrudnienia na JDG (na czysto miało być 7.2tys - bez urlopów). Czar prysnął bo zmienił się rząd... Czasy inne... Inni dyrektorzy itp. nie moja bajka. 1 miesiąc na lodzie i mam upragnione 7tys bez urlopów na czysto. Na czysto dla mnie to po odliczeniu zusu podatków i księgowego. I tak przez 2 lata bo jak zwiększył się ZUS to poszedłem po podwyżkę. Po ponad dwóch latach dział się sypie i nie ładuje na bruku ale zarabiam 5,5tys bez urlopu mając 100% zdalna pracę! Po pół roku czyli dziś mam dwie zdalne pracę które w sumie na czysto dają mi 12tys zł. Pracuję po 14h dziennie i to jest mój wybór. Nie płaczę! Od zawsze chciałem 'siedziec na komputerze'! Nie jest to praca dla każdego... Jak bym umiał angielski C1 to bym zgarniał X2 ale nie mam głowy do niego. JEŚLI LUBISZ 'SIEDZIEC NA KOMPUTERZE' - RÓB TO. Ps poprzez wszystkie lata kariery zrobilem dodatkowo poza pracą sporo projektów mnie lub bardziej udanych w większości płatnych. Nie pamiętam dnia żebym pracował 8h jak inni... PS2 mam rodzinę, żonę, dziecko oraz własny dom za gotówkę :p lata pracy i można wszystko ale nie na raz! Po woli mała łyżka...
PS4
Jako pomocnik cieśli 2 lata exp. około 10lat temu z zarobkami 3tys (około 11h dziennie) w czasach milimalnej 1.2tys

edytowany 1x, ostatnio: misiu_m, 2019-03-28 21:05
Czyli mówisz ze lepiej być cieślą jednak? ;) - Shalom 2019-03-28 22:14
Lepiej dążyć do robienia tego co się chce za wszelką cenę mimo, że nie zawsze to łatwe :) zawsze chciałem mieć pracę związaną z IT i mimo że w innej zarabiałem znacznie więcej podjąłem się pracy za free. Powodzenia wszystkim! - misiu_m 2019-03-29 05:55
Pracując po 14h dziennie długo nie pociągniesz :-) - drorat1 2019-03-29 06:26
Zamierzam tylko do końca roku :) - misiu_m 2019-03-29 19:52

Pozostało 580 znaków

2019-03-29 05:53
0

Lepiej dążyć do robienia tego co się chce za wszelką cenę mimo, że nie zawsze to łatwe :) zawsze chciałem mieć pracę związaną z IT i mimo że w innej zarabiałem znacznie więcej podjąłem się pracy za free. Powodzenia wszystkim!

Masz Ty godność? - FeluśWafeluś 2019-03-29 08:16
Jak tylko masz taką możliwość, to chyba fajnie... Gorzej jak trzeba płacić za swoje rachunki, bo np. nie ma miejsca u rodziców. - CzarnaKlacz 2019-03-29 09:55

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

2 użytkowników online, w tym zalogowanych: 0, gości: 2, botów: 0