Wpis z mikrobloga

#abstrakcjaprogramowania #naukaprogramowania #piszebomoge #rekrutacjawit

Wkurzaja mnie juz troche ciagle powtarzajace sie pytania w stylu "chcem na staz, 25k na reke o co mogom mnie pytac" - wiec postanowilem opisac sprawe nieco z mojej perspektywy.

A jest ona taka, ze w paru firmach zajmowalem sie rekrutacja - na roznym poziomie i w roznym stopniu, roznych ludzi i w roznyn wymiarze - jak i sam sie rekrutowalem tu i owdzie - i oto moj poglad na sprawe, czyli lista najwiekszych problemow ktore wystepuja przy rekrutacji, kolejnosc w sumie losowa:

1. Za przeproszeniem, sranie wyzej niz sie dupe ma, buta, chamstwo. Sytuacja na rynku wcale nie jest taka kolorowa jak sie wydaje ;) To jeszcze z czasow, gdy pracowalem w PHP, a wersja 5 byla calkiem swieza - szukalismy jakiegos flashowca - czasy swietnosci tej technologii, heh. Koles wiec wlazl do biura z rowerem, gadka szmatka. Costam umie podobno, ale portfolio nie ma, gotowych prac nie ma. Ostatni rok studiow chyba. Znajomosc PHP mierna, fotoszopa nie zna, cssy i htmle leża. Za taki pakiet zazyczyl sobie 7k na reke (ponad 10 lat temu!). Jak mu podziekowalismy to oburzony wyszedl, nie podajac reki i walac kolem od roweru w drzwi. ;) Inna sytuacja, calkiem swieza - gosc do programowania sieciowego (nie, nie webdev) - wszystkio fajnie, zajebiscie, wszystko obu stronom pasuje. Pytam go na koniec jeszcze - czy cos umie w JS albo innym HTMLu, bo team maly i moga sie inne zadania pojawic, firma mloda etc - koles odparl, ze on jest specjalista w swojej dziedzinie i od htmla to mozemy sobie zatrudniac hindusow. Chcielibyscie, np. bedac webdevami siedziec obok kogos, kto wami gardzi, heh?
To chyba takie dwa najciekawsze konkretne ekstremalne przypadki, ale sa i inne - sam mialem sytuacje, gdzie szukali kogos od Javy, zapytali mnie co sadze o PHP - a potem sie okazalo, ze tak naprawde to wiekszosc ludzi tam rzezbi wlasnie w PHP ;) Przypal. I to nawet nie o to chodzi co mysle o PHP, ale jak to wyrazam. Kultura jednak obowiazuje.
A szczegolnie smiesznie jest, jak ktos ma w CV codeacademy (nic zlego samo w sobie, nawet wskazane), a zgrywa seniora i oczekuje osobistej asystentki.
I tutaj uwaga - nie chodzi o NIE cenienie sie. To cos zupelnie innego i jest absolutnie wskazane. Ale jak ktos nie rozumie, ze dobry frontend to cos wiecej niz wyklikanie w dreamwaverze - no to coz.

Z tego co slysze od znajomych - banka rosnie coraz bardziej, tj. niektorym sie naprawde wydaje, ze przeczytanie ksiazki o javie do polowy to 10k, a do konca 15k od reki bez gadania. Dobrze wiemy, ze pieniadze sa tym biznesie - ale za darmo nikt ich nie daje. A rynek "gownoprogramistow" coraz bardziej nasycony... Generalnie nigdzie nie warto w zyciu sie sadzic ;)
A, i tutaj wpada tez "ale skonczylem studia" - o ile nie bylo to MIT, to dobrze wiesz jaka opinie maja studia w tym swiatku. Nie, ze studia sa zle - bron boze - tyle, ze traktowanie dyplomu jako dowodu ze cos sie umie w tej branzy raczej jest słabe.

2. Nieumiejetnosc myslenia. Tu chodzi przede wszystkim o to, ze wszyscy ucza sie jezyka. Do tego stopnia, ze nie maja pojecia jak dziala cokolwiek innego. Lezy i kwiczy znajomosc struktur danych, czasem nawet jak sa "wbudowane" w jezyk. Ogolnie jakakolwiek algorytmika ktora wykracza poza standardy (czyli sortowanie) - jest zle. Operacje grafowe to kosmos dla niektorych. Glupie trzymanie sie wzorcow z konkretnego jezyka - np. to, ze unit test zawsze musi testowac jedna i tylko jedna metode. Zbyt czeste poleganie na "magii" - slyszalem takie kwiatki, ze javowe foreach dziala tylko z wbudowanymi klasami albo np. ze iteratory to stara, juz nieuzywana metoda ;) Roznice miedzy listami a setami (to bardziej matematyka). Moim absolutnym "krolem" bylo pytanie jak policzyc pierwiastek z liczby bez uzywania wbudowanych funkcji sqrt. Na oko 70% ludzi robila sie biala, niektorzy dukali ze nie znaja sie na matematyce tylko sa programistami (tak tak) - jak sie domyslacie, nie chodzilo tu o podanie matematycznej formuly, a pokombinowanie - kazda odpowiedz, lacznie z brute-forcem byla "poprawna". Niestety, najgorzej brzmi - "eeeee, eeeee, eeee nie wiem, poddaje sie", zwlaszcza po 20 sekundach. Poza tym wypadaloby znac jakiekolwiek podstawy optymalizacj ;)

3. Testowanie. Lezy i kwiczy. Nie chodzi o formalne definicje "unit testu" ale o podstawy - a chodzi o poprawne pisanie kodu ktory da sie testowac. Malo ktos widzi cos zlego ze funkcja ma zhardkodowana operacje zapisu na przyklad. Kwiatki typu - "eee, no jak metoda ma byc testowana to musi byc publiczna". Mockowanie/stubowanie - a co to za magia? Testowanie wydajnosci - a co tam, opakowac kod w petle i wykonac 1000 razy. Ja rozumiem, ze testowanie nie jest seksi, ale to jednak czesc rzemiosla. A i trafiali sie tacy, co twierdzili, ze od testowania to sa testerzy a nie oni (patrz punkt 1) albo ze unity sa niepotrzebne, bo zabieraja czas :D Generalnie laczy sie to z punktem 2, no i troche z kolejnym, czyli

4. Narzedzia. Troche tak jak z Officem - to, ze umiesz zmienic kolor czcionki nie oznacza "znakomitej znajomosci Worda", tak samo umiejetnosc zrobienia commita nie oznacza "wysmienitej i doglebnej znajomosci GITa". Mozecie marudzic, ale nie kojarze firmy ktora apke produkcyjnie odpala klikajac strzalke w Eclipse albo wrzuca jary do katalogu obok apki. Ja wiem, ze to jeszcze mniej seksi niz testowanie - ale nadal to nic, czego nie mozna uzywac w domu nawet przy najmniejszym projekcie. Nikt nie oczekuje cudow, ale elementarna znajomosc, chociaz ze slyszenia i wiedzy do czego sluzy maven - to by sie jednak przydala, nie?.
Tutaj tez trafiaja wszelkie narzedzia typu debugger, profiler. Nie, println() nie jest dobra metoda debugowania. Nie, optymalizacja bez konkretnych danych nie przyniesie zysku. Slowem - warto znac swoje srodowisko.

5. Niedocenianie sie i niepokazywanie tego - przeciwnosc punktu 1 - ludzie pt "no tak, costam umiem, costam pisalem", czy - mam taki projekt, #!$%@? gierke, ale w domu na dysku etc. Chwalcie sie ludzie, ale z umiarem! Konto na githubie z DOBRYM projektem (dobrym technicznie, nawet jak wypisuje hello world). Jakies portfolio. Slowem - nie zgrywajcie przegrywa :P Ja wiem, ze to brzmi troche jak "nie badz za madry ani za glupi" - ale taka tez prawda. Raz trafilem na kolesia co przyniosl swoja apke na komorke - sciagala jakiestam obrazki (no to bylo w czasach gdy malo kto mial smartfona) - dobre pol godziny gadalismy o tym jak ja pisal (mimo, ze wtedy nie wiedzialem nic o pisaniu apek).
Slowem - chodzi o pokazanie, ze umie sie cos zrobic do konca.
A najlepiej - jak ma punkty 3 i 4, czyli testy i sensowne narzedzia.

tl;dr;

  • 44
  • Odpowiedz
  • 0
@to267224: to ciekawe jakie pytanie twoim zdaniem cokolwiek sprawdza a nie jest do wyszukania w pare minut?
I rozumiem, ze fakt znajomosci mavena oznacza, ze ktoś jest debilem i nie unie myślec, bo taki obraz sie wyłania z tego co piszesz.
  • Odpowiedz
@M4ks: maven to był przykład, pierwsze co przyszło na myśl bo wiele razy tutaj padało ; )
Najlepiej i najprościej wg. mnie sprawdza coś w stylu - dostajesz źródło czegoś co przypomina projekt, lub samego projektu jeśli jest opensource i masz parę dni na zrobienie któregoś prostego buga i/lub feature'a.
W ten sposób można zdobyć jakiegoś cennego pracownika który początkowo w ogóle nie znał języka, a zdążył się nauczyć i
  • Odpowiedz