Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytania na rozmowie rekrutacyjnej
Forum PHP.pl > Inne > Hydepark
Stron: 1, 2, 3, 4, 5
alegorn
edit:
odnośnie testów - często się łapałem że funkcje wbudowane w php nie zawsze są optymalne.
za to, te bardziej pooowooolne są często poprawiane w kolejnej odsłonie php.
także wynik testów jest bardzo uzależniony od wersji php.

poza tym, używanie pętli do wszystkiego - nie jest dobrą praktyką, łatwo się zapętlić wink.gif

****************
obiecałem odpisać na pytanie jakie zadałem.

pierwszym krokiem jest założenie jakiegoś profilera dla zdefiniowania wąskich gardeł. wskazuje to nam bez zgadywania gdzie jest problem.
kolejnym krokiem - jest eliminacja wykrytych punktów.

nie można się nastawiać że to baza danych nie wydala, często okazuje się jakiś babol w kodzie.

jeśli szukamy problemów po stronie bazy danych pierwszym krokiem powinno byc uruchomienie slow loga << na serwerach produkcyjnych jest on często wyłączany z uwagi na dodatkowe obciążenie.

jeśli sprawdzimy cały kod, i jesteśmy pewni że już nic nie da się zrobić lepiej - oznacza to najczęściej że trzeba szukać rozwiązań sprzętowych - ewentualnie zmiana koncepcji w funkcjonowaniu aplikacji.

*********
najważniejszym jest sposób myślenia, a właściwie podejścia do problemu.

nie ma sensu szukanie po omacku problemu , może baza, może kod, a może coś z sprzętem, tracimy czas i zasoby.
dlatego pierwszym krokiem jest odnalezienie wąskich gardeł aplikacji.
kolejnym krokiem - szukanie rozwiązań, ale też powinno się to poprzedzić bardziej szczegółowa analizą

*******

pytanie:
odpaliliśmy na bazie danych slow loga, i w logach mamy setki, banalnych trywialnych zapytań...
gdzie leży problem ?

j.
solificati
Cytat(alegorn @ 26.07.2012, 12:10:44 ) *
pytanie:
odpaliliśmy na bazie danych slow loga, i w logach mamy setki, banalnych trywialnych zapytań...
gdzie leży problem ?

j.

ORM i n+1.

Przepraszam, nie mogłem się powstrzymać.
redeemer
Trochę offtop: Jeśli chodzi o analizę slowloga w mysql to korzystałem z http://www.maatkit.org/doc/mk-query-digest.html.
"Maatkit has become part of Percona Toolkit, and there will be no further development or releases of Maatkit separately from Percona Toolkit". Nie testowałem Percona Toolkit, ale z mk-query-digest korzystałem jeszcze 2 miesiące temu z powodzeniem.
irmidjusz
Cytat(alegorn @ 26.07.2012, 12:10:44 ) *
odpaliliśmy na bazie danych slow loga, i w logach mamy setki, banalnych trywialnych zapytań...
gdzie leży problem ?


Bo są ich setki? wink.gif
rzymek01
strzelam na brak cache'u smile.gif
alegorn
eh.
problem leży w ilości obsługiwanych wątków. czyli mniej lub bardziej od procka(czyli w większości max 8 rdzeni, wiecie dlaczego?).

na początku jest jedno zapytanie - które zjada procek i wykonuje się długo.. dochodzą kolejne wywołania tego samego, ale z innymi parametrami - i mamy ślicznie zablokowany serwer...
co znaczy długo ? na początek może to być nawet i sekunda.... przy niezłej kumulacji - żaden serwer nie będzie w stanie wytrzymać...

właśnie wtedy wszystkie kolejne zapytanie - czekają.

nie ważne czy będą typu : "select now();" będą już zapisywane do slow loga...
a jak jeszcze przekroczycie wartość graniczna query cache....

w ten sposób, po zablokowaniu procka - WSZYSTKIE kolejne zapytania oczekują, i wszystkie trafią do slow loga.. nawet najbardziej banalne. przyczyny trzeba szukać w zapytaniach blokujących..


kolejne pytanie - wynikające z powyższego :
no a właśnie, wiecie co się dzieje z serwerem, gdy zapytanie przekroczy bufor pamięci w qc ?


j.
ps - to są pytania, na które powinniście znać odpowiedz, jeśli napisaliście w CV ze znacie MySQL w stopniu bardzo dobrym... ja większość z nich miałem na rozmowie o KONKRETNĄ pracę..
nie wystarczy znać SQL, trzeba choć trochę wiedzieć w jaki sposób pracuje silnik bazy danych, serwer, system operacyjny...
redeemer
Cytat(alegorn @ 27.07.2012, 09:47:02 ) *
...
na początku jest jedno zapytanie - które zjada procek i wykonuje się długo.. dochodzą kolejne wywołania tego samego, ale z innymi parametrami - i mamy ślicznie zablokowany serwer...
...

Jedno zapytanie które zjada procek i wykonuje się długo - brak/złe indeksy, powinno się również dodać cacheowanie wyników zapytania już w warstwie samej aplikacji. To że te same zapytania blokują się wzajemnie może też świadczyć o tym, że tabela jest jest na silniku MyIsam gdzie mamy tzw. table-locking, natomiast przy InnoDb mamy lockowanie na poziomie wierszy. Wszystko zależy oczywiście od zapytania.

Cytat(alegorn @ 27.07.2012, 09:47:02 ) *
...
nie ważne czy będą typu : "select now();" będą już zapisywane do slow loga...
...

Taka sytuacja nigdy nie powinna mieć miejsca, że w slow logu masz select now(), czy nawet select 1. Sama konfiguracja bazy danych, też odgrywa dużą rolę, ale to już inna bajka wink.gif

Żeby nie offtopować to miałem okazję przeprowadzić parę rozmów, niestety głównie przez skype z kandytatami na stanowisko Junior PHP/Web developer. Poza 18 pytaniami testowymi (odpowiedzi a, b, c, d, e), głównie zerżniętymi z testów Zenda (od prostych co zwróci dany kod, po bazy danych i zaawansowanym pytaniem o referencje - tutaj trzeba było już wiedzieć, że PHP korzysta z mechanizmu lazy copy/copy on write).

Poza testem, to główne pytania, które zadałem brzmiały w sytlu:

Can you show me your portfolio?
What about template engines?
What tools have you been using for debugging frontend-related issues?
Do you have any personal projects you're currently working on?
What browser(s) are you using during development process? - tutaj najlepszą odpowiedzią jest "wszystkie" smile.gif
Can you show me some examples of your PHP code?
Are you familiar with Database optimization issues?
What skills are you most interested in improving upon?

Oczywiście pytań w rozmowie było znacznie więcej, jednak wynikały one już bezpośrednio z odpowiedzi na pytania trzonowe smile.gif
alegorn
Cytat(redeemer @ 27.07.2012, 10:27:10 ) *
Jedno zapytanie które zjada procek i wykonuje się długo - brak/złe indeksy, powinno się również dodać cacheowanie wyników zapytania już w warstwie samej aplikacji. To że te same zapytania blokują się wzajemnie może też świadczyć o tym, że tabela jest jest na silniku MyIsam gdzie mamy tzw. table-locking, natomiast przy InnoDb mamy lockowanie na poziomie wierszy. Wszystko zależy oczywiście od zapytania.


masz rację - i niekoniecznie wink.gif
wszystko zalezy od tego jakiego rodzaju masz serwisy pod opieka.
nie zawsze i nie wszędzie da się użyć indeksy. np przy zapytaniach agregujących, sumujących, zliczających ?
każde jest kosztowne, i nie da się tutaj skorzystać z indeksów. także czasem zapytanie, na nie trywialnej bazie danych (obecnie operuje na takich powyżej 1kk) - nie przeskoczysz. tutaj trzeba to inaczej zaprojektować.

co do blokowania.
nie chodziło mi o blokowanie tabeli.
chodziło mi o ilość jednocześnie wykonywanych operacji! to spora różnica. wystarczy że dasz kilkanaście ciężkich obliczeniowo zapytań - i masz spore szanse na zablokowanie bazy danych.
w 90% przypadków, albo i więcej, masz max 8 rdzeni (kwestia systemu operacyjnego - i licencji ! ) i tego nie przeskoczysz... jeśli load average na serwerze równa się/przekracza ilość rdzeni - to znaczy ze maszyna (a nie silnik) nie wyrabia...

Cytat(redeemer @ 27.07.2012, 10:27:10 ) *
Taka sytuacja nigdy nie powinna mieć miejsca, że w slow logu masz select now(), czy nawet select 1. Sama konfiguracja bazy danych, też odgrywa dużą rolę, ale to już inna bajka wink.gif


oczywiście że to nie powinno mieć miejsca, i doświadczony programista powinien to wyłapać od razu.
ale czasem, nawet trywialne zapytania lądują w slow logach..
dlatego programista powinien wiedzieć gdzie jest problem - w kodzie, w silniku bazy, czy tez to jest problem sprzętowy...

j.

ps ponawiam pytanie, choc zadam je w innej formie.
dlaczego niekiedy jest lepiej zrezygnować z query cache ? << znacie taką sytuacjęquestionmark.gif
cojack
Najciekawsze pytanie jakie dostałem na rozmowie o pracę to: "Masz kwadrat, prostokąt i okrąg. Stwórz do nich klasy i metody pozwalające obliczyć pole powierzchni i obwód". Teraz już z bagażem doświadczeń i kilkuletnim stażem, takich pytań nie zadają sad.gif Tylko trudniejsze kufa sad.gif
thek
Ja bym to zrobił w zależności od użytego silnika i zastosowania bazy. Po co mi przykładowo query cache w sytuacji gdy używam silnika typu memory i liczba dość zróżnicowanych zapytań jest duża, a tym samym prawdopodobieństwo "trafienia" w identyczne zapytanie dąży do zera. Tracimy tylko czas i zasoby bazy na przechowywanie cache'u to raz, a dwa, że czas konieczny na sprawdzenie wystąpienie zapytania też nieco spowolni całość. Zwyczajnie dane idące do cache za często by były zajęte operacjami wywalania starych i wprowadzania nowych.

W takiej sytuacji może być choćby także silnik ustawiony na archive czy blackhole. Można więc do pewnego stopnia przyjąć, że query cache ma sens w przypadku zastosowania kombinacji określonych silników oraz oczekiwanego stopnia unikatowości zapytań.

Można także ograniczyć w sytuacji, gdy używamy cache'owania wyników zapytań na wyższym poziomie w aplikacji. Wtedy bowiem nadchodzące zapytania z reguły będą unikatowe.

@cojack: abstrakcyjna klasa-rodzic Shape z abstrakcyjnymi metodami perimeter i volume oraz klasy dziedziczące po niej: Square, Rectangle i Circle to tylko jedno z kilku możliwych podejść. Ale to chyba by było najpowszechniejsze. Co do pytań, to moim zdaniem nie powinno się zadawać tylko pytań z zakresu "masz takie coś, napisz kod". Podczas moje ostatniej rozmowy na luzie, jeden z prowadzących stwierdził wprost, że nieraz są ludzie, którzy postawieni z czymś takim i kartką - legną. Ale wystarczy, że siądą do kompa z nim to jadą równo. Moim zdaniem to kwestia chyba już za dużego przywiązania do IDE z podpowiadaniem składni i funkcji języka czy frameworka. Bez tego zwyczajnie nie pamiętają kolejności parametrów czy pełnej nazwy funkcji.
alegorn
zróżnicowanie zapytań - tak, to jeden z powodów.
kolejnym jest to że w specyficznych warunkach,po przekroczeniu wartości buforu - następuje zrzut bufora pamięci na dysk.
operacja ta jest przeprowadzana z wysokim (o wiele wyższym niż jakiekolwiek zapytanie!) priorytetem.

skutkuje to że np przez minutę, dwie czy ile tam potrzeba - baza danych, a właściwie serwer całkowicie przestaje odpowiadać..

co skutkuje kolejkowaniem wszystkich zapytań, operacji itp.

jest to bardzo widoczne na wykresach np w cacti. zbyt mały rozmiar buforu, skutkuje częstymi padami serwera, zbyt wysoki - rzadszymi, ale to znów zabieramy zasoby.. (nie mówiąc ze taki kilku gigowy zrzut pamięci potrafi trwać..)
w takich wypadkach, admin wyłącza qc. serwer być może pracuje pod większym obciążeniem, ale stabilniej. (łatwiej skalować serwer, a buforowanie trzeba przenieść na inny poziom)

oki, juz was nie męczę.
ale to po części były pytania z rozmowy rekrutacyjnej....
im więcej wiem, tym bardziej się waham przed napisaniem w CV MySQL - professional

j.
irmidjusz
Cytat(alegorn @ 27.07.2012, 12:38:02 ) *
oki, juz was nie męczę.
ale to po części były pytania z rozmowy rekrutacyjnej....
im więcej wiem, tym bardziej się waham przed napisaniem w CV MySQL - professional


Nie męczysz. Akurat to było najbardziej interesujące i użyteczne, proszę o więcej takich pytań!

Faktycznie, dobrze jest zdać sobie sprawę, ile się jeszcze nie wie. Sam często mam takie refleksje. Ale myślę, że trzeba by być profesjonalistą w wąskiej dziedzinie, aby tak dogłębnie znać wszystkie aspekty sprawy. Dzisiaj developer PHP musi poznać tyle tematów i zagadnień, że jest niemożliwością być prawdziwym ekspertem w każdej dziedzinie - poza oczywiście wyjątkami, czyli wybitnymi geniuszami z IQ 150+ wink.gif

BTW te pytania odnośnie MySQL, które przedstawiłeś, to wydają mi się bardziej odpowiednie na stanowisko administratora serwera raczej, niż na programistę PHP.
alegorn
Cytat(irmidjusz @ 27.07.2012, 13:10:37 ) *
BTW te pytania odnośnie MySQL, które przedstawiłeś, to wydają mi się bardziej odpowiednie na stanowisko administratora serwera raczej, niż na programistę PHP.


admin musi znać to dogłębnie, programista musi wiedzieć ze są takie zależności.
dowiesz się o tym, jeśli będziesz optymalizował istniejący soft.
jest bardzo przydatne, projektując duży serwis - unikniesz masy pułapek w przyszłości.

te pytania były z poziomu ~senior/team leader

j.
darko
To i ja dorzucę na temat, co pamiętam jeszcze z moich rozmów o pracę sprzed kilku lat:

- (po dłuższym wywodzie na temat profilu firmy i obowiązków w dziale) Wie Pan już czym się zajmujemy w naszym dziale - jak Pan wyobraża siebie za kolejno rok, dwa i 3 lata w naszym dziale? (rozmowa po angielsku - ok 1 godz.)

- Ma Pan sytuację, w której nie potrafi rozwiązać jakiegoś problemu - co Pan robi? I dalej: czy poprosi Pan kogoś o pomoc czy będzie próbował samodzielnie rozwiązać problem?

- Mamy sytuację następującą: zgłasza się do nas klient z zasobnym portfelem i życzy sobie napisanie aplikacji desktopowej o bardzo rozbudowanej funkcjonalności, a Pan jest tym pierwszym ogniwem rozpoczynającym właściwe prace nad zleceniem - od czego Pan zaczyna? (Do odpowiedzi jestem proszony do tablicy celem naszkicowania schematu postępowania, rozmowa po angielsku, ponad 2.5 godziny)

- Gdyby miał Pan samodzielnie zaprojektować GUI aplikacji do obliczania pól powierzchni różnych figur geometrycznych - jak by Pan wymodelował obiekty tworzące to GUI w javie? (i tutaj opis dodatkowych funkcjonalności - rozmowa po ang.)

- Czy nie byłaby dla Pana problemem konieczność częstych wyjazdów służbowych? Np. ma szkolenia do Niemiec? Taki cykl trzech szkoleń po ok 6 tygodni każde, później wyjazdy co pół roku na ok. 2 miesiące do Niemiec? (rozmowa po niemiecku, następnie po angielsku smile.gif )

- Jestem arabskim szejkiem z grubym portfelem i średnio znam się na oprogramowaniu od strony technicznej - proszę mnie przekonać, że oferowane przez Pana rozwiązanie jest najwydajniejsze i najlepsze na rynku (podane też przykład zdaje się prostego sklepu do omówienia - chodziło o znajomość technik optymalizacji oprogramowania i umiejętność wytłumaczenia w prostych słowach komuś nie mającemu pojęcia - przedstawienie zalet itd.)

Bardzo rzadko zdarzały się sytuacje nieco zaskakujące, jak np. błędy w teście egzaminacyjnym (np. brakowało poprawnej odpowiedzi w treści kilku pytań) albo totalna zmiana tematu z treści czysto technicznych do kwestii zarządzania czasem pracy i stosowania przepisów bhp, po rozmowę na temat wydobycia ropy naftowej w Kuwejcie).

Adi32
@alegorn po zapoznaniu się z Twoimi postami musiałem usunąć z CV "Zaawansowany MySQL" i z początku mnie to lekko rozzłościło, jednak szybko poczułem radość na myśl ile jeszcze mogę się nauczyć.

Znasz jakieś dobre w miarę polskie źródła takiej wiedzy?
Planuje wygenerować sobie wielką bazę i poeksperymentować, myślę, że na początek najlepszy sposób na trochę doświadczenia.
strife
IMHO nie powinno sie umieszczać w CV tego jak bardzo jest się zaawansowanym. Nie my to oceniamy, chyba że jest to poparte certyfikatami to wtedy lepiej je wymienić w cv. A to dlatego, że zawsze znajdzie się ktoś lepszy od nas przy kim nasz zaawansowany MySQL dla takiego typa to poziom przedszkola.

PS. Dziękuje za powyższe wypowiedzi odnośnie firm headhunterskich, tak na marginesie smile.gif
Spawnm
@Strife, to działa w dwie strony. Jeśli ty będąc profesjonalistą napiszesz np. php 4+ i przyjdzie jakieś newsbie które uzna że zna php na 4+ bo nie uczył się tylko oop i fw (+ nie wie o istnieniu pdo, soap, orm itd) to na poziomie odrzucania cv możesz przez przypadek wylecieć za burtę bo newbie wpisze że jest również 4+ z j2ee wink.gif
Zamiast pisać zaawansowany czy jakieś punkciki lepiej napisz co w tym php(i innych językach) dobrze znasz. Osoba rekrutująca sama wstępnie oceni ile jest warta twoja wiedza na bazie tej listy.
strife
Cytat(Spawnm @ 28.07.2012, 15:31:42 ) *
Zamiast pisać zaawansowany czy jakieś punkciki lepiej napisz co w tym php(i innych językach) dobrze znasz. Osoba rekrutująca sama wstępnie oceni ile jest warta twoja wiedza na bazie tej listy.

Do tego właśnie zmierzam. Lepiej sporo technicznych terminów zawrzeć w takim cv, poprzeć je projektami które się wykonywało, a ocenę twojego poziomu zaawansowania zostawmy innym.

Nie wiem czy to jest możliwe w Polsce, ale słyszeliście o przypadkach gdzie ktoś pracował w naszym kraju jako programista, ale w firmie gdzie język angielski był obowiązkowy w sensie korzystania z niego non stop w pracy. Ostatnio się nad tym zastanawiałem, bo to by było całkiem ciekawe żyć w Polsce i mieć możliwość pracy posługując się językiem angielskim. Hm ...
Spawnm
Takie przygotowanie do wyjazdu z kraju biggrin.gif
strife
Cytat(Spawnm @ 28.07.2012, 16:19:53 ) *
Takie przygotowanie do wyjazdu z kraju biggrin.gif

Tylko ciiii biggrin.gif
irmidjusz
Cytat(strife @ 28.07.2012, 16:14:45 ) *
Lepiej sporo technicznych terminów zawrzeć w takim cv(...)


No no, a potem CV wygląda jak kod asemblera wink.gif czyli długa lista 3 i 4- literowych skrótów pisanych dużymi literami wink.gif
To będzie działać, dopóki pracodawcy się na to nie "uodpornią" tongue.gif
wiewiorek
Ja po odbyciu wielu rozmów rekrutacyjnych stopniowo modyfikowałem swoje CV - bo zawsze padały pytania co robiłem w poprzedniej pracy i jakich technologii używałem - a ile razy można o tym opowiadać? W kolejnych wersjach CV po prostu to napisałem, moje CV wydłużyło się z 1 do 2 stron, a odzew ze strony pracodawców ZNACZACO się zwiększył i nie byłem już na rozmowach pytany czym się zajmowałem i jakich technologii używałem.
Adi32
Cytat(wiewiorek @ 29.07.2012, 11:50:56 ) *
Ja po odbyciu wielu rozmów rekrutacyjnych stopniowo modyfikowałem swoje CV - bo zawsze padały pytania co robiłem w poprzedniej pracy i jakich technologii używałem - a ile razy można o tym opowiadać? W kolejnych wersjach CV po prostu to napisałem, moje CV wydłużyło się z 1 do 2 stron, a odzew ze strony pracodawców ZNACZACO się zwiększył i nie byłem już na rozmowach pytany czym się zajmowałem i jakich technologii używałem.


Podobnie u mnie - moje CV ma 3 strony. Niektórzy mogą powiedzieć, że to za dużo ale nie zdarzyło mi się jeszcze aby po wysłaniu CV nie zaproszono mnie na rozmowę.
strife
Cytat(irmidjusz @ 29.07.2012, 02:24:36 ) *
No no, a potem CV wygląda jak kod asemblera wink.gif czyli długa lista 3 i 4- literowych skrótów pisanych dużymi literami wink.gif
To będzie działać, dopóki pracodawcy się na to nie "uodpornią" tongue.gif

Ja po prostu wychodzę z założenia, że moje CV będzie przeglądała osoba, która też jest w branży.
Dlatego ułatwiając jej pracę, wypisuje mnóstwo technicznych zwrotów. Ale wszystko zależy na co człowiek się nastawia smile.gif

Cytat(wiewiorek @ 29.07.2012, 11:50:56 ) *
Ja po odbyciu wielu rozmów rekrutacyjnych stopniowo modyfikowałem swoje CV - bo zawsze padały pytania co robiłem w poprzedniej pracy i jakich technologii używałem - a ile razy można o tym opowiadać? W kolejnych wersjach CV po prostu to napisałem, moje CV wydłużyło się z 1 do 2 stron, a odzew ze strony pracodawców ZNACZACO się zwiększył i nie byłem już na rozmowach pytany czym się zajmowałem i jakich technologii używałem.

Cytat(Adi32 @ 29.07.2012, 12:25:20 ) *
Podobnie u mnie - moje CV ma 3 strony. Niektórzy mogą powiedzieć, że to za dużo ale nie zdarzyło mi się jeszcze aby po wysłaniu CV nie zaproszono mnie na rozmowę.

Też mam takie samo podejście, moje CV aktualnie ma całe dwie strony.
Jak ktoś mówi że za długie to już z góry wiem, że nie jest to firma w której chciałbym pracować.
Theqos
Ja bym poszedł w drugą stronę i w CV całkowicie zrezygnował z punktu "znane języki i technologie" i zostawił tylko "wybrane projekty i to co tam robiłem".
rzymek01
ale czemu sie ograniczać?
jeśli znasz technologię x bardzo dobrze, ale nie miałeś okazji jej wykorzystać w projekcie wpisanym do cv, to wynika z niego, że nie znasz tej technologii, a być może jest to akurat kryterium do podjęcia danej pracy smile.gif
Sedziwoj
Zacząłem czytać ten temat i co zauważyłem, że jest on bardzo rozrzucony.

Co do pytań na rozmowie rekrutacyjnej, to co mi najbardziej zapadło:
Cytat
Jesteś na bezludnej wyspie, idziesz do urzędu pracy i masz tam dwa ogłoszenia, [...] które wybierasz i dlaczego

Jedna z pierwszych rozmów, ze stresu nie przyszło mi do głowy, skąd urząd pracy na bezludnej wyspie...

Odnośnie funkcji co zwraca duplikaty z tablicy, bym użył pętli, czemu? Bo pierwsze co przyszło do głowy, napisane w ciągu 30s, a i tak pewnie do końca istnienia portalu będzie wystarczające. A wbudowane funkcje już często robiły mi dziwne niespodzianki. Nie lubię poświęcać czasu jeśli nie ma konieczności, na pewno można szybciej, lepiej itp. ale czy to się opłaca (czas to pieniądz)?
Oczywiście dobrze znać funkcje w języku, tylko że jakoś tyle programuję, a często takie problemy z danymi wynikają z rozwiązywania problemów gdzie nie trzeba.

Odnośnie pytań o bazę danych (tu konkretnie mysql, co nie było pierwotnie zaznaczone), to za przeproszeniem, ale do tego są odpowienie osoby, jak nie ma, to jak wystąpi problem w ciągu niedługiego czasu dobry informatyk znajdzie informacje jak rozwiązać. Nie tak dawno miałe taką sytuację, że osoba testująca mówi że jedna ze stron ładuje się 10s, patrzę, sql'ka tyle się wykonuje, więc optymalizacja -> ms. Po jakimś czasie (+pare set tysięcy rekordów z importu) stron >30s się otwiera, kolejna optymalizacja -> ms. Tylko, że takich sql'ek w serwisie było multum, napisanych aby działały, a tylko jedna była problematyczna, czy było sens siedzieć przy każdej? Moim zdaniem nie.

Wracając do nie równowagi tematów, częśc osób pisze takie pytania, że czuję się zielony, a częśc takie, że przypomnają mi się moje pierwsze kroki. Wydaje mi się, że szukamy różnych na prawdę prac, ciekawe jak wygląda to od zarobków, bo za przeproszeniem, 2k to ja mam stałych opłat. Dziwię się więc tym, co pracują w takim Lublinie za grosze, gdy wystarczy się przeprowadzić aby znaleźć i ciekawszą i lepiej płatną pracę. Ostatni słyszałem od osób które rekrutują, że przyszło im 4-5 na stanowiska tego typu co dla mnie, a na start odpada 2-3, czyli nie ma z czego wybierać. Więc jest miejsce aby znaleźć dla siebie kąt.

Co do stosunek firma - potencjalny pracownik, to z mojej strony jest tak, że obecnie dużo firm po prostu nie zapłacą mi tyle ile chcę, dlatego jednak dla ułatwienia oby stroną życia, fajnie jakby podali wynagrodzenie. Czasem może bym i parę k opóścił, jeśli zainteresuje mnie to co bym robił i sama firma.
Co do rozmów, na pewno trzeba uważać, aby za dużo nie powiedzieć. Bo albo wyjdzie się na takiego co oczernia poprzedniego pracodawcę (gdyby był dobry, nie zmieniał byś pracy ;] ), albo zdradzi sięza dużo informacji, a czasem nam się one na prawdę wydają nieistotne. Co ciekawe, jak w tym roku zmieniałem pracę, wyszło, że oprócz jednego razu, zawsze rozmawiałem z osobą techniczną. Co prawda za dużo nie rozmawiałem, bo w Wawie zmiana pracy dla programisty to 2tygodnie, od pierwszego CV do ustalenia warunków zatrudnienia. (podaję taki okres, bo ja i paru moich kolegów miało podobny)

Miałem jeszcze napisać o standardowych pytaniach, ale oprócz o wynagrodzenie, napisanie jakiejśc sql, czy rozwiązania zagatki logicznej niewiele przychodzi mi do głowy, są oczywiście typu "jaki był największy problem z którym się spotkałem" w odniesienie do prowadzenia zespołu, czy "jedno zapytanie czasem się wykonuje parę sekund, co może być przyczyną" ale wiecej mi nie przychodzi do głowy.
Zresztą, jak sam pytałem od strony technicznej przy rekrutacji, to CV bardziej mi się przydało jako punkt zaczepienia do rozmowy, bo sądzę że jako osoba która zna temat szybko wyłapię co dany kandydat umie, po prostu pytając się "co w tym robił", "co najbardziej się mu nie spodobało", czy "co by wolał użyć zamiat tego", bo czasem ciekawe rezultaty wychodzą. Jak ktoś umie, to mówi o innych problemach, niż jak ktoś zaczyna, a jak samemu zna się dość głęboko tematykę to wie się jak daleko sięga wiedzą. Dlatego uważam, że rozmowa jest najlepszą metodą oceny osoby na programistę, lepszą niż test, (oczywiście jeśli nie szukamy narybka), bo osoba się nie stresuje, ponieważ to jest rozmowa, a nie "pytanie" -> "odpowiedź", myśli nad tym co mówisz i musi od razu odpowiadać, bo przecież to luźna rozmowa, czemu miałby się nad czymś zastanawiać, to jakby się zastanawiał po pytanie "jak masz na imię".
Tylko przy takim podejści jest niemieżalne porównaie kandydatów i decyzja należeć może tylko do osoby co taką rekrutacje przeprowadza. Też kandydaci nie mogą powiedzieć jakie były pytania, bo każda rozmowa jest inna, zależna od doświadczenia.

Odnośnie CV, to jak było wspomniane, nie ma większego sensu podawać w jakim się stopniu zna daną technologie, bo to zależy jaką miarą mierzymy. Np. mogę napisać że znam SOAP bardzo dobrze, ale jak ktoś by poczytał jak korzysta się z niego przy różnych korporacyjnych rozwiązaniach, gdzie są osoby, czy całe zespoły, co się tym zajmują to to bdb jest śmieszne, a z drugiej strony, dla prostej synchronizacji serwisów to jest aż nad to. Dlatego fajnie jak rekruter się spyta o to jak korzystaliśmy z danych technologii, a jak tego nie robi, dobrze samemu to opowiedzieć.
Ciągle mnie zastanawia co zrobić z portfolio, bo mam, ale i tak z tego co zauważyłem nikt tego nawet nie czyta. A dodawanie w CV projektów gdzie się daną technologie wykorzystywało... to pewnie z 5stron by wyszło CV. Odnośnie stron, bo ktoś się "chwalił" ile ma, raz przyszła osoba co właśnie miała 5str. CV, czego to ona nie umiała, a jak przyszło co do czego, to dzień zmieniał kolor linka, do tego nie na taki jak trzeba (wymyślił sobie), odnośnie kodu... pozwolę sobie nie komentować.

Co do listu motywacyjnego, to sorry, ale niewiele firm z samej nazwy by powodowały że chciałbym tam pracować, więc jak firma której nikt nie zna szuka pracownika, to za przeproszeniem po co LM? To będzie ściema, zresztą, te co można by wysłać LM, to nie potrzebują, bo tych co wybiorą na rozmowę, w czasie rozmowy przedstawią czemu akurat chcą w tej firmie pracować. I na czałe szczęści coraz rzadziej proszą o LM, jak szukałem teraz pracy, to tylko w jednej ofercie na którą wyłałem CV była proźba o niego.

EDIT: przepraszam za objętość, ale jakoś lekko mi się dziś pisze.
solificati
Cytat(Sedziwoj @ 1.08.2012, 20:39:45 ) *
Ciągle mnie zastanawia co zrobić z portfolio, bo mam, ale i tak z tego co zauważyłem nikt tego nawet nie czyta. A dodawanie w CV projektów gdzie się daną technologie wykorzystywało... to pewnie z 5stron by wyszło CV. Odnośnie stron, bo ktoś się "chwalił" ile ma, raz przyszła osoba co właśnie miała 5str. CV, czego to ona nie umiała, a jak przyszło co do czego, to dzień zmieniał kolor linka, do tego nie na taki jak trzeba (wymyślił sobie), odnośnie kodu... pozwolę sobie nie komentować.

Bo ja wiem. Nazwa firmy. Trzy słowa opisujące cel/zakres działań. Trzy buzz-wordy określające technologię. U mnie działa.

Ciężko traktować poważnie człowieka, który opisuje, że programował back-end, robił front-end w js/html5 i administrował bazą danych.
Niktoś
Cytat
Ciężko traktować poważnie człowieka, który opisuje, że programował back-end, robił front-end w js/html5 i administrował bazą danych.


Jeśli ktoś programował wszystko sam -to o czym pisałeś- to nie należy traktować takiego człowieka poważnie?
Wszakże w takim przypadku należałoby pisać w CV w tym w czym się ktoś czuje najlepiej -jeśli lepiej się czuje jako front-end'owiec zamieścić to w cv, jeśli lepiej jako back-endowiec to to zamieścić, w przypadku reszty technik nadmienić ,że ma się jakieś o tym pojęcie.Zawsze to jakieś dodatkowe atuty dla pracodawcy.Ja np. jako pracodawca nie powiedziałbym ,że ten człowiek jest niepoważny.
solificati
Nie da się na poważnie robić tych wszystkich rzeczy jednocześnie. Co oznacza, że albo nie robił, albo robił w małym stopniu - tu napisał zapytanie, tutaj dodał ikonkę i to wszystko, albo pracował w źle zarządzanym zespole.
Niktoś
Cytat
Nie da się na poważnie robić tych wszystkich rzeczy jednocześnie.

Da się, tylko jednym włada się lepiej, drugą rzeczą gorzej.Należało by pochwalić się w cv w tym, w czym jesteś lepszy o reszcie napomknąć.
Ja Ciebie rozumiem, że nie możliwe jest być dobrym we wszystkim, ale jeśli ktoś np.budował strony -serwisy sam od podstaw to nie ma prawa ująć tego w CV bo będzie niepoważny?
thek
Zgodzę się z innymi. Ja dobrze się czuję na back-endzie, ale nieraz musiałem we froncie grzebać czy optymalizować sql lub samą strukturę bazy. Zwyczajnie poszerzoną mam, względem typowego back-endowca, wiedzę o tym co mogę i jak posłać oraz w jakiej formie na front, by coś tam ułatwić bądź też szybciej się z front-endowcem dogadam oraz ewentualnie mogę sam jakieś rozwiązanie mi znane zasugerować takiej osobie.
solificati
Ja mówiłem w kontekście takiego wpisu w CV:.
Firma. Serwis e-commerce i sklep internetowy. PHP, MySQL, Javascript(jQuery).

Jak ktoś napisze, że tworzył back end dla sklepu internetowego a w umiejętnościach wspomni, że orientuje się w js i sql to całkiem co innego
Adi32
Prawdopodobnie nie dostałbym pracy (którą właśnie dostałem) gdybym nie przygotował się na pytania zawarte w tym temacie smile.gif
Na ostatniej rozmowie zostałem zapytany jeszcze o "SUGAR CRM" i wiem, że mam na tym pracować.
Może trochę offtop ale wie ktoś może, skąd można zasięgnąć pożytecznych informacji na temat tego oprogramowania? Opis na wiki jest dość obszerny i wciąż nie wiem, czy jest to oprogramowanie do zarządzania klientami czy coś bardziej w stronę frameworka... Pracował ktoś z tym kiedyś?
NuLL
Sugar to CRM smile.gif Pogooglaj troche i sie ucz - niezla PHPowa krowa tongue.gif
Adi32
Kolejne, z rozmów rekrutacyjnych:

Ciekawe zadanie z ostatniej rozmowy:
Cytat
- Wytłumacz coś skomplikowanego (kilka rzeczy).

Nie byłem przygotowany i wyjaśniłem działanie indexów w MySQLu i różnice pomiędzy klasami abstrakcyjnymi a interfejsami facepalmxd.gif

Zadanie na którym poległem:
Cytat
- Opisz jeden z ostatnich problemów i sposób w jaki sobie z nim poradziłeś.

Dosłownie nic mi nie przyszło do głowy facepalmxd.gif
Co byście odpowiedzieli?

I jeszcze bardziej pytanie ogólne:
Cytat
- Czego nie umiesz a chciałbyś się nauczyć?

Poopowiadałem trochę o web serwisach i systemach B2B
!*!
Adi32 - nie chciałbyś pracować w tej "firmie", po co użerać się z takimi ludźmi wink.gif dobrze że nie zapytali w jaką stronę mieszasz cukier.

Cytat
Co byście odpowiedzieli?

Skleroza nie boli, manual też.
Adi32
Cytat(!*! @ 1.04.2013, 17:57:35 ) *
Adi32 - nie chciałbyś pracować w tej firmie, po co użerać się z takimi ludźmi ;) dobrze że nie zapytali w jaką stronę mieszasz cukier.


Bardzo ciekawa odpowiedź !*!.
Jak rozmowa się skończyła, zdziwiłem się, że to była część techniczna...

W każdym razie - nie jest to firma programistyczna ale oferuje ciekawe wynagrodzenie jak na mój region.
Pierwszy raz nie zasypano mnie tysiącem pytań technicznych w zamiast tego kilka pytań, które nie wiele mówią o mojej wiedzy.

Dlaczego uważasz, że źle byłoby pracować w takiej firmie?

Edit:
Cytat
Skleroza nie boli, manual też.

Nie rozumiem. Do tej pory nie przyszedł mi do głowy problem, który nadawałby się do opisania z ciekawym rozwiązaniem, i co do tego ma manual?
!*!
Nawet gdyby była to fabryka striptizerek, jak głosi jedna z religii, to pytania są oderwane od pionu, razem z tynkiem.
Pytasz ludzi, dlaczego nie wącha się kwiatków od spodu? Co to za pytanie:

Cytat
Wytłumacz coś skomplikowanego (kilka rzeczy).

Skomplikowanego dla kogo? Dla Ciebie, dla osoby która pytała?

Cytat
Czego nie umiesz a chciałbyś się nauczyć?

Pilotować myśliwiec.

Chyba że pytali o to wszytko z jajem, wiedząc że Cie nie przyjmą, lub że Cie biorą, a to już tak na zakończenie.

Cytat
Dlaczego uważasz, że źle byłoby pracować w takiej firmie?

Za jaką kwotę i na jakim stanowisku? Jak były takie pytania, to strzelam że "przynieś, podaj, pozamiataj"?

edycja:
Cytat
Nie rozumiem. Do tej pory nie przyszedł mi do głowy problem, który nadawałby się do opisania z ciekawym rozwiązaniem, i co do tego ma manual?

Nic. Taka, byłaby moja odpowiedź. Są ważniejsze, ciekawsze rzeczy niż pamiętanie co sprawiło mi problem, bo równie dobrze, mogło by być to coś błahego.
Adi32
Miałbym rozwijać dalej aplikacje tej firmy za niecałe 4k.
teraz mam niecałe 2k.

Pytania były jak najbardziej na poważnie.

Moim zdaniem zapowiada się ciekawie.
!*!
4k zł miesięcznie, netto? Ładny awans.

edycja:
Tylko coś mi nie pasuje... Wykładają 4k, a nie pytają o kwalifikacje, sprawy techniczne? Podaj mi ich email biggrin.gif
Adi32
Cytat(!*! @ 1.04.2013, 18:16:29 ) *
4k zł miesięcznie, netto? Ładny awans.

edycja:
Tylko coś mi nie pasuje... Wykładają 4k, a nie pytają o kwalifikacje, sprawy techniczne? Podaj mi ich email biggrin.gif

Dostałem ciekawe zadanie do zrobienia.
!*!
Jakie?
Adi32
Używając wzorca MVC, jQuery, Ajax, zrobić system artykułów.
Śmiesznie proste zadanie.
memory
Cytat(Adi32 @ 1.04.2013, 19:07:03 ) *
Używając wzorca MVC, jQuery, Ajax, zrobić system artykułów.
Śmiesznie proste zadanie.


Tak z palca na rozmowie napisałeś?
Adi32
Nie, w domu siadłem i skrobnąłem.
lobopol
Ja mam ciekawe zadanie (właściwie banalne, ale 90% programistów php będzie googlować)
masz 2 liczby:
  1. $x = 2;
  2. $y = 1;

wynik końcowy ma być
  1. $x = 1;
  2. $y = 2;


Nie wolno:
-tworzyć nowych zmiennych
-wpisywać wartości na sztywno (np. x=1; y=2)
-zmieniać typów tych zmiennych (np. zamieniać je tablice/obiekty)

Zadanko bardzo proste, jak zna się inne (starsze języki tongue.gif )
red.orel
@lobopol

XOR oraz szaleństwa optymalizacji w C?
aras785
Nie wiem czy dobrze zrozumiałem...

  1. $x = 1;
  2. $y = 2;
  3.  
  4. //rozwiazanie
  5. ++$x;
  6. --$y;
  7.  
  8. //wynik
  9. echo '$x = '.$x;
  10. echo '$y = '.$y;

!*!
Cytat
Zadanko bardzo proste, jak zna się inne (starsze języki )

A co mają do tego starsze języki? I czy te wartości nie powinny być inne/większe, tak dla "urozmaicenia" wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.