Frontend fejlesztő interjú kérdések
Interjúztatni nem könnyű, hiszen az interjúalanynak nem csak a szakmai tudását kell figyelembe venni. Az Arkon tavalyi kérdőíve például olyan volt, hogy csak nagyon kevesen tudták hibátlanul kitölteni, így az is kijött, hogy a kudarcot hogyan éli meg valaki, stresszhelyzetben hogyan viselkedik. Darcy Clarke is egy ilyen kérdéssort rakott össze – a legtöbb választ illik ismerni, amit nem ismertünk eddig, annak meg érdemes utánaolvasni.
A frontend fejlesztőknek összeállított kérdések között csupa gyöngyszemeket találni, melyek jól jönnek akkor is, ha interjúkérdéseket állít össze valaki, hát még akkor, hogyha állásinterjúra készül.
Néhányat kiemelnék:
- Van Twitter accountod? – lehet hülyén hangzik a kérdés, de mi is azt figyeltük meg, hogy az aktív Twitter felhasználók kommunikatívabbak, az újdonságok és trendek iránt sokkal fogékonyabbak, mint akik nem használják a szolgáltatást, ez pedig egy nagyon fontos szempont.
- HTML 5 esetében mire jók a "data-" kezdetű attribútumok? – érdemes tisztában lenni azzal is, hogy a jQuery pontosan hogyan kezeli ezeket a tulajdonságokat.
- Mi az a closure és hogyan/mire célszerű használni? – hát még ha valaki azt is tudja, hogy a háttérben hogyan működik! :)
- Mikor használunk
document.write()
-ot? - soha. - Kalóz vagy nindzsa? – a kő-papír-olló már nem menő!
Ti milyen interjú kérdéseket tennétek fel, tudtok hasonló listákat egyéb területekhez (backend fejlesztés, üzemeltetés, tesztelés stb.)?
■
Pont most használtam a
Ez a kalóz vagy ninja teljesen beteg :D
Nem élesben is gáz
Igazából nem sűrűn használok
Én a firebug és a FirePHP
Használok firebug-ot, ha erre
szerk:
Utánanéztem, érdekelne, hogy mi az az extra funkció, ami miatt nélkülözhetetlen. :D
Mondjuk például használsz egy
Ezek szerint, ha a kezedbe
--------
Sose értettem minek debugger meg FirePHP a php-hoz. Gyönyörűen megmondja mi a baja, vagy az ember képébe, vagy a logba. Persze olykor szívat, olyankor is ki lehet ám íratni sok dolgot. Pl. erre van a logolás, a html comment, a headerbe is szinte azt küldesz amit akarsz.
Ajaxos alkalmazás
A "csomó idő" kb 5 sec
A FirePHP segítségével
Pár nappal ezelőtt
Nekem fejlesztés közben a
Ehhez pont elég a net
Egyébként bizonyára sok emberkének hasznos, és használja is, akinek az. Azonban nem vennék fel olyan programozót, aki egy bizonyos eszköz meglététől függően tud programozni.
Más meg nem jelentkezik...
Mindent lehet sarkosítani. Sose egy eszköztől függően tud valaki/nem tud programozni, hanem ezek a hatékonyságnövelés célozzák. Bár én a google előtti időkben tanultam a programozást, mégse sírom vissza az online referencia, a stackoverflow és az PHP IDE előtti időket, ahol már a syntax highlightra is mindenki habosra verte, mert micsoda nagy dolog volt. Sőt nem is mennék már olyan helyre, ahol nincs lehetőség a megszokott eszközökkel/módszerekkel dolgozni.
Nem attól leszel fasza gyerek, hogy valós időben dekódolod fejben a mátrix folyamot. Ha te úgy vagy hatékony, akkor úgy vagy. Ha valaki a FirePHP-val az, akkor meg azzal. Ezektől függetlenül lehetsz őstehetség és Gáz Géza is.
+1
...olyan helyre, ahol
Egyiket sem mondtam, és ezek közül egyik sem igaz. Kifejezetten jó körülmények vannak, mindent megkap a fejlesztő amit igényel a kényelmes és hatékony munkavégzéshez. Legyen az szoftver, vagy hardver.
Akkor most magamat idézem:
Látom nehezen megy a szövegértés, így fordítom: Ha tetszik, és hasznosnak találod, használd.
És újra magam idézem:
Azaz nem kell kőbaltával barlangfalra vésni a programot, de, ne jelentsen már problémát, ha valamit olyan helyzetben, környezetben kell megcsinálni, ahol nem áll minden megszokott dolog rendelkezésre.
És most idézem amire az előző mondatot írtam:
És most te jössz. Ülj le szépen, és olvasd el újra az összes általános iskolás kötelező olvasmányt, majd írj róla olvasónaplót, hogy megtanuld értelmezni a szöveget.
Valóban nem attól, de függjünk már ennyire az eszközöktől! Ha valaki nem tudja ugyanazt leprogramozni FirePHP és IDE nélkül (persze lassabban), amit azzal, akkor nem neki való a szakma. Akkor tanuljon valami mást. Én is használok sok dolgot, kiegészítőt, de nem esek kétségbe, ha valamit úgy kell megcsinálni, hogy nincs esetleg. Nem programozok vi-ben, de előfordul, hogy bizony szükség van rá, hogy valamit úgy csináljak meg, mert mondjuk olyan jogosultsági beállítások vannak, amik megnehezítenék az sftp-t, de ssh-val és sudoval meg simán szerkesztek. Egy 50-100 soros kódért meg nem fogok 6x jogosultságot állítani, meg másolgatni.
Bocsánat
Ugyanakkor ha a szövegértésemmel baj van, akkor visszahivatkoznék az idézeteidre, és telefonos segítséget kérnék a helyes értelmezésben.
kontra
"Azonban nem vennék fel olyan programozót, aki egy bizonyos eszköz meglététől függően tud programozni."
Meglátásom szerint a két dolognak semmi köze egymáshoz. Az első az akarásról szól, a másik a tudásról. Tény, hogy ha az akarás tudással is párosul, abból csak jó dolgok születnek. Na jó, az atombomba kivétel :D De itt most nem erről van szó.
A tévedés és a szövegértési probléma jogát mindenesetre fenntartom, nem vagyok mindentudó, komoly esély van rá, hogy én értelmeztem félre a szövegeket. Ez esetben kész vagyok egy kijelölt célpont mellett találkozni a 42 szűzzel. :D
De mindenféle korteskedés nélkül, pusztán átérezve Nova76 mondanivalójának kvintesszenciáját, úgy vélem, hogy ő csupán abbéli érzését próbálta kifejezésre juttatni, hogy eddig ő a ekével túrta a földet, de aztán kapott egy szép traktort, és ezért bátorkodott megjegyezni, hogy ő biza' traktor nélkül inkább elmegy almát szedni, de újra ekével nem fog többet földet túrni. Csuhajja :)
Szerintem. De tényleg, ha belegázoltam és/vagy hatáskörtúlléptem, akkor bocsánat.
Ez esetben kész vagyok egy
:D :D :D
???
Egyébként - szerintem - az igazság inkább a te oldalad felé van, de ti tudjátok (és szerintem nem voltál sértő sem).
Fogjuk be a teheneket, aztán
Egyébként én is vele értek egyet, az alapelvek sokkal fontosabbak, mint az, hogy éppen milyen szoftvert használsz.
Ebben az esetben elnézést
Szívjuk majd el a békeszüzeket valamikor almakaszálás után a szántóföldön! :D
Részemről nincs harag
+1
Bölcsebb...
Backend-et jobban szeretem,
There's actually nothing
Nem jó
Nem, szöveg kiírására sem túl praktikus, eléggé bad practice. Ha a HTML dokumentum már betöltődött, akkor pl. törli az oldalt. Ragozhatjuk még, de ahogyan nem használunk <table>-t layoutra, úgy nem használunk document.write-ot sem.
Hát igen, ez már tényleg
Így van
:-)
(Nem hinném hogy ne lennék fogékony az újdonságokra, és kommunikatív is vagyok, látod, ide is posztoltam :-)
;-)
Sarokpont
Azt hiszem kód
Inkább CRUD generátornak
Ha egy sitebuilder lenne
Szerinted a sitebuilder
Eddigi tapasztalataim szerint a sitebuilder feladata odáig terjed ki, hogy fogja felvágja HTML-be az designer terveit. Vagyis többnyire lorem ipsumokkal telepakolt HTML fájlokat kapok. Ezek között lesz táblázat,form és lista, és szét tudom kapni annyira, hogy akármennyi oldalt le tudok belőle gyártani. Általában van egy header, vannak jobb, esetleg bal oldalon dobozok és van a tartalom doboz és van lábléc. Általában ezekből áll egy oldal. Ami rám tartozik backend fejlesztőként, az többnyire a tartalom rész.
Lépjünk tovább, legyen egy egyszerű feladat, a regisztráció. Regisztráció általában egy form. De lehet több regisztrációm, például cégeknek, partnereknek és végfelhasználóknak. Mindegyiknek más más mezőket kínálok fel. Sőt nemcsak mezőket hanem kapcsolt táblák mezőit is. Ezt nálam egy form osztály végzi, ahol a formnak nyilván van formatter osztálya is. Ezt a részt átvállalhatja a sitebuilder is, de ez már bizony PHP és nem HTML. Természetesen az is egy állapot, hogy Ő elkészíti a formokat htmlben, csakhogy nekem van egy generátorom, ami a táblakapcsolatok alapján elkészíti a baseform osztályt, ahol az összes mező fel van fűzve egymás mögé. Egy konfigurációs fájlban pedig be tudom állítani hogy melyik form osztály jelenítse meg az aktuális formot. Így néhány származtatás és azokban a származtatott osztályokban egy useField paranccsal felsorolom a kívánt mezőket, vagy épp beágyazott formokat.
Ezzel szemben egy sitebuildernek ugyanez mitől lenne könnyebb? Ügye egy csapatban vagyunk, attól hogy a munka nála csapódik le, a csapat nincs előrébb.
Neki egyszerű dolga van, amikor egy másik projekten másik ötlettel áll elő és ami eddig dív volt, az mostantól p elem lesz. Ha ezt teszi, akkor nekem minimum egy form formatter osztályt kell feleslegesen kreálnom. De milyen megvilágosodásból adódik az, hogy amire eddig egy div megfelelt, az mostantól már csak p elemmel jeleníthető meg?
Rosszúl csinálod
Ahhoz, hogy egy dizájnból valaki HTML + CSS párost gyártson, már egy Photoshop is elég. Persze a minőség az közel sem lesz ugyanaz, mintha valaki értő kézzel megcsinálja, de van akinek megteszi...
Ha Te azt mondod, hogy dolgozzak azokkal a "Lorem ipsum dolor" szövegekkel tarkított elemekkel, amiket a dizájner beleszórt (amikor már az is eleve probléma, hogy a dizájner nem kapott alap adatokat a dizájnhoz) a feldarabolandó dizájnba, akkor te nyilván számolsz azzal is, hogy a dizájn közel sem fogja azt a képet tükrözni, amit az alkotója, és a megrendelője elképzelt.
És nyilván azzal is, hogy _neked_, aki backend fejlesztőnek vallja magát, még sokkal több munkaóra lesz kiegészíteni, vagy módosítani a CSS paramétereket.
Szerény véleményem szerint, ha valaki tisztességes, és jól összerakott sitebuildet akar, akkor az nem áll meg ott, hogy X, vagy Y elvégezte a rászabott feladatot, hanem a project végéig együtt kell működnie a "csapatnak".
Az meg egy elég szép kis vágyálom, hogy "egyszer megcsinálom, aztán soha többé kell hozzányúlni..." Ilyen egész egyszerűen nincs. :)
Az a bajom hogy mindketten
Mitől lesz hatékonyabb a cég, ha a sitebuilder feladata lesz a megjelenés a projekt végéig? Tehát az én általam használt (Symfony által kreált) formok nem használhatóak. Tehát a templatek generálásáról nem is beszélhetünk. Hogy megy ez nálatok? Pedig általában egy form nem szokott túl bonyolult lenni, csak egy alkalmazásban van vagy 50-100 vagy több.
Az előre gyártott komponensek meg már tényleg betesznek egy zabolátlan sitebuildernek. Azokhoz általában van egy csomó elkészült template is. Most azokat is átírogatja?
Ilyet nem is állított senki. De épp ezért nehéz ezt a sitebuildernek megoldani. De ügye nem azt nehéz megoldani, hogy van egy div, amiben van a label és az input mező és ezt szépen egymás alá leírjuk egy konfigurációs állomány szerint? Szépen jelölve (class, id) hogy mi van benne a divben. Az a form elem szépen formázható. Ezen egyszer és mindenkorra túl lehet tenni magunkat. Mint ahogy azon is, ha ezt egy accordion vagy egy tabos megjelenítéssel csoportosítjuk. Ezt nem kellene minden egyes projektnél külön legyártani. Most teljesen mindegy, hogy a sitebuilder gyárt külön másikat, vagy én készítek külön másik template generálót. Az azért elvárható hogy egy projekten belül a formok legalább hasonlítsanak egymásra a felhasználó szemével.
A javascript sem hiszem hogy mindig rá tartozna. Most vegyünk egy autocompletert. De ne egy egyszerűt, hanem mondjuk töltse ki a teljes formot. Például egy szállodai szoftver, aminél a név kiválasztásakor a törzsvendég/elutazott vendég adatbázisból felkínáljuk a vendég összes adatát. Most nekem egyszerűbb kitennem magát a törzsvendég objektumot a templatebe, ahelyett hogy létrehozok valami tömböt. De nyilván a törzsvendég objektum nem fogja tartalmazni a teljes adatmennyiséget, esetleg lesznek kapcsolt adatok, tehát nekem úgymond a szájába kell rágnom hogy mi micsoda. Egy form sem feltételemül abból áll, hogy elemeket jelenítek meg, hanem lehet hogy az aljában egy log rész van, ahol leírom hogy eddig kik azok, akik módosították a record adatait. Na most oda megint kinyomni a sitebuildernek az adatokat egy tömbben, hiszen a log többnyire tartalmaz kapcsolt adatokat is. Semmivel nem vagyunk előrébb, ha én gyártom le a tömböt, és Ő templatet, ahelyett hogy tömbgyártások helyett mindjárt a templattel foglalkoznék. Ráadásul valami másik nyelven és templatekezelővel (smarty?)?
Tehát a példánál maradva, mit vár a suitebuilder a regisztrációs formnál a backend fejlesztőtől? Szerintem, amire nekem szükségem van, az egyrészt név szerint a tartalom, másrészt amire neki, azok a kapcsolt entitások. Tehát egy tömb valahogy így:
név => Kis Pista
Cim => Budapest
kedvenc szine => 12
És ügye kellene egy másik tömb, a színek:
11 => Sárga
12 => Piros
És mondjuk a cím közé legyen beszúrva a log, az még egy tömb (az első tömbben?):
Név => Admin János
módosítva => 2011-12-31
Mivel a megjelenítésért Ő felel, gondolom hogy sorrendbe is majd Ő rakja a színeket név szerint vagy bármi szerint. Meg nyilván a tömb is általa kerül megfelelő sorrendbe. Én arra vagyok kíváncsi hogy hol nyeri a csapat azt a sok időt, ha mégis Ő csinálja? Én azzal hogy kiteszem ezeket a tömböket már mínuszban vagyok az idővel. de nyilván erre is írhatok egy generátort és akkor ugyanott vagyok. De Ő hol van előrébb? Pláne hogy abból indulunk ki hogy nincs kész templateje, hiszen össze vissza cserélgeti a html elemeket.
Persze tudom hogy hol nyerünk időt. Ott, hogy önmagát nem szívatja meg az állandó változtatásokkal. :-)
Azon gondolkozz el, hogy
Szerintem
1. megvan a "barebone" site, ami csupán az adatokat köpi ki.
2. megvan a dizájn.
3. jön a sitebuilder, és ebből a kettőből összegyúrja a végleges oldalt.
Lehetséges visszacsatolások:
a) a dizájn egyes elemei nem megvalósíthatók
b) a dizájn egyes elemei nem értelmezhetők.
c) a dizájn és a kapott adatmennyiség sehogy sem összeegyeztethető.
Mint az látható, ha a dizájner sem kapja már meg a szükséges infókat, akkor csak szivatja az őt követő kollégát, és viszont...
Egy jó frontendes -ugyancsak szerintem- jól bánik a kliens oldali javascripttel is, szóval azt sem lenne szabad levenni a válláról.
Persze simán lehet, hogy valaki lerövidíti a dolgokat egy saját, vagy mások által készített css rendszert használva, és nem kell mindent újraírni, az idő nekem eddig azt igazolta, hogy ahány oldal, annyi eltérő igény, és lehetőség.
Sitebuilder / frontend fejlesztő
Az előttem szólók leírták a
A magam részéről az XML + XSLT párost tudom ajánlani, mert többek között backend és frontend oldalon is fel lehet használni, azaz nem kell kétszer dolgoznod, ha szeretnéd a rendszeredet ajaxosítani.
Divat
- JavaScript: https://github.com/schmittjoh/twig.js
- PHP: http://twig.sensiolabs.org/
Vagy szinte bármilyen nyelvhez a Mustache:- http://mustache.github.com/
Bár volt már egy projektem, ahol szükség volt rá, de praktikusan elég ritkán kell olyan template engine, ami mind a két oldalon működik.Divatos alatt a népszerű, az alap problémákon felül a friss trendekre, problémákra is választ adó megoldásokat értem.
Divat
Ha valami nem divatos, akkor azt inkább ne használjuk, mert szükségszerűen rossz?
Ki mondja meg, hogy mi a divat?
Követni kell-e a divatot?
Mi van akkor, ha az aktuális divat hülyeség?
Ha nem követed a divatot, akkor hátrány ér?
Lehetnek-e önálló gondolataid?
Mi van akkor, ha az ügyfeleidnek nem a divat szerint, hanem az igényeikre kínálsz megoldásokat?
Én tényleg nem értem mi
Ezzel még nagyon messze vagyunk attól hogy egy form adatait megjelenítsük. Aztán a users honnan kerül oda? Tőlem, a backend fejlesztőtől, az tiszta sor. De honnan tudja hogy én úgy fogom hívni? El kell mondjam neki? Ráadásul az előző példámnál maradva a user.color.name fogja visszaadni a kedvenc színét? Na azt találd ki! :-) És ha több van neki? Azért ez egy nagyon szoros munkakapcsolatot kíván. Vagy valami template kezelő IDE is kell, olyan ami felkínálja ezeket a változókat. Anélkül szinte használhatatlan.
miközben egy javascript
A CSS és a Javascript is azért kerül külön fájlba, hogy ne keveredjenek a különböző funkciók. A html-lel az a baj, hogy még egyben vannak az adatok és a megjelenítéshez szükséges információk (gondolj itt a rengeteg plusz divre, ami a grafika miatt kell), a sablonrendszerek arra valók, hogy ezt különválasszuk.
Csapatban
Miért ne lehetne benne i18n? Csak meg kell hívni egy függvényt a szöveggel, és ezt szinte minden sablonozórendszer tudja. A mustache alatt ezek a lambda függvények. És természetesen smarty alatt is van ilyen. Nem kell azt gondolni, hogy a frontendes / sitebuilder az nem lenne képes alapvető parancsokat meghívni.
Mivel legelőször is dokumentálnod kell a projektet, mielőtt elkezded, nem kell elmondani neki, elég ha elolvassa a dokumentációt, hogy mit hogyan fog megkapni.
Sablonkezelő rendszerekkel Dunát lehet rekeszteni, egyeseknek van IDE támogatásuk, másokhoz csak kódszínezés létezik.
Nem gondolnám, hogy használhatatlan, legfeljebb kicsit többet kell gépelni, de a dokumentáció mindig sokat tud segíteni, hogy mit is várjon az aktuális sablonban.
Csak meg kell hívni egy
Nem értettél meg, nem az a gondom, hogy nem lehet benne, hanem hogy amikor majd belekerül, akkor már semmivel sem egyszerűbb, sem nem kevesebb, mint PHP-val. Csak beleteszel a kódba még egy rendszert, amit vajon ki fog kihasználni? A sitebuilder? Most egy smartys sitebuilder mennyivel több mint egy PHP sitebuilder?
Az a baj hogy így sem vitatkozni nem tudunk, sem tanulni nem fogok ebből a topikból. Én próbáltam példával előjönni, Ti is tehetnétek ezt. Mondjatok példát hogy mit spórolok meg egy template kezelővel. Legyek én a templatező (4 órában) és legyek én a backend fejlesztő (4 órában). 2 x 4 órában érjem el azt, amit most 8 órában :-)
PHP template
Csapatmunka...
Természetesen
a dokumentációban az a jó,
Ha tudod hogy hívod amit keresel. De épp azt nem tudod, mert azt keresed, hogy hívják :-)
De ez ügye nem jelenti azt hogy elég 8 ember munkáját elvégezni? Akkor talán máshogy kellene felosztani a feladatokat. Például az egyik készíti a regisztrációt a másik webshopot, harmadik a webshop adminját, stb. Ráadásul 3 ember azon dolgozik, hogy a css fájlban definiált div helyett p elemet hozhasson létre a templatekben. Mert ügye a dives template már készen van, egy mozdulattal legenerálom. Csak arra a css nem húzható rá.
Ez a sablonozás gyakorlatilag
Akkor lehet értelme
Szerintem XSLT-vel meg lehet a legtöbb problémát oldani, továbbá olyan előnnyel jár, hogy az XML-ben lévő adatokat könnyebb más formátumba transzformálni.
"Akkor lehet értelme
Ha elrontja, akkor az úgyis kiderül, és vissza lehet állni az előző verzióra.
Egyébként szerintem meg lehet beszélni vele, hogy milyen függvényeket vagy osztályokat használhat, esetleg lehet egy listát készíteni erről, és a build-be betenni egy ellenőrzést, hogy tényleg csak ezeket használta e...
Volt már bárkinek problémája ezzel (nekem olyan mondvacsinált dolognak tűnik)?
Szerintem ne ragadjunk le a
Arról nem is beszélve, hogy mennyivel kulturáltabban néz ki egy normális template, mint egy "telehányt" php+html, vagy akár sok esetben jsp dzsindzsa (bár itt már azért jobb a helyzet, mint eleinte).
Bár volt már egy projektem,
AJAX?
Nem ajax
Mikor használunk
Rock Paper Scissors Spock Lizard
http://www.samkass.com/theories/RPSSL.html
Dehogynem.
:-D
/o\
Jó stressztűrő képesség
Ahogy mondani szoktam (elnézést a nyelvezetért):
Stressz teszt...
Emlékeim szerint, életemben egyetlen alkalommal jelentkeztem olyan hirdetésre, ahol ez követelmény volt.
Az interjú valahogy úgy nézett ki, hogy télen, repkedő mínuszok közepette, megjelentem a megbeszélt időpontban. (öt perccel korábban, ahogy illik)
Egy nagyméretű családi ház kb. 1.5x3m-es, fűtetlen előszobájában várakoztattak kb. húsz percen át, még leülni sem volt hova.
Végül megjelent egy általam 18-20 év körülire saccolt srác, bementünk a tárgyalóba, beszéltünk pár percet, miközben egyre hangsúlyozta, hogy a főnök egy kissé idegbeteg alak, akinek minden azonnal kell...
Hogy mindezzel a stressztűrést tesztelték vagy valóban ilyen tahó cég volt, azóta sem tudom. Viszont arra már évekkel ezelőtt is úgymond felkészítették a friss munkanélkülieket, hogy esetenként úgy tesztelik őket, hogy bunkó módon viselkednek velük az interjú előtt és alatt...
Az én tapasztalatom szerint
masik cikk
ugyanaz
Twitter
If so, who do you follow on Twitter?
Kovit, ki mást? :D
Néhány kérdés
ExtJS kérdések:
Ezeknek a számrendszeres
Amihez kellhet a 16-os, az a színátmenetek számolása, de ott meg ugyanúgy lehet 10-es számrendszert használni, és a végén konvertálni toString(16)-al. Szóval szerintem több értelme lenne egy olyan kérdésnek, hogy [255, 0, 255]-ből hogyan csinálsz "#ff00ff"-t? Persze ez csak egyéni vélemény, ti tudjátok, hogy nektek mi a fontos.
Számrendszerek
Konkrétan a te példádnál maradva én nem látom, hogy miért lenne itt a PHP-ben ennek nagyobb létjogosultsága. Szerintem a színek, színátmenetek kezelése inkább kliens oldal. :)
Szerintem sem fölöslegesek
Mi most kliens oldalról
A színváltoztatásnál js-re
Elég sok mindent bevezettek
összeadás vs. konkatenálás
A sort meglepett, valamiért
sort
meglepett, valamiért sose rendeztem számokat JS-ben :-). A számoshoz annyit, hogy kicsit erőltetett, mármint ott igen nagy bajok vannak, ahol háromféle számrendszer szerint áll elő egy eredmény, a stringes móka meg ilyenkor túl egyértelmű (aki valaha is használta aparseInt
függvényt, az nem dől be neki. illetve bedől neki, mert azt hiszi becsapós :-) )szerintem sincs
Mi fontos? :)
Ám sok esetben nem a válaszok eredményessége a fontos, hanem a megoldás megmutatása utáni reakció. Amit nem is a programozó, hanem a boss néz. Emiatt kellenek a „kekeckedő” kérdések!
És mit lehet leszűrni ebből a
Például azt, hogy hogyan
De ne legyen sok ilyen
Felvezetés
Mit lehet leszűrni?
De, hogy szakmailag mit láthatunk ezen a kérdésen? Egy másik példa, feladat ugyanaz, mi az eredmény?
Aki a fentiben is, illetve itt is hibázik az túl sokat PHP-zet és keveset JavaScript-ezet. Ami nem feltétlen baj, de ha kifejezetten JavaScript-es embert keresünk, akkor azért mégsem előny. :)
Az előző kérdésnél kétszer kellett összeadni, sokan figyelmetlenségből harmadszor is összeadnak. Mert azt hiszik, hogy a feladat „nehezén” már túl vannak. Ráadásul még PHP-ben igazuk is lenne.
Szerintem van
Ne haragudj, de a 10 perc
5 perc debug?
Ha nem ismered a nyelv korlátait, akkor nem tudsz felkészülni a szélsőséges esetekre. Ha a TDD tesztjeid a szélsőséges eseteket nem vizsgálják, akkor nem elegendő, hogy az összes teszted hiba nélkül lefut.
PHP esetén, stringet vársz valahol, használsz substr –et, felkészülsz, hogy false is lehet az érték? Vagy csak string típussal gondolkozol?
Ennek kapcsán jogos kérdés lehet egy ilyen tesztnél, hogy mi a
substr('x', -2);
kifejezés értéke? Illetve ha már frontend interjú kérdéseknél tartunk, akkor a mi a'x'.substr(-2);
értéke? Hál’Isten ez sem ugyanaz PHP és JS esetén. :)Számomra ellentmondásos, hogy valaki azt mondja, hogy a szélsőséges esetekkel minek foglalkozni, majd, hogy a hiba 5 perc alatt megtalálható.
Ha IDE-vel szerkeszted, akkor
Javascript-nél netBeans-ben sajnos nem működik a legjobban az automatikus kiegészítés, kíváncsi vagyok, hogy vajon más IDE-kben felajánl e valamit az általad említett esetnél. Ami megint csak érdekes, hogy én string darabolásra javascriptben mindig a slice-ot használom, szóval lazán odaírnám, hogy hibaüzenetet kapok. A substring-et tudtam, hogy létezik, viszont a substr-t azt nem... Szóval ezek alapján engem fel se vennétek :D (Bár lehet, hogy amúgy sem felelek meg a követelményeiteknek...)
substr
slice
többet is tud, úgyhogy én mindig azt használom.Jah, gondoltam, hogy valami
Jah, gondoltam, hogy valami
Most már megnéztem a
Régen nyúltam js-hez, úgy látszik felejtettem...
Some implementations of
Azaz az
escape
/unescape
/String.prototype.substr
/Date.prototype.getYear
/Date.prototype.setYear
/Date.prototype.toGMTString
nem az ECMAScript része, hanem amolyan kiegészítések, amiket az implementálók megvalósítottak (szinte) kivétel nélkül megvalósítottak.Ahm, szóval kevésbé veszélyes
"Számomra ellentmondásos,
Elég érdekes, ahogy kiforgatod a szavaimat... Annyit írtam, hogy szerintem a szélsőséges esetek kevésbé fontosak, ezért nem hiszem, hogy az alapján kellene felmérni valakinek a tudását, hogy mennyi szélsőséges esetet ismer, és mennyit nem, hanem az alapján, hogy mi az, amit ténylegesen tud. Legalábbis az egyetemen így vizsgáztatott a tanárok 99%-a. Volt 1-2 renitens, akit utáltak, mert ettől eltért, és úgymond "szivatta" az embereket... Megintcsak egy érdekes kérdés, hogy nekem volt olyan vizsgám, ahol csak a speciális eseteket tudtam, mert az megragadt, és ezért kaptam 4-est, viszont ha komolyabban belementünk volna az alapelvekbe, akkor akár meg is ránthattak volna...
Szóval szerintem semmi értelme ezeknek. Én inkább olyan kérdéseket tennék fel, amik úgy kezdődnek, hogy "hogyan valósítanád meg ...", vagy "hogyan tesztelnéd ...", vagy "mit csinálnál, ha ...". Az ezekre kapott válaszokból, esetleg rövid példakódokból szerintem sokkal többet le lehetne szűrni a felvételiző tényleges tudásából.
Persze ha a személyiségi jegyeit akarjátok valakinek vizsgálni, meg hogy hogyan reagál a stresszhelyzetre, akkor elismerem tényleg jó módszer a "szivatás"... A kérdés csak az, hogy ennek vajon mennyi köze van ahhoz, hogy valaki ért e egy adott szakmához, vagy sem?
Hiába értesz a szakmához a
Re. lebénulsz agyilag
Nem tudom
Értem, és ha emiatt rúgnak ki
Jó persze ez már egyéni szociális probléma témakör, ez meg nem egy pszichológiával vagy szociológiával foglalkozó fórum... :-) Azért én tanácsolnám az illetőnek, hogy keressen meg egy szakembert ezzel a problémájával, fizet x összeget, és talán megszabadul tőle egy életre...
És egy fejlesztőnél ennyire
Mert tapasztalataim szerint, a stresszes dolgok általában az üzemeltetőkön csapódnak le még akkor is, ha a programmal van gond.
Gondolj például a leadás
Én azt gondolom, hogy az
A stressztűrő képesség és egyéb személyiségjegyek mérésére pedig vannak speciális tesztek, vagy ahol arra van idő és keret, ott vannak az AC-k (assessment center). Akinél ez erős igényként előjön, annak ezt a szűrést megéri szerintem profibban csinálja. Neki is érdeke.
Én azt gondolom, hogy az
Én is ugyanezt gondolom, bár a lexikális tudás is számít, de sokkal kevésbé, mint az, hogy az ember tisztában van az alapelvekkel, ami szerint az adott szakma felépül. Régebben a lexikális tudás sokkal többet ért, a mai világban viszont nagyon sok dolgot pillanatok alatt meg lehet találni a neten, felesleges mindent fejben tartani, elég, ha tudod, hogy hol keressed, vagy milyen kulcsszavakkal jutsz el hozzá ...
+1
Konkrétan?
(a felsorolt néhány minta kérdésem alapján persze volt elméleti kérdés is, illetve az ilyen típusúak vannak többségben)
A keresd meg a tömbben egy bizonyos feltételnek megfelelő elemet, szerintem nem feladat. Ami meg feladat, az elvesz több időt. Mert azt azért továbbra is fent tartom, hogy egy óra alatt kell kihozni a legtöbbet. Ebbe nem fér bele, hogy triviális feladatot adjunk meg, hogy megnézzük, hogy az if-ben Yoda vagy nem Yoda feltételeket használ. Ráadásul teljesen lényegtelen számomra, hogy melyiket használja. :)
Illetve kérdés, hogy papíron, vagy gépnél kellene ezeket megoldani? Papíron 5-6 sornál hosszabb kódot íratni már szívatás. :)
Pár dolog, (frontend, backend
Mondjuk hogy van e globális rálátása arra, hogy miből áll egy webalkalmazás, és ő ennek melyik szeletét csinálja. Tudja e, hogy mi az, hogy verziókezelő, milyen verziókezelő rendszert használt eddig. Mik az előnyei annak, ha kliens oldalon validálsz, és mik annak, ha szerver oldalon validálsz. (Ez már kicsit beugratósabb, mert ugye szerver oldalon mindig kell.) Mi az, hogy MVC, mi az, hogy front controller, hogy zajlik egy kérés kiszolgálása. Milyen támadási módokat ismer. (CSRF, XSS, stb...) Js: mi az a closure, hogyan iterál egy gyűjteményt, milyen gyűjtemények vannak js-ben, mi az a css selector, írjon css selectort, ami kiválasztja ezeket az elemeket (html vagy xml példa). Hogyan dolgozná fel ezt az XML-t, hogy a következő kimenetet kapja. Hogyan oldaná meg, hogy egy ajax-os alkalmazásnál a vissza gomb lenyomásánál is megváltozzon az oldal, ezzel kapcsolatban milyen megoldásokat ismer, pl HTML5-ben került be egy teljesen új histroy API, előtte csak fragment-es megoldás volt. Ha már a fragment-nél tartunk, akkor mik a részei egy url-nek stb...
Igazából még ezer évig lehetne sorolni, már meguntam... Ezeknek a kérdéseknek egy jó részét meg lehet találni pl prog.hu-n, vagy stackoverflow-on, vagy akár az itteni fórumban is, szóval még csak nagy fantázia sem kell hozzá.
Ha meg nem tudja a választ az adott kérdésre, akkor mondjuk el lehet játszani vele egy olyat, hogy jó, akkor keressen rá google-ben (ehhez mondjuk olyan kérdések kellenek, amikben nincsenek benne a kulcsszavak, legalábbis nem túl sok), ezzel pl le lehet mérni, hogy mennyi idő alatt talál megoldást egy problémára.
A "hogyan oldaná meg" kezdetű kérdések szerintem azért jók, mert sok olyan kérdés van, amire rengeteg választ lehet adni. Pont ma volt egy olyan kérdés PHP-val kapcsolatban prog.hu-n, ami roppant egyszerű: van egy változód, amit egy szövegbe kell beillesztened, majd kiírnod a kiértékelt formáját a kimenetre. Na erre PHP-ban kb 10 megoldás van. Minél többet fel tud sorolni valaki, annál többet tud az adott nyelvről.
A stresszhelyzetre adott reakciót meg sokkal direktebben is lehet tesztelni. Akár ilyet is fel lehet tenni a vizsgázónak, hogy közeleg a határidő, de elmaradása van a projekttel, mit csinál, és ott van néhány válaszlehetőség. Miért gondolja, hogy az jobb megoldás, mint a többi felsorolt? stb... De akár ha a stressz oldási képességére vagy kíváncsi, akkor olyat is fel lehet tenni neki, hogy pl az egyik kollégája totál ideges, leblokkolt a stressztől, és nélküle nem tudják határidőre befejezni a munkát, mit tesz. Ha azt mondja, hogy próbálná megnyugtatni, akkor megkérded, hogy na és hogyan. stb... Az, hogy mit válaszol nagyban függ attól, hogy ő hogyan kezeli magában a stresszhelyzeteket. Nyilván olyat fog mondani, amivel önmagát is nyugtatná...
Nem lett konkrét a válaszod. :)
Eljátszottam a történetet, a leendő kolléga sosem hallotta még a deep linking kifejezést, a history szó sem jut eszébe. A következő szavakkal mahinál: browser, back button, event. Talál is rögtön egy oldalt, amelyben az onbeforeunload használatáról írnak. Szóljak neki, hogy teljesen téves, vagy készítsem el vele akkor az oldalt, ahol van Ajax hívás, írassam meg vele az oldalelhagyás eseményt és nézzük meg, hogy mire is jutott?
Eltelt 10 perc, és tényleg mire jutottam? Emiatt nem írhatom le a kollégát!
Egy triviális feladatra hozott 5 megoldást, mondjam azt, hogy ez nem elég, legalább még kettő kellene? (majd a for helyett while-t ír:) Számomra ezek nem életszerűek. Inkább rákérdezek, hogy a mi glob függvény PHP-ben? Ha nem tudja, akkor a triviális példában az egyik megoldás kimaradt volna, ha tudja, akkor örülünk. Vagy kérem, hogy az exec-hez hasonló függvényeket soroljon fel. Ha nem tud még kettőt, akkor az probléma, ha felsorol tízet, akkor az már veszélyes. :)
Persze tegyünk különbséget a Junior és Senior állások között. Juniornál teljesen más szempontok számítanak, nem baj, ha nem ismeri az OOP-t, az MVC-t, a TDD-t és a további hárombetűs varázslatokat :), ha a kérdésfelvetés után azt válaszolja, hogy örülne neki, ha ezekre látna jól működő példákat és valaki megmutatná milyen mindez gyakorlatban. Az persze bukta, ha azt mondja, hogy szerinte ezek feleslegesek. Nálam ez annyi mínuszt ér, amit a többiek sem húzhatják fel. :)
Ám a senior-nál más a helyzet! Ott profi és profi között kell választani!
A Mensa-nál is van IQ teszt, meg a nevelési tanácsadónál is, előbbinél úgy alakították ki, hogy a felső rétegnél pontos, míg utóbbinál az alsó rétegre add pontosabb eredményt. Merthogy teljesen más a cél. A leendő kolléga idejét is tiszteletben kell tartani, meg a mi időnket is. Szerintem csak a felső réteget kell nézni.
Szerintem a guglizás nem az.
Ha mondjuk adnál neki egy fix időt, hogy megkeresse. Így utólag belegondolva a google tényleg nem egy jó ötlet, mert én is néha órákat töltök vele, hogy megtaláljam a megfelelő kulcsszavakat egy témára.
És ha arra kérdezel, hogy szerinte mi a legjobb megoldás arra, hogy .png kiterjesztésű fájlokat keressen egy mappában? (Szerintem tévedtem veled kapcsolatban, túl jóindulatú vagy, mert pl jelen esetben megmondod a függvény nevét, még csak gondolkodnia sem kell a vizsgázónak...)
Teljesen egyetértek veled abban, hogy különbséget kell tenni az állás "nehézsége" (junior/senior) között és nyilván a teszteket is ezekhez kell igazítani. Valóban nem vizsgáztattam még, viszont attól még véleményem lehet a témáról (a másik oldalon már álltam elég sokat...). Szerintem meg kell adni mindenkinek a lehetőséget, hogy kibontakozzon, és a túl konkrét vagy túl szivatós kérdések ezt hátráltatják. Persze egy nehézségi szint felett valóban szükség van ezekre is.
majd biztos kiszámolom...
Válasz: A kliens majd kiszámolja. Egyébkét meg szívlapáttal kell fejbe verni azt, aki életvitelszerűen le mer írni ilyet egy működő kódba.
nem kell leírni ilyet
De mivel az ECMA kitalálta
Mégrosszabb
PS: nálam, 10.0.2 ff alatt szépen 8-at ad vissza.
PS: nálam, 10.0.2 ff alatt
Valahol olvastam annak idején, hogy a Mozilla ezúttal nem szándékozik követni a szabványt, mert kifogásai vannak ellene. (De mivel a Mozilla dokumentáció egy wiki, ezt természetesen már nem találom.) Részemről én egyetértek ezzel a szándékukkal.
parseInt
parseInt
-tel? Második paraméternek meg lehet adni a számrendszert.Esetleg nem ez a probléma? Ebben a hosszú threadben kezdek elveszni :)
Mi a probléma a
Itt már az sem ér semmit, nem
Itt már az sem ér semmit, nem
Emellett a tegnap kiegészítettem a működését: a új hozzászólások száma mellé tettem előző/következő nyilat, így „kézi” görgetés nélkül végigugrálhatóak az új hozzászólások.
(Az első új hozzászólásra pedig úgy lehet legegyszerűbben eljutni, hogy a témát a Weblabor - Hozzászólás szám által beszúrt „(xx új)” hivatkozásra kattintva látogatod meg.)
FF-ben bent van, hogy
Ehhez sajnos már nem tudok
Bár nem néztem át, de nem
Az más, az önkiel… izé…
Csak arra jó, hogy a gazda szkript ellenőrizze önmaga frissességét, értesítse a felhasználót és látogassa meg önmaga lelőhelyét. Tehát részéről a frissítés a .user.js állomány böngészőben való megnyitásából áll. Szerintem a kézi frissítés is ugyanennyi lehet.
Ahm, azt hittem valami
Ha már van Javascript...
Ha meg nincs JS, vagy le van tiltva, akkor meg a backenden kell elkapnia a validátornak, hogy ilyen értéket nem áll módjában használnia, és visszatolni egy akkora Error üzenettel, hogy az Internet kávézó túlsó sarkában is lássák :)
Na jó ez a hibaüzenetes alázás csak vicc volt. De a hibajelzés nem. A backend sose bízhat meg a frontendről érkező semmilyen adatban még akkor sem, ha az egyébként "leakalappal-kategóriás" JavaScript kód elő-validálta már azokat.
8 nem megbízható?
Akkor esetleg...
felesleges
{1}
teljesen felesleges, az az alapértelmezett.Ez hibát dobna erre: 0.5 De
De nem ez a lényeg. A feladat megoldható, ha tudjuk, hogy meg kell oldani.
Azt elmondanátok, hogy egy
parseInt illetve parseFloat
parseInt
ésparseFloat
függvényeket is használni, csak ezzel nehéz azt validálni, hogy amilyen számot a felhasználó adott, az tényleg az-e a szám, amit adni akart. Ugye a parseFloat esetén ütközhetünk számábrázolási problémákba, valamint olyan számokat is elfogad, amik valószínűleg furán néznek ki például:Jogos.
Lehet maskepp is
var test =
Igaz, csak numerikusan
tudtok hasonló listákat egyéb
Melyik Microsoft Office program lenne ön?
http://www.hrportal.hu/hr/furcsa-kerdesek-az-allasinterjun-hogyan-toboroznak-az-it-vallalatok-20120130.html