Wpis z mikrobloga

Mireczki, w nast środę mam rekrutację do firmy na stanowisko web deva. Chciałem Was prosić o jakies przykładowe pytania rekrutacyjne. Wiem, ze tego masa w necie ale chciałbym przeczytać od Was parę pytań jakimi WY byście próbowali mnie zgnoić ( ͡° ʖ̯ ͡°). Zakres głównie to JS i angular.
Za każde pytanie daję


#javascript #rekrutacja #angularjs #programowanie
  • 56
Nie jest poprawny. Powinniśmy wpierw zrobić przypisanie cyfry/numeru do zmiennej a nast, gdy już posiada prototyp, zabrać się za konwersję na string. Moja propozycja: var number = 2; number.toString();


@vanot: nie, chodzi o 2..toString - jak ktoś już tu pisał.

A i jeszcze - co to jest hoisting - podaj przykład.
@edgar_k:
@vanot:
Co Wy robicie z tymi rzeczami jak "2..toString()"? Uczycie się tego wybiórczo, jako ciekawostek / pod testy, czy naprawdę ogarniacie taki poziom syntaktyczny? Zdarzyło Wam się oglądać prezentację w stylu "wat?" i samodzielnie potrafić odpowiadać na pytania i WTF-y które widzicie po raz pierwszy?

Pytam to jako ktoś, kto regularnie układa testy rekrutacyjne i siedzi w syntaktyce. Nie zadaję jednak pytań o "2..toString()". Nie zadaję pytań o
Nie spodziewałem się takiego odezwu o tej godzinie :D Dzięki wielkie!
@saxovic:
1. 0.3 z wieloma zerami i liczbą na końcu ze wzgledu na brak precyzji dla floatów w JSie?
2. Wywoływanie się eventu na każdym rodzicu elementu aż do samej góry DOMu
3. == to płytkie porównanie bez sprawdzania typów zmiennych, === sprawdzanie wraz z typami zmiennych
4. var user = null; Jak ją przypiszemy.
5. destruktory, generatory, interpolacja stringów
To niespecjalnie jest praktyczne i przydatne, szczególnie dla pierwszego lepszego Janusza Angularowego. Ludzie mają większe problemy z tłumaczeniem dużo bardziej fundamentalnych i przydatnych rzeczy.


@Sh1eldeR: jasne, ze pytanie o 2..toString() nie jest decydujace. Ale dobre. Bo po pierwsze - sprawdza, czy ktoś zna szczegóły języka. Albo, czy chociaż zna ciekawostki - to tez sporo może o człowieku powiedzieć. Pozwala też trochę bardziej się kandydatowi wypowiedzieć.
8. co to jest closure?

9. co to jest 'strict mode'?


@vanot: 5,8,9 można by trafniej odpowiedzieć (lub w przypadku 9 cokolwiek odpowiedzieć), pytanie dodatkowe, który lvl?
@Tr0jan:
Po pierwsze: większość ziomków najwyraźniej nie zna poprawnych odpowiedzi, czy chociaż nie stosuje się do nich w praktyce. Większość kodu frontendowego to syf.

Po drugie: doceniłem te otwarte pytania dopiero gdy zacząłem startować do rekrutacji do najlepszych teamów w Londynie. Teraz sam ich używam. Bo wiesz co? SPOSÓB odpowiadania mówi o doświadczeniu. To pytanie jest dobrym wyjściem do sprawdzającego dialogu.

"To pakuj tu, to pakuj tam" to nie jest jakaś
@Sh1eldeR: to bardzo ciekawe pytanie a sprowadza się do dziwactwa parsera i tego że puste klamry {} nie sa konstrukcją jednoznaczną.

W tym wyrażeniu: [] + {} mamy "pusta tablica" + "pusty obiekt". Tablica nie jest liczbą więc + oznacza tu konkatenację jako łańcuchy znaków, pusta tablica jest konwertowana do pustego ciągu znaków, pusty obiekt do stringa "[object Object]" więc ich konkatenacja to również string "[object Object]"

Natomiast w wyrażeniu {}
Po co właściwie mamy architekturę warstwową? Jakie znasz architektury warstwowe? Czy tylko MVC, bo o tym trabią? Czy znasz cokolwiek innego -- bo faktycznie czytałeś o architekturach.


@Sh1eldeR: tylko widzisz - @vanot pytał o pytania ze stricte JS - dla mnie pytania o wzorce czy arachitektury, generalnie zasady dzialania, sa ogolnie testem z wiedzy developera jako takiego.
Wiec wszyscy skoncentrowali sie na pytaniach o jezyk - i tyle.
Jesli ktos umie
@edgar_k:
Miało być też o Angularze. Pojawiło się coś o DI -- słusznie. To, o czym wspomniałem, tj. kwestie architektoniczne, są w ng szalenie ważne. A że ktoś powiedział, że "za prosto" (tylko czemu większość ludzi nawet tego nie ogarnia, patrząc na ich kod?), pokazałem, jak można dalej pociągnąć za język, jeśli kandydat jest dobry.

Jak jest, nie będzie czerpał wiedzy tylko z tutorialów Angulara. Tym bardziej, że architektura w aplikacjach
@Sh1eldeR: Popieram

Zauwazylem tutaj pytanie - Jak dziala dependancy injection ?
I odpowiedz - Pozwala na izolację partii kodu w celu późniejszego wstrzyknięcia jej jako argument innego modułu/partii kodu.

Wszystko fajnie ale co ta odpowiedz oznacza ? Nic. Ktos moze sie wykuc na pamiec jakiejs regulki i zarecytowac.

Lepiej pytanie zadac w formie:
- Czy uzywales dependancy injection ?
- W jakim projekcie, w jakim przypadku?
- Jakie sa twoje odczucia
@sakfa:
Świetnie -- pominąłeś bodaj tylko jeden (na pół) istotny krok.

[] jest konwertowane najpierw do pustego stringa (""), dopiero potem ten string jest konwertowany do 0.

Proces jest dość zagmatwany. W tym momencie odpalam wspomniane, ostateczne źródło -- formalną specyfikację języka http://es5.github.io/:

W definicji operatora:
http://es5.github.io/#x11.4.6
widzimy, że wykonujemy abstrakcyjną operację ToNumber. Podążamy za nitką:

http://es5.github.io/#x9.3
Tablica to obiekt, więc obowiązują nas operacje z ostatniego wiersza tabelki. Najpierw ToPrimitive, potem
PS. Tylko bez obaw. O ile mi wiadomo, nikt w Polsce nie wymaga na rozmowach surfowania po specyfikacji i tak szczegółowej wiedzy.

Chciałem tylko pokazać, jak bardzo można się zagłębić, gdy ktoś jest w temacie i wykracza poza ciekawostki zasłyszane na prezentacjach czy blogach (jak na ironię, nawet te prześmiewcze prezentacje zawierały same w sobie błędy!). Tj. gdy ktoś faktyczine czyta gramatykę języka i specyfikację.
To, o czym wspomniałem, tj. kwestie architektoniczne, są w ng szalenie ważne. A że ktoś powiedział, że "za prosto" (tylko czemu większość ludzi nawet tego nie ogarnia, patrząc na ich kod?), pokazałem, jak można dalej pociągnąć za język, jeśli kandydat jest dobry.


@Sh1eldeR: nikt nie twierdzi, że nie są. Ale nie łapią się do kategorii "testu z języka" - bo języka nie dotyczą. Czy powinny być częscią interview? Jak najbardziej. Czy
Czy powinny trafić do kategorii "znajomość JS" - nie.


@edgar_k:
Oczywiście. Architektura != język. W mojej ściągawce na rozmowy rkerutacyjne mam osobny dział "architektura" czy "inżynieria oprogramowania". Ale nie uważam, żeby temat kategorii był specjalnie ciekawy.

OP pytał o pytania dot. języka ORAZ Angulara. Do pogłębiania tych drugich (niekoniecznie nie tych pierwszych) nadają się pytania ogólne o architekturę.