Paweł Nowicki

Paweł Nowicki Project Manager,
Programista PHP

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Witajcie, niedługo jadę na rozmowę kwalifikacyjną na stanowisko Junior PHP Developer. Jakich pytań powinienem się spodziewać? Ewentualnie jakie zadania (test?) Wy byście zrobili na miejscu rekrutera?

Z góry dzięki za pomoc :)
Paweł Malisak

Paweł Malisak PHP Developer

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Powtórz sobie na pewno wszystko co dotyczy obiektowości, czym się różni interfejs od klasy abstrakcyjnej, co to jest trait, przestrzenie nazw itd. Najlepiej tutaj http://php.net/manual/en/migration53.php i idziesz z wersjami do góry. Ponadto funkcje anonimowe bym poczytał. Wzorce projektowe poczytaj i do tego najlepiej jakiś przykład gdzie to można używać i dlaczego to jest właśnie fajne.

Na koniec zapytania SQL sobie powtórz w tym na pewno podzapytania i grupowanie danych.

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Generalnie głupich. Odbyłem kilka rozmów kwalifikacyjnych w swoim życiu - zdarzyło mi się parę razy prowadzić rozmowy też.

Generalnie na Juniora powinieneś dostać proste zadanie do domu + prośbę o próbkę kodu (jeżeli nie jesteś uwikłany w jakiś projekty open source - generalnie fajnie jest mieć coś na githubie) + powinieneś odbyć przynajmniej jedną osobę z osobą techniczną na temat programowania i typowych problemów które można spotkać w pracy. Na 100% pogadasz z HR-ówką lub team leaderem czy właścicielem firmy. Czasem w barze przy piwie.

W praktyce idę o zakład że dadzą Ci jakieś oderwane od rzeczywistości zadanie z internetu o którymś gdzieś ktoś przeczytał a później na tej podstawie będą próbowali podjąć decyzję.

Jeżeli aplikujesz do corpo to bywa różnie. Czasem wystarczy COŚ mieć do pokazania i Cie zwyczajnie wciągną na 3-miesięczną umowę.
Robert P.

Robert P. Senior PHP Developer

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Byłem na kilku rozmowach kwalifikacyjnych i pytania są naprawdę różne. Od typowo technicznych czyli np pytają się o jakiś szczegół z CV, który piszesz, że znasz po jakieś bardziej zaawansowane.

Przykłady, piszesz w CV, że znasz composera

1. Do czego służy composer.lock
2. Co to jest SATIS?

Piszesz, że znasz MySQL

1. Czym się różni InnoDB od MyISAM?
2. Co to jest Trigger?

Piszesz, że znasz OOP

1. Co to jest enkapsulacja?
2. Czym się różni interfejs od klasy abstrakcyjnej.
3. Podaj przykłady i zastosowanie wzorców projektowych

itp..

Druga seria pytań to typowo HR/psychologiczne typu:

1. Gdzie się widzisz za 10 lat
2. Twoja największa wada itp..
3. Dlaczego odszedłeś z poprzedniej firmy

itp.

no i potem konkrety, finanse, oczekiwania. Przeważnie tak to wygląda. Na junior dostaniesz na pewno łatwe pytania, nikt nie oczekuje od junior-a, że będzie wiedział wszystko. Powodzenia!

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Zależy jak trafi. Pewnie skończy się tak że jakiś "rekruter" da mu jakieś chore, oderwane od rzeczywistości zadanie i kryterium wyboru będzie - kto odpowiedział najszybciej :-D
Brałem udział w paru rekrutacjach, tych złych i tych dobrych i generalnie na palcach jednej ręki policzę sytuacje kiedy takowa była przeprowadzona profesjonalnie.

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Dariusz P.:
Zależy jak trafi. Pewnie skończy się tak że jakiś "rekruter" da mu jakieś chore, oderwane od rzeczywistości zadanie i kryterium wyboru będzie - kto odpowiedział najszybciej :-D

Czy mógłbyś podać chociaż jakiś przykład tych "chorych" jak tu piszesz zadanek? W ostatnim czasie rozwiązywałem takie z pozoru proste zadanka, jak np. wyciągnięcie jakichś danych w jednym tylko zapytaniu SQL albo jakaś prosta aplikacja typu chat, zastanawiam się tylko czy to faktycznie takie chore czy tylko tak Tobie się wydaje bo masz po prostu doświadczenie w realnych projektach?

A nawet z Codility taki prosty przykład powitalny, na początek masz obliczanie Fibonacci rekurencyjnie, oczywiście jest dość wolne, więc chodzi o napisanie czegoś szybszego. Wiadomo że użytkownik nie lubi czekać na wyniki obliczeń, więc może właśnie chodzi o sprawdzenie czy się ludzie orientują w sprawach optymalizacji wydajności itd?

Zresztą to jest sprawa szersza, bo wydaje mi się że bez fundamentalnych podstaw nie ma co w ogóle zasiadać do jakiegokolwiek frameworka PHP, wiem że Active Record Patern ułatwia wiele rzeczy, tylko czy jego znajomość i częste stosowanie tego zwalnia od znajomości optymalizacji zapytań SQL?

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Dariusz R.:
Dariusz P.:
Zależy jak trafi. Pewnie skończy się tak że jakiś "rekruter" da mu jakieś chore, oderwane od rzeczywistości zadanie i kryterium wyboru będzie - kto odpowiedział najszybciej :-D

Czy mógłbyś podać chociaż jakiś przykład tych "chorych" jak tu piszesz zadanek? W ostatnim czasie rozwiązywałem takie z pozoru proste zadanka, jak np. wyciągnięcie jakichś danych w jednym tylko zapytaniu SQL albo jakaś prosta aplikacja typu chat, zastanawiam się tylko czy to faktycznie takie chore czy tylko tak Tobie się wydaje bo masz po prostu doświadczenie w realnych projektach?

Wpisz w internet "zadania na rekrutacje programisty [JĘZYK} i dostaniesz". Nie chodzi o to że dawanie takich zadań jest bezcelowe. Bardziej chodzi mi o to że dobry programista musi być też dobrym pracownikiem co oznacza że trzeba sprawdzić umiejętności twarde oraz umiejętności miękkie.
Trzeba też brać pod uwagę że dla wielu osób rozmowy o pracę są stresowe gdzie pracujemy w innej atmosferze. Więc nasze obserwacje są lekko niemiarodajne.
I tak zamiast tracić czas lepiej pogadać z kandydatem o firmie żeby ogólnie poznać charakter i dać mu jakieś wprowadzenie i czas by się zrelaksował chociaż odrobinę, pogadać o typowych problemach i wyzwaniach danego stanowiska itp. Zadanie raczej dać do domu, przed lub po spotkaniu. I bardziej takie w którym może się wykazać.

A nawet z Codility taki prosty przykład powitalny, na początek masz obliczanie Fibonacci rekurencyjnie, oczywiście jest dość wolne, więc chodzi o napisanie czegoś szybszego. Wiadomo że użytkownik nie lubi czekać na wyniki obliczeń, więc może właśnie chodzi o sprawdzenie czy się ludzie orientują w sprawach optymalizacji wydajności itd?

Powiedzmy że rekrutujesz np do agencji interaktywnej. 99% czasu taki pracownik będzie robił formularze i widoki. Tzn wyciągał dane z bazy danych i kierował je do widoku oraz odbierał dane od użytkownika i wpisywał je do bazy danych. Nie oszukujmy się, to drastyczna część pracy w KAŻDYM projekcie. Wyzwania leżą w skalowalności, czasem przy ambitniejszym projekcie w ciekawych algorytmach czy narzędziach koło których junior nawet nie będzie stał, chyba żeby się rozwinąć. Ale te części należą do mid/seniora.
Więc zamiast stosować prosty przykład powitalny w postaci "obliczeń rekurencyjnych ciągu fibonacciego" lepiej pogadać o XSS albo SQL Injection. A kwestie wydajności przegadać bardziej na poziomie optymalizacji zapytań SQL i dobrych praktyk przy pracy z BD.
Zresztą to jest sprawa szersza, bo wydaje mi się że bez fundamentalnych podstaw nie ma co w ogóle zasiadać do jakiegokolwiek frameworka PHP, wiem że Active Record Patern ułatwia wiele rzeczy, tylko czy jego znajomość i częste stosowanie tego zwalnia od znajomości optymalizacji zapytań SQL?

No własnie frameworki pozwalają na prace bez fundamentalnych podstaw na tej samej zasadzie jak samochód pozwala Ci się przemieszczać pomimo tego że niekoniecznie potrafisz takowy zbudować czy znasz dogłębnie zasady funkcjonowania jego elementów. Nie musisz wiedzieć jak działa routing w Symfony 2 czy Angularze żeby móc z niego korzystać. To pomaga ale nie jest wymagane. A nabierając coraz więcej wiedzy będziesz naturalnie rozumiał na czym te mechanizmy polegają.

Dodatkowo jeżeli taki junior ściśle trzyma się dokumentacji frameworka, dobrych praktyk, PSR itp to popełnia znacznie mniej błędów niż gdyby pracował na surowo.
Paweł Malisak

Paweł Malisak PHP Developer

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Nie każdy się nadaje na nazwijmy to super developera, nie każda firma potrzebuje super developera, jest dużo firm gdzie wystarczy n lepszych osób, a reszta ma klepać kod wg wytycznych. Tylko co to ma do rekrutacji co jest tematem tego tematu to nie wiem.Ten post został edytowany przez Autora dnia 13.01.16 o godzinie 09:20

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Paweł M.:
Nie każdy się nadaje na nazwijmy to super developera, nie każda firma potrzebuje super developera, jest dużo firm gdzie wystarczy n lepszych osób, a reszta ma klepać kod wg wytycznych. Tylko co to ma do rekrutacji co jest tematem tego tematu to nie wiem.

Kiedy mowa jest o czymś zupełnie innym. Koledzy piszą co wg nich powinna się dana osoba spodziewać na rozmowie kwalifikacyjnej a realia są zupełnie inne. Mało kiedy firma ma kogoś kto się faktycznie zna na prowadzeniu rekrutacji więc rozmowa kwalifikacyjna będzie wyglądała dokładnie tak jak odpowiedź na zapytanie google:

"zadania na rekrutacje programisty PHP/JAVA itp"

I to nie jest żart. Pamiętam jak jedna firma mnie chciała rekrutować na programistę JavaScript. Rekrutacje przeszedłem śpiewająco bo sobie w Google wpisałem frazę i pytania padły z 2 pierwszych wyników. Włącznie z pytaniem logicznym niezwiązanym z JavaScript. Ot ktoś w pierwszym punktowanym komentarzu napisał że zna fajne zadanie na rekrutacje i takie pytanie dostałem :-D

Od tamtej pory baczniej zwracam na takie rzeczy uwagę. Zwłaszcza że miałem okazję samemu prowadzić rekrutację i raczej staram się trzymać tego co uważam za dobre praktyki.

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

A no np. tutaj:
http://www.woodstitch.com/resources/php-interview-ques...
http://stackoverflow.com/questions/3446216/what-is-the...
http://www.toptal.com/php/interview-questions

W sumie chyba nie takie głupie skoro bez znajomości PHP można się przejechać chociażby na czymś takim


var_dump('0e00' == '0e01');
var_dump('0e00' === '0e01');


Bo co jeśli w sposób (1) porównuje się wartości które są hashem jakiegoś hasła?Ten post został edytowany przez Autora dnia 13.01.16 o godzinie 11:44

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Dariusz R.:

var_dump('0e00' == '0e01');
var_dump('0e00' === '0e01');

True ale takich wpadek jest całe mnóstwo. I nie twierdzę że tego nie powinno być na rozmowie. Chodzi mi o to że jeżeli zrobisz rozmowę gdzie jej centrum jest tylko to zadanie to uważasz że dowiedziałeś się o programiście wszystkiego co wiedzieć powinieneś?
Ostatnio złowiony numer w kodzie który debuggowałem:


$arr[1] = 'Rorat';
$arr[0] = 'Dariusz';
implode(' ', $arr);


Dodajmy do tego porównywanie liczb zmiennoprzecinkowych, in_array() i boolean i całą masę różnych rzeczy. Gdybym sprawdzał wszystko i decydował na podstawie szukania takich drobiazgów - nigdy nikogo bym nie zatrudnił.

Swoją drogą spróbuj:

var_dump(in_array(true, ['a', 'b'])); // ups?


W zasadzie wśród seniorów też znajdziesz takich co o czymś nie będą wiedzieć. I nawet już mnie to nie dziwi.
Tak samo jak są np dowcipy o programistach php gdzie ostatnio rozmawiałem ze znajomym który pracuje w C# i generalnie pracuje w 3 firmie w ciągu ostatnich 10 lat i w mało której programiści potrafią programować z użyciem wątków. Mówimy tu o mid i seniorach.
Problem jest generalnie wszędzie :P

Na takie rzeczy masz narzędzia do kontroli kodu które masz w zasadzie za darmo (nie licząc infrastruktury) podpięte gdzieś w tle do repo i wkurzające raportami bo np porównałeś coś z użyciem "==".

Ewentualnie możesz zrobić cheat sheet z tego typu numerami i powiesić na ścianie. To kosztuje kartkę papieru i trochę czasu.

Chcę tylko zwrócić autorowi uwagę że generalnie czegoś takiego powinien się spodziewać gdzie wg mojej skromnej opinii taka rozmowa wiele nie da. I generalnie chodzi mi o to że taki smaczki jak najbardziej powinny być w rozmowie bo też mówią coś o programiście ale nie powinny być jedynym kryterium oceny programisty.

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Dariusz P.:
True ale takich wpadek jest całe mnóstwo. I nie twierdzę że tego nie powinno być na rozmowie. Chodzi mi o to że jeżeli zrobisz rozmowę gdzie jej centrum jest tylko to zadanie to uważasz że dowiedziałeś się o programiście wszystkiego co wiedzieć powinieneś?

Tylko że to nie jest żadna wpadka a to True wynika z automatycznej konwersji typów na float więc nie porównuje stringów tak jak w tym drugim przypadku gdzie sprawdza jeszcze typ. Wiesz tu chodzi mi o znaczenie czegoś takiego jak komuś przyjdzie poprawiać istniejące błędy a nie pisać coś od nowa, jak wyskakują błędy różnego typu a gość nie wie dlaczego, to albo będzie musiał dowiedzieć się dlaczego tak się dzieje, albo będzie po omacku poprawiał a to nie jest rozwiązanie.

A testowanie w ten sposób ma swoje uzasadnienie pewnie w statystykach, bo jak myślisz, ilu studentów tak naprawdę orientuje się coś trochę praktycznie, biorąc jeszcze pod uwagę to że studia to właściwie tylko teoria? Zresztą tak jak widzę to ci co zaczynają z PHP to i tak nie na frameworkach tylko często jest to czyste PHP pomieszane z HTML.

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Dariusz R.:
Tylko że to nie jest żadna wpadka a to True wynika z automatycznej konwersji typów na float więc nie porównuje stringów tak jak w tym drugim przypadku gdzie sprawdza jeszcze typ. Wiesz tu chodzi mi o znaczenie czegoś takiego jak komuś przyjdzie poprawiać istniejące błędy a nie pisać coś od nowa, jak wyskakują błędy różnego typu a gość nie wie dlaczego, to albo będzie musiał dowiedzieć się dlaczego tak się dzieje, albo będzie po omacku poprawiał a to nie jest rozwiązanie.

Zapominasz o tym co napisałem. Gdybym sprawdzał programistów rzucając im sztuczki, zagadki, głupoty naszej platformy i inne tego typu rzeczy gwarantuje Ci że nie zatrudnił bym nawet 1/100. I to przy stanowiskach mid/senior. Bo zawsze znajdę drobiazg którego ktoś nie będzie wiedział i który przecież jest bardzo ważny bo może spowodować błąd. Tyle że po takiej rozmowie w zasadzie nadal nic nie będę wiedział o kandydacie nie licząc tego że przeczytał gdzieś o liczbach zmiennoprzecinkowych.

Pytać o takie rzeczy juniorów można jako bonus, nic więcej.

I owszem, to jest wpadka bo funkcja in_array ma sprawdzić czy wartość jest w tablicy. Spodziewał byś się że konwersji typów robić nie będzie tylko wykorzysta operator identyczności. Tłumaczenie tłumaczeniem a fakt jest faktem że true w tablicy nie ma więc funkcja nie ma prawa zwrócić informacji że się tam znajduje.

Więc generalnie autor powinien się spodziewać zadań z pierwszej strony Google (max 2, do trzeciej praktycznie nikt nie dociera). Bo jak trafi na normalną rekrutację to żadne przygotowanie mu nie pomoże bo zostanie przemaglowany od strony technicznej i będzie dużo luźnych rozmów które będą miały za zadanie ogólnie określić jego zaangażowanie w ową rekrutacje i charakter. A przygotowanie nie pomoże bo jak nie będzie zorientowany w danym temacie i rzuci mocno ogólna odpowiedzią to doświadczonemu człowiekowi zapali się czerwona lampka i zacznie drążyć temat.

Świetnym przykładem była rekrutacja gdzie w ciągu 2 godzin kandydat już nie radził sobie z Angielskim, Solarem, Elasticsearchem, Sphinxem, MongoDB, JavaScriptem, Gitem i wieloma innymi rzeczami które miał w CV na poziomie "ekspert". Bo jak przeszliśmy do konkretnych rozmów kiedy taką czerwoną lampkę dostałem - to słyszałem że "dawno w tym pracował", że "już z tego nie korzystają" albo "jest ogólnie zaznajomiony" itp. Czyli w teorii zna a w praktyce o tym przeczytał. Preferuje ludzi którzy szczerze mówią - znam, używałem ale na tyle rzadko z tym pracuje że przez sen w tym nie robię.Ten post został edytowany przez Autora dnia 13.01.16 o godzinie 15:26

Adrian Stolarski

Wypowiedzi autora zostały ukryte. Pokaż autora

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Adrian S.:
Szybciej sprawdzi się temat:

Zaprojektuj obiekt Animal, animal ma jeść i poruszać się. A potem mówisz nieszczęśnikowi, o ile zrobi to na strategii, zrób mi z tego torbacza, który znosi jajka. I jaki to bedzie wzorzec projektowy? I na koniec żeby dobić, co z S.O.L.I.D. wykorzystałeś? - teoria

A jakie masz szanse że potencjalny, podkreślam bo to bardzo istotne zawodnik będzie miał o tym wszystkim pojęcie? Zresztą jeśli nawet to sprawa nie jest taka prosta. Jako najlepszy przykład można by wziąć klasyczny MVC, zawodnik ma dajmy na to i własną aplikację w PHP i nawet postanowił pokazać źródła. Wszystko spoko, tylko gdzie w praktyce (biorąc pod uwagę jeszcze to jak to jest zaimplementowane we frameworkach) występuje klasyczny model MVC? Widziałeś ty gdzieś praktycznie żeby była bezpośrednia komunikacja widoku z modelem? To co jest we frameworkach wyglądało by raczej na MVP a nie MVC, choć MVP jest pochodną tego wzorca.

Idąc dalej, komuś się może nie spodobać że ktoś coś tam pisze w jakimś mało popularnym frameworku, w dodatku już tak jakby martwym a ponieważ wydziwianie jest sprawą powszechną, to się można przyczepić choćby do słabej architektury FW, w tym dużej ilości staticów i singletonów.

Oczywiście wszędzie wszyscy zachłystują się tylko Symfony 2, ciekawe jak długo to potrwa, biorąc pod uwagę Laravel 5. Narazie jakoś widzę mało ofert pracy.
Praktyka - bierzesz repo nieszczęśnika pokazujesz mu je, i pytasz: a jak z tego Twoim zdaniem zrobić reaktywną aplikację?

Jak wyżej. Jakie statystycznie są szanse że potencjalny junior ma o czymś takim pojęcie?

Adrian Stolarski

Wypowiedzi autora zostały ukryte. Pokaż autora

konto usunięte

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Ja liznąłem podstawy OOP i wszedłem od razu we Frameworka - nie widziałem sensu tkwienia w "pure OOP", gdy tak naprawdę najwiecej uczymy się programując aplikacje - potrzeba wiedza przychodzi naturalnie , jak już kolega Darek wspomniał .
Robert P.

Robert P. Senior PHP Developer

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Jest sens iść w OOP chyba, że lubisz podejście wynalezienia koła na nowo. Poza tym znając wzorce programistyczne, łątwiej można nazywać problemy i rozmawiać z innymi deweloperami.

Temat: Pytania na rozmowe kwalifikacyjnej - Junior PHP Developer

Jakie są zarobki Junior PHP Developer?



Wyślij zaproszenie do