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

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

Rejestracja: 1 rok temu

Ostatnio: 1 miesiąc temu

45

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

2020-05-12 15:34

Rejestracja: 2 lata temu

Ostatnio: 1 minuta temu

3

Duża liczba kandydatów wynika z tego jak postrzega się pracę programistów w opinii publicznej, mediach - granie na konsoli i bezstresowe 15k po miesięcznym bootcampie. Dlaczego najwięcej Web Devów? Podobno najmniejszy próg wejścia. To tylko pokazuje nastawienie większości - jak najszybciej, jak naprościej, jak najmniejszym nakładem pracy - nie tędy droga. Na pewno nie wynika to z jakiegokolwiek kursu na jakiejkolwiek platformie.

Pozostało 580 znaków

2020-05-12 17:01

Rejestracja: 1 rok temu

Ostatnio: 3 godziny temu

0
Terrored napisał(a):

Dlaczego najwięcej Web Devów?

A jaka jest właściwie alternatywa? Jakie są inne warianty:
GameDev - próg wejścia x2, zarobki /2.
MobileDev - ciekawy wariant. Zarobki wydają się być wysokie, ale nie bardzo wysokie. Jaki próg wejścia? Jak chodzi o liczbe chetnych, to jest ich mniej, a jak chodzi o technologie, to wydaje mi sie, ze jest trudniej.
Embedded - dziwna nisza, technicznie wysoki prog wejscia.
Devops - jeszcze wyzszy prog wejscia
Tester - po co to komu?

Pokaż pozostałe 11 komentarzy
@renderme: To w czym robisz nie ma znaczenia. Znaczenie ma głębokość kieszeni firmy i jak bardzo krytyczny jesteś dla jej funkcjonowania. To plus dodatkowo jaką ofermą jesteś przy negocjacjach. To drugie chyba nawet bardziej. - loza_wykletych 2020-05-19 09:49
@renderme: Zawsze super płatne pewnie nie jest - ale to zależy od skali przedsięwzięcia. Większość firm w Polsce w ogóle takich rzeczy nie robi - tj. nikt raczej nie pisze silnika baz danych czy systemu obliczeń rozproszonych tylko po prostu kupują gotowy. Ale po drugiej stronie jest ktoś kto te silniki robi, i choć może zapotrzebowanie jest mniejsze w sensie liczby programistów, to zarobki mogą być naprawdę ładne. - Krolik 2020-05-19 13:54
@Krolik: To tak nie działa. Zarobki są wynikiem popytu i podaży. Projekty webowe, backend, mobile, etc. łatwiej outsourcować. Więcej projektów na rynku, większe ssanie pracodawców, większe zarobki. Na LI widziałem oferty pracy nad silnikami baz danych (np Oracle szukał ludzi do MySQL, chyba do replikacji), Gemius ma(miał?) własną implementację BigTable, nieskpowiomowe programowanie sieciowe (np z DPDK), SDN, praca na kompilatorami (głównie llvm), embedded linux, filesystem (np lizardFS), do tego typowe automotive, set-top-boxy, embedded. Kasa nie jest x2-x5 jak piszesz. - nalik 2020-07-23 12:20
Tylko że ludzi na takie stanowiska nie szuka się przez ogłoszenia kierowane do wszystkich. Spróbuj odkupić architekta np. z takiego Oracle - nie zrobisz tego za stawki z ogłoszeń. My chcieliśmy kiedyś zatrudnić Kyle'a Kingsbury (tego od jepsen, nie tego od MMA), to zażyczył sobie stawkę 10x taka jak mają nasi seniorzy. - Krolik 2020-07-23 14:18
Przez widziałem ogłoszenia, miałem na myśli dostawałem ogłoszenia. Ale ja nie jestem gwiazdą, tylko wyrobnikiem ;). - nalik 2020-07-23 15:18

Pozostało 580 znaków

2020-05-12 17:04

Rejestracja: 1 rok temu

Ostatnio: 1 minuta temu

Lokalizacja: Silesia

3
renderme napisał(a):
Terrored napisał(a):

Dlaczego najwięcej Web Devów?

A jaka jest właściwie alternatywa? Jakie są inne warianty:
GameDev - próg wejścia x2, zarobki /2.
MobileDev - ciekawy wariant. Zarobki wydają się być wysokie, ale nie bardzo wysokie. Jaki próg wejścia? Jak chodzi o liczbe chetnych, to jest ich mniej, a jak chodzi o technologie, to wydaje mi sie, ze jest trudniej.
Embedded - dziwna nisza, technicznie wysoki prog wejscia.
Devops - jeszcze wyzszy prog wejscia
Tester - po co to komu?

Są jeszcze programiści backendu którzy nie dotykają w ogóle przeglądarki a tylko wystawiają resty lub w starszych wersjach soapy. Oraz oczywiście developerzy aplikacji desktopowych


Desktop to już chyba utrzymanie tylko starych enterprajsowych kobył. Ale nawet to już chyba długo nie pociągnie. Nie mówię tu o aplikacjach specjalistycznych ale ten rynek to już dawno podzielony. - loza_wykletych 2020-05-12 17:08
Programiści backendu zostali przeze mnie zakwalifikowani jako webdev, bo w końcu robią API dostępne w sieci internet lub ewentualnie w sieci lokalnej, w kazdym razie w sieci (web :D). O standalone nie pomyślałem. Co ciekawe sporo aplikacji standalone zrobiłem, ale w tych czasach 3/4 rzeczy jest robione w elektronie (wiec to w sumie chyba WebDev?), a praca w WPF to banał dla kogoś kto zna środowisko .net. - renderme 2020-05-12 20:41
Powiedz to programistom od VSCode, IntelliJ, PS, LR albo wszelkich CADów ;) Desktop ma się dobrze. Po prostu wymiotło jedynie głupie i proste aplikacje które dało się zastąpić webowymi, natomiast te rozbudowane istnieją nadal. Inna rzecz, że aplikacje webowe na ogól mają znacznie gorszą ergonomię. Jak widziałem ostatnio jak lekarz w przychodni wklepywał zalecenia do interfejsu webowego i czekał aż się przeładuje strona, to żal było patrzeć. No, ale taka teraz moda. - Krolik 2020-05-19 13:56
@Krolik: Ale to są aplikacje specjalistyczne. I jaka jest konkurencja na tym rynku? Wszędzie masz jakiś standard przemysłowy którego wszyscy się trzymają. Weź np. nawet takie głupie OpenCL, otwartość, uniwersalność. A w życiu? CUDA, CUDA. - loza_wykletych 2020-05-19 14:03

Pozostało 580 znaków

2020-05-12 17:25

Rejestracja: 5 lat temu

Ostatnio: 1 godzina temu

Lokalizacja: Piwnica

0
renderme napisał(a):

GameDev - próg wejścia x2, zarobki /2.

Tylko w polsze, tutaj mało co się opłaca, przy odpowiednim targecie lub firmie można wyszarpać niezły hajs niewielkim nakładem.


Ale trzeba należeć do partii! - loza_wykletych 2020-05-12 18:01
superpartii - PinkLion 2020-06-10 16:09
To nie jest prawda. Gamedev jest wszedzie nizej platny i mniej oplacalny - renderme 2020-07-23 14:18

Pozostało 580 znaków

2020-06-09 13:38

Rejestracja: 3 lata temu

Ostatnio: 1 tydzień temu

Lokalizacja: WPR

1

Jeśli ciągłe pisanie pętli, warunków i wyobrażanie sobie przepływu danych to coś co musi wchodzić do głowy to jednak w jednym miałem rację - programiści z pasją to ludzie upośledzeni psychicznie (w jakimś stopniu).

pętelki to pikuś, problem to frameworki i nowe języki i metodologie

To nie dość że upośledzeni to jeszcze w większości fani BDSM. - loza_wykletych 2020-06-09 13:55

Pozostało 580 znaków

2020-07-08 10:39

Rejestracja: 1 miesiąc temu

Ostatnio: 5 dni temu

Lokalizacja: Kraków

0

Witam wszystkich bo to mój pierwszy post tutaj i trochę się dygam po przeczytaniu tego wątku czy nie zostane zbesztany za głupie pytania :) Od jakiegoś miesiąca aktywnie poszukuje informacji o przebranżowieniu na front-end. Wiem, że to nie kaszka z mleczkiem, że czeka mnie dużo pracy samodzielnej, poświęcenia i zajmie to nawet lata zanim zacznę coś sobą reprezentować, ale zawsze chciałem pracować w IT i po zrobieniu swojej pierwszej bieda strony w HTML/CSS czuje że to mnie kręci, a od czegoś trzeba zacząć. Na początku myślałem o Bootcampie ale kilku wątkach na tym forum widzę, że to niewspółmierny koszt do korzyści. Z pracą samodzielną mogę mieć taki problem, że ostatni raz styczność z zakuwaniem miałem z 5 lat temu gdy kończyłem studia i choć lubię się uczyć to może być ciężko wrócić na tory ciągłej nauki bez wiszącego nad głową bata. Dlatego zastanawiam się nad zewnętrznym motywatorem w postaci podyplomówki albo właśnie bootcampu. Pierwsze bo tańsze i będzie szasna poznać na zjazdach ludzi z którymi może uda się tworzyć jakieś wspólne projekty, odwiedzać meetupy ogólnie plus związany z nowymi znajomościami. W Krakowie gdzie mógłbym studiować znalazłem coś takiego: [https://podyplomowe.ka.edu.pl[...]oczesnych-aplikacji-webowych/] Ci co sie znajo - wiem, że KA to dawne KSW czyli Kup Sobie Wykształcenie, ale nie chce traktować też tego jako bilet do pierwszej pracy, ale jedynie ten przysłowiowy bat, o którym mówiłem czyli motywacja do nauki i z czasem powrót do swego rodzaju tryby życia gdzie ta nauka to jego część, a nie dodatek. Plus możliwość poznania ludzi z pasją podobnych do mnie. Oczywiście przez ten rok trwania będę sam poszerzał swoją wiedzę, dziergał projekty i uczył materiałów extra ile wlezie, ale czuje, że przynajmniej na początku tej drogi przebranżowienia muszę mieć jakiegoś zewnętrznego kopa. Mógłbym co prawda pouczyć się z treehouse, codecademy czy pluralsight i za rok startować na taką podyplomówkę, ale czy wtedy nie będę tam przerabiał podstaw od nowa? Minus jest taki, że po programie prezentuje się to jak bieda bootcamp ze 160 godzinami i tu pojawia się pytanie czy właściwie nie lepiej wydać te 3x więcej na bootcamp ale otrzymać wzamian ok 700 godzin? Też zdaje sobie sprawę, że to jedynie początek, że będę musiał pracować sam nad osiągnięciem tego bieda juniora, ale taki bootcamp to też dla mnie byłby ten bat który wprowadziłby mnie na właściwe tory, a po zakończeniu mógłbym dalej nad sobą pracować i może za jakiś rok, dwa mógłbym spróbować gdzieś wysłać CV. Byłbym wdzięczny za delikatne zrównanie z glebą :) i może jakąś radę jak zacząć? Mogę jedynie dodać, że z aktualną pracą i dwumiesięczną córeczką mogę wysupłać góra 2 godziny dziennie w tygodniu i z 5-6 w weekendy wolne od ewentualnych zjazdów dlatego nastawiam się na długoletni proces przebranżowienia.

Pokaż pozostałe 38 komentarzy
@BraVolt: myślę, że już wszyscy znają twoje zdanie na temat bootcampów, ale ja nie powiedziałem, że się na taki wybieram. Po prostu lubię zrobić dobry research i poznać wszystkie opcje zanim się na którąś zdecyduję. @MarioMJR dzięki za link, wygląda zachęcająco. Zdecyduje się na wersję podstawową i za jakiś miesiąc zdecyduje czy brnać dalej czy jednak walczyć na froncie [taki suchar :p] A propos, @MarioMJR znasz może podobne kursy na full-stack tudzież JS? - NOone_86 2020-07-12 10:49
Powtórzę: pluralsight.com tam za 30 $ miesięcznie masz dostęp do wszystkich kursów, ja sam robiłem ścieżkę C# i ASP.NET Core ale też JS i zachaczyłem o ścieżkę Angular i dlatego go tak polecam. A te ścieżki to co prawda jest np. 30 godzin albo 50 ale jak będziesz od podstaw przerabiał te ścieżki to musisz mnożyć długość danego kursu razy kilka, czyli np. z 30 h zrobi się 90 lub 150 h twojej pracy z tego względu że na tych kursach jest wszystko skondensowane mocno. - MarioMJR 2020-07-12 10:55
Dzięki wszystkim za pomoc i dobre słowo. Od tygodnia brnę w kurs Javy i na razie chcę więcej :) Zanim jednak zdecyduję czy pójść w back-end chciałem zapytać o kolejną rzecz. Po wypowiedziach na forum widzę, że przebić się na front-end może być [bardzo] trudno choć to prostsza droga pod względem przystępności języka/ów. A czy w przypadku Javy też jest taki przesyt juniorami? Ciężko przewidzieć sytuację za 2-3 lata ale jak to wygląda dziś w stosunku do frontu? Czy na rynku korpo [u mnie Kraków] na Java juniora studia info/pokrewne są "nieoficjalnie" faworyzowane/wymagane? - NOone_86 2020-07-16 12:11
W Javie najwięcej kandydatów ,ale też najwięcej pracy. Przy takiej ilości kandydatów lepiej mieć studia lub być studentem niż nie mieć. - kochansky 2020-07-17 13:37
A jeszcze lepiej miec 10kk$ helikopter i zmac 40 jezykow. - renderme 2020-07-17 14:55

Pozostało 580 znaków

2020-07-16 12:49

Rejestracja: 2 lata temu

Ostatnio: 2 tygodnie temu

1

@NOone_86: Ja sam jestem po "przebranżowieniu się" aczkolwiek covid "pomógł mi" w przerwaniu mojego entry level programu, obecnie poszukuję pracy do rzeczy:
Rok temu jak na wiosnę zacząłem poszukiwać pracy (rozpocząłem naukę na jesieni dwa lata temu) i zauważyłem że absolutnie NIKT nie odpowiadał na moje CV ws praktyk czy Juniora. Obecnie na te stanowiska jest po 100 osób na jedno miejsce i to się tyczy całego świata, bowiem rynek IT jest w zasadzie jeden a krajów wiele, i z tąd takie wypłaty. A jak już zostałem zaproszony do Allegro Tech (jedyna firma u której byłem na rozmowie o Junior Java Dev) w związku z udziałem w Braincode 2019 to zadano mi konkretne pytania odn. szczegółów języka i zostałem zwyczajnie zagięty, to były kwestie takie do wykucia na blachę po prostu bo bez tego to wejdą w głowę chyba że dopiero po wykonaniu np. dziesięciu projektów.
Wynikiem czego na te praktyki czy juniorstwo dopuszczani do stworzenia zadania rekrutacyjnego są tylko dwie grupy ludzi: 1) absolwenci Infy 2) osoby z doświadczeniem zawodowym i referencjami (takie jak ja) LUB takie które się pokazały na hackatonie (a nwm gdzie teraz będą hackatony przez te pie**ą pandemię).
Ja sam otrzymałem pracę jako że podejmowałem się stażu na Junior Tester Manualnego ale zauważono że w sumie to testów w firmie nie ma, i pokazałem że lubię grzebać w problemach, w javie cośtam kodowałem wcześniej, to czemu by pluralsighta nie zafundować? Obydwie strony zadowolone, firma dostała testy, ja dostałem wpis w CV i małe wynagrodzenie za ten okres ~9 miesięcy.
Ale to było rok temu.
Ostatnio jak brałem udział w rekrutacji do pewnej firmy z UK (so premium...) to po moim wykonaniu zadania rekrutacyjnego wypunktowano błędy ale doceniono inne podejście do problemu od reszty. Efektem czego odpadłem dopiero na rozmowie podczas której testowano umiejętność programowania gdy rekrutujący patrzy się na kod w trakcie gdy ja go pisałem i komentował go na bieżąco + w ogóle nie miałem chwili na zastanowienie się nad rozwiązaniem problemu, prawdopodobnie to przez stres, jestem dosyć podatny na to jak ktoś mi się patrzy na to co robię, ale chcę pokazać jak windują do góry wymagania dot młodszego programisty. I nie był to janusz soft tylko raczej fajna firma działająca w BlockChain'ie gdzie ludzie pchają się do zdalnej pracy ręcamy nogamy dżwiamy i okjenamy.
W takim kierunku teraz podąża rynek IT. Kreatywne podejście do rozwiązywania problemów powoli idzie do lamusa na poczet spełnienia dodatkowych wymagań których wypełniania nie nauczysz się na javastart.pl ani na pluralsight ani nigdzie indziej, nawet jakbyś recytował dokumentację Javy czy .NET z pamięci.

Teraz to jakbym miał zaczynać od 0 to bym po prostu poszedł na studia, np. eksternistyczne i do jakiejś pracy typu ochroniarz biurowca czy coś gdzie przez 75% czasu nic nie robisz więc możesz się uczyć, a studia np. eksternistyczne (patrz: PJWSTK Warszawa) możesz robić gdzie chcesz i kiedy chcesz, programowania też nauczą i to nawet lepiej bo wymuszą na Tobie żebyś wbił sobie do głowy design patterns i inne szczegóły których nauczenie się samemu z pozycji kompletnie zielonego człowieka to katorga i wydaje się nie potrzebna,
a tak masz sobie wbić do głowy, bo jak nie to pała i powtórka roku. So delighted.
Po drugie tacy ludzie będą traktowani na rekrutacjach na poważnie; będziesz zapraszany na rozmowy kwalifikacyjne i będziesz dostawał feedback, a jako samouk czy absolwent codeschoola jakiegoś to wtrącisz się w tłum pospólstwa w oczach rekruterek, i stawią Cię na równym poziome z ich instagramowymi adoratorami z Indii.
A to one będą wstępnie weryfikować CV, a nie senior dev.
Oceniałem subiektywnie tę sytuację na podstawie własnych doświadczeń i obserwacji obecnej sytuacji na rynku więc może odbiegać delikatnie od rzeczywistości, nie przeczę.
Zrobisz jak uważasz.

A zdajesz sobie sprawę, że zdarzają się absolwenci na tragicznie niskim poziomie? - renderme 2020-07-16 14:55
Allegro Tech miał akurat jeden z lepszych procesów rekrutacyjnych. Na pewno nie powiedziałbym, żeby u nich trzeba było coś "wykuwać na blachę" - part 2020-07-16 15:09
@part: popieram opinię dot rekrutacji w Allegro tech, jeden z lepszych procesów. Źle zrozumiałeś całe zdanie i wyciągnąłeś trzy słowa z kontekstu, raczej chodzi o stopień znajomości detali implementacji języka który może być nieosiągalny dla człowieka który uczył się samodzielnie i zrobił powiedzmy 2-3 projekty. @renderme: powiedz to rekruterkom które odrzucą kumatego gościa bez doświadczenia i wykształcenia tylko dla tego że jego CV nie mieści się w tablekach. - MarioMJR 2020-07-16 15:14

Pozostało 580 znaków

2020-07-16 15:03

Rejestracja: 2 lata temu

Ostatnio: 1 dzień temu

7

Ludzie którzy siedzą w domach po 12, czasami 18 miesięcy i klepią projekty do szuflady sami są sobie winni. Zamiast szybko oswoić się z językiem w małych zadaniach z tutoriali/100 projects to do i uderzać po doświadczenie w Open Source to robią ciągle te same aplikacje liczące kalorie, te strony portfolio których nikt nigdy nie ogląda i kręcą się w wiecznej spirali tutoriali i chwalą się trawnikiem na githubie.

Widziałem ostatnio wannabe juniora, ponad 2500 commitów w ciągu roku z czego większość to "poprawa literówki", "dodałem zmienną/usunąłem zmienną" i projekty typu "Todo React/Todo Angular/Todo Vue.js" i zero, dosłownie zero większych projektów czy pracy w grupach.

Tak to się w ogóle nie opłaca uczyć programować bo ludzi z takim samym podejściem są setki.

edytowany 1x, ostatnio: vendie, 2020-07-16 15:05
Pokaż pozostałe 5 komentarzy
@vendie jak działają te "100 projects to do"? Masz to pisać od zera, czy może dostajesz gotowy projekt, w którym masz dokonać zmiany? - devoted 2020-07-16 16:10
@devoted: robisz od 0, masz tylko temat projektu. W necie krążą screeny / strony z taką lista projektów, które można zrobić na początku przygody z programowaniem. - kixe52 2020-07-16 16:19
Zalezy jeszcze jakie projekty klepiesz do szuflady. Jest roznica np. pomiedzy todo apem a spora aplikacja jak np sklep internetowy :D Warto realizowac ambitne i dluzsze projekty + open source. - ledi12 2020-07-16 16:49
Taki +/- mam plan: podstawy języka, tak aby móc w miarę swobodnie pisać => kolejne punkty z listy To Do => a na koniec lub w trakcie uderzać do OS. Jednak po opinii @MarioMJR wrócił temat podyplomówki. Wiem, że kandydatów z mgr po info nie przebiję, ale taki papierek po UJ [tester] albo AGH [web dev - tu raczej za rok patrząc po wymaganiach] plus mój mgr z ang. zawsze uplasuje mnie chociaż pośrodku tej listy CV do przekopania przez HR. Proszę nie myślcie, że liczę aż ktoś powie mi co mam robić, po prostu lubię znać opinię doświadczonych osób zanim sam podejmę decyzję. - NOone_86 2020-07-17 15:57
@NOone_86: Nie wiem jak z podyplomówkami, na ile będą one przygotowywać człowieka do roli programisty kompleksowo, w porównaniu ze studiami I stopnia na kierunku Informatyka ze specjalnością typu "aplikacje webowe" albo coś w tym stylu. Raczej mówiłem o takich studiach, tyle że eksternistycznych, a nie dziennych czy zaocznych gdzie musisz wysiedzieć swoje - MarioMJR 2020-07-18 16:46

Pozostało 580 znaków

2020-07-16 16:56

Rejestracja: 1 rok temu

Ostatnio: 14 minut temu

1

@vendie: zgadzam się w zupełności. Nawet jeśli ktoś nie ma skilla/możliwości załapania się na projekt OS to zamiast napisać 10 tutorialowych apek, lepiej napisać jedną większą, ale niestandardową.
Jak pisałem hobbystycznie to robiłem właśnie takie aplikacje, które rozwiązywały rzeczywiste kłopoty (głównie w moim miejscu pracy) i dzięki temu nauczyłem się, że programowanie nigdy nie jest takie proste jak w tutorialach ;p Kod pisałem taki, ze teraz mnie bolą oczy od jego oglądania, ale o dziwo działo, a na błędach, z którymi potem musiałem żyć wiele się nauczyłem i zmuszały mnie do refleksji "co poszło nie tak".
Też zauważam, że wszyscy przekwalifikowanie mają w repo to samo. Ostatnio szukałem osób do takich prostych prac typu stylowanie i jak widziałeś jedno repo, to widziałeś wszystkie. Nie wiem czy jest jakaś książka "5 projektów dla juniora" czy coś takiego?

Mam uczulenia na:

  • todo
  • systemy wypożyczalni / biblioteki
  • liczniki kalorii
  • kalkulatory

Hint dla przekwalifikujących się - nie pisząc komercyjnie nie jesteście w stanie napisać ładnego kodu nawet w prostej aplikacji, więc publikując 50-tą listę todo pokażecie jedynie czego nie umiecie.

Jak napiszecie jakąś nietypową i trochę większą apkę to błędy będą te same, ale przynajmniej będzie widać, że potraficie pisać coś więcej niż CRUD wygenerowany w większości przez automat. A jak zrobicie jakiegoś prostego SaaS'a/apkę, którego korzystają realni użytkownicy to już w ogóle +100 pkt. Zastanówcie się czy jakiś wujek/ciocia nie potrzebuje softu, który rozwiązuje PRAWDZIWY problem biznesowy, zbierzcie wymagania, napiszcie apkę. Wujek się ucieszy, a wy zdobędziecie cenne doświadczenie.

Pokaż pozostałe 5 komentarzy
na dowolnym social media. - part 2020-07-16 18:33
To ja od razu powiem że marzy mi się kompilator C do Brainfucka, ale ciągle nie mam czasu napisać. Może być działający online jak to ma być appka webowa - KamilAdam 2020-07-16 18:40
@KamilAdam C ma znacznie wiecej operatorow niz Brainfuck, no i co ze standardowymi bibliotekami C - czas, losowe, matematyczne itp, ktorych nie ma w Brainfucku? - lambdadziara 2020-07-16 18:45
C ma znacznie wiecej operatorow niz Brainfuck - każdy algorytm zgodny z maszyną Turinga można zapisać w Brainfucku (Brainfuck algorithms). co ze standardowymi bibliotekami C - w większości są napisane w C, więc jak już będzie kompilator to można przekompilować. czas, losowe - embedded C też tego nie ma. matematyczne - najmniejszy problem - KamilAdam 2020-07-16 18:50
Ja w technikum pisałem sklep dla kuzynki. Widok wszystkich produktów ładował się kilka sekund bo ładowałem pełne obrazki zamiast miniaturek, o DRY nie słyszałem więc fixowałem rzeczy w 10 różnych miejscach, wszędzie mnóstwo błędów i dziwnych przypadków, funkcjonalności wybrakowane i nieintuicyjne. Projekt na szczęście nie opuścił localhosta ale za to po miesiącu odkryłem i przekonałem się do PrestaShopa, którym rozwiązałem swoje wszystkie problemy. Kuzynka zadowolona, a ja się sporo nauczyłem :D Na pewno więcej niż po napisaniu apki "todo" - OtoKamil 2020-07-22 14:54

Pozostało 580 znaków

2020-07-16 18:17

Rejestracja: 2 miesiące temu

Ostatnio: 4 dni temu

Lokalizacja: Gdańsk

1

Na własnym doświadczeniu mogę potwierdzić, że stworzenie własnej aplikacji to znacznie większe wyzwanie niż klepanie jakiegoś gotowca. One są w porządku do zapoznania się z możliwościami, powiem górnolotnie do zainspirowania się. Zabawa jednak zaczyna się w momencie kiedy wymyślamy sobie nowe funkcjonalności i trzeba potrafić całą tę wiedzę z gotowców połączyć w całość na wszystkich warstwach + poszukać dodatkowych informacji w dokumentacji bo nasze wymagania są inne od tych w tutorialu. I jak już nam się uda stworzyć całość i aplikacja działa to stwierdzamy, że aby miała sens to trzeba całą przebudować bo osiągnięty efekt nas nie satysfakcjonuje lub nie możemy jej łatwo rozbudować bo czegoś tam nie przewidzieliśmy bo nie miało się wiedzy/doświadczenia żeby to zrobić i zaczynamy zabawę od nowa. Albo ostatnio doszedłem do wniosku, że jeżeli chce się pisać testy to trzeba tworzyć taki kod żeby był łatwo testowalny, co też pewnie wymaga doświadczenia i nauki na błędach, bo inaczej testów się pisać nie chce bo jest to problematyczne. Niby banał, ale czasami trzeba samemu dojść do takiego wniosku, a nie przeczytać wnioski innych osób. Inny przykład. Aplikacja pobiera mi dane. Napisałem kod, który wczytuje dane ze ściągniętego pliku tylko, że podszedłem do tego tak jak zrobiłby to człowiek czyli pobieram plik na dysk, rozpakowuje go, wczytuje dane, usuwam plik. Olśniło mnie dopiero jak przeglądałem książkę Horstmanna o Javie, że przecież można operować na samym I/O stream w pamięci i tyle. Też niby pierdoła, ale znowu fajnie jest do takich rozwiązań dojść samemu. Już nie wspominając o jakiejkolwiek optymalizacji zapytań czy walki ze wszelkimi błędami, które widzimy pierwszy raz i jedyne co nam zostaje to Google i szukanie.

Paradoksalnie jednak przed tym mnie od czasu do czasu zaprosili na rozmowę/do zrobienia zadań tak teraz już nie. Prawda jest też taka, że kto ma niby sprawdzać te portfolio? Pani z HR? No raczej nie, a nie wydaje mi się również aby ktoś na etapie wstępnej selekcji weryfikował repo. Za dużo czas by to zajęło. Taki własny, większy projekt może dopiero być plusem na samej rozmowie gdzie sami go jakoś sprzedamy w czasie konwersacji tylko najpierw musi do niej dojść i to jest największe wyzwanie.

zawsze taki projekt jak opisałeś można wrzucić na tani hosting kosztujący tyle co dwie paczki fajek miesięcznie (swego czasu więcej wydawałem na fajki :P) i wtedy w CV możesz wcisnąć "Wykonane Projekty": "PROJ, projekt który robi SMTH używany do ACTION, znajdą go Państwo pod adresem http://proj.com" i widząc takie coś rekruterka może mieć wykrzyknik w głowie bo czegoś takiego nie widziała i pytać programisty o opinię, a ten prawdopodobnie stwierdzi że dawaj go zobaczymy co on umie. W tym scenariuszu success, bo CV zostało podane dalej. - MarioMJR 2020-07-16 18:34
Identyczny tok myślenia posłużył mi jako mobilizacja do działania: http://marketdata.com.pl Być może jednak dobrym pomysłem byłoby konkretne opisanie projektu niż tylko wrzucenie linku. - olfeusz 2020-07-16 18:39
no tak, wypunktowanie fajnych rzeczy, w jakich technologiach są napisane itp. Programowanie programowaniem, ale wszędzie przydaje się umiejętność sprzedaży, prezentacji itp. A bez tego to taka sobie rekruterka nie mająca zielonego pojęcia o tym, czego się nauczyłeś i jak dużo twojego zaangażowania pożarł taki program to po prostu potraktuje to jak wpis "referencje: Jasio ma ładne oczy", rozumiesz... O, albo zrób prezentację video i wrzuć na YT, do CV wrzuć link na YT, i w opisie filmu daj URL pod którym masz projekt. To może zwrócić uwagę czyjąś na ten projekt - MarioMJR 2020-07-16 18:49

Pozostało 580 znaków

Odpowiedz

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