Namų darbų arba šiaip užduotys yra industrijos standartas. Gali girtis, kad moki dalykus, bet tiesa paaiškėja veikiant. Tęsiu darbo paieškos ir gavimo temą. Papasakosiu apie namų darbų užduotis kurias esu gavęs. Tuo pačiu atsakysiu į vieno skaitytojo klausimą apie užduotis.

Esu frontenderis, todėl pasakosiu apie frontenderiams duodamas užduotis. Frontendą galima skirstyti į mainly HTML/CSS rašymą ir į JavaScript'o rašymą. Manau aplikuojant į JS poziciją, užduotys tampa panašesnės į tai ką gauną backenderiai.

Okey, pradedam. Užduotys sunkėjimo tvarka.

# Sukodinti dizainą (PSD to HTML)

Aplikuojant į entry lygio darbą gausi kaip tik tokią užduotį. Gauni PSD failą, paverti jį į statišką HTML puslapį. Rezultatas turėtų būti identiškas paveiksliukui. Pats naudoju PixelPerfect Chrome'o įskiepį (opens new window). Juo tikrinuosi kaip gerai sekasi atkartoti dizainą.

Yra kažkiek kontraversijos dėl pixel perfect atkūrimo. Aš irgi manau, kad šis dalykas atgyvenęs ir dažnai neįmanomas dėl daugybės skirtingų įrenginių, ekranų, etc. Tačiau šias filosofijas pasilieku sau. Noriu įgyvendinti dizainerio užmanymą idealiai. Vienintelis tikras būdas - sukodinti dizainą pixel perfect.

Paprastai užduotis būna grynai PSD į HTML, be jokių JS ir jQuery. Taip pat gali tekti pačiam sugalvoti kaip turėtų atrodyti mobili versija. Tarkim jei dizainas bus duotas tik desktopui. Frontenderiui priklauso nusimanyti apie dizainą, bus puiki proga pademonstruoti.

# Pavyzdinė dizaino sukodinimo užduotis

Sukodinti šį dizainą (opens new window) į responsive puslapį. Užduotis kiek ilgoka. Realiam gyvenime užtektų sukodinti pirmą, antrą (viską iki video) ir paskutinę (kontaktų forma) sekcijas.

# Reikalavimai:

  • Gali panaudoti bet kokį framework'ą, pvz Boostrap ar Foundation.
  • Turi veikti ant IE8.
  • Turi turėti 3 breakpointus: telefonui, planšetei ir desktopui.

# Bonus taškai už:

  • SCSS arba LESS
  • Task automation'ą (pvz Gulp)
  • Failų paruošimą production'ui (minifikacija, gzipas, concatenation'as į vieną failą)

# Pasiimti ką nors su AJAX'u iš API

Aplikuojant į vėlesnes, ne visiškai entry levelio pozicijas, žinoti vien CSS neužteks. Teks mokėti naudotis JavaScriptu (ar bent jQuery). Dažniausia tam, kad galėtum reaguoti į vartotojo veiksmus neperkraunant viso puslapio.

Paprastai CSS žinos čia būtinos pagal nutylėjimą. Gali tekti sustailinti mygtuką ar formos laukelius. Bet daugiausia dėmesio skiriama JavaScript'ui, o ypač mokėjimui apsieiti su AJAX'u.

# Užduotis pahitinti API

Labai panašią užduotį teko atlikti pačiam. Panaudodamas Dribbble API (opens new window), sukurk nedidelį infine scroll puslapį/appsą.

# Reikalavimai:

  • Nuscrollinus iki puslapio galo, turi užsikrauti daugiau paveikslėlių (shots)
  • Galima naudoti tik jQuery tipo bibliotekas, bet jokių jQuery plug-in'ų
  • Pahoverinus, turėtų rodyti paveikslėlio pavadinimą ir autorių

# Bonus taškai už:

  • Vanilla JS
  • Paveiksliukų lazy loadinimą

Nuostabi užduotis. Paveiksliukai gražūs, reikalavimai įdomūs, galima pademonstruoti CSS, JavaScript'o ir dizaino sugebėjimus. Rekomenduoju visiems šią užduotį bent pasitreniravimui.

# Užduotis išspręsti tikrą potencialaus darbdavio problemą

Nedidelės kontoros dažnai neturės laiko galvoti užduoties. Jie tiesiog duos tau išspręsti tikrą jų problemą. Šaunus dalykas, nes aiškiai pamatysi kaip atrodys tavo kasdienybė.

# Man teko daryti:

  • drag and drop funkcionalumą admin panelei
  • ištestuoti kelis webappso modulius
  • perdaryti seną puslapį į responsive (kiek įmanoma)
  • sukarpyti emailo dizainą (šitą sugalvojau, bet tikrai gali pasitaikyti)

Darai tikrą darbą, tad labai sąžininga jei tau už tai sumoka. Šios užduotys ne retai trunka ilgiau nei išgalvoti testai.

# Visiškai teorinė užduotis

Mano mėgstamiausios ir kartu labiausia nemėgstamos užduotys. Turėjau tik vieną tokią užduotį. Jaučiausi kaip spręsdamas matematikos olimpiados užduotį penktoj klasėj. Labai įdomu, bet jos tikrai sunkios ir neaišku ar parodo mano tikrus sugebėjimus kurti web appsus.

Ko gero dar nesu pakankamai subrendęs kaip programuotojas, kad suprasčiau tokių užduočių prasmę. Panašu, kad jos duodamos atsijoti teoriškai pasikausčiusius kolegas nuo tokių kaip aš.

Tiesa, ne aš vienas kreivai žiūriu į tokias užduotis. Ši diskusija kažkiek apie tai kalba (opens new window). Galima rasti daugiau nuomonių apie sudėtingas, grynai teorines interviu užduotis.

# Ką manau apie interviu užduotis

Pakalbėjau tik apie namų darbų užduotis. Ieškodamas darbo joms išnaudojau tikrai nemažai laiko.

Užduočių buvo įdomių ir neįdomių. Kai kurios iš jų buvo per sunkios. Darydamas jas supratau, kad ten dirbti dar per esu silpnas. Kai kurios buvo tiesiog nuobodžios. Bijau, kad ir darbas tose vietose nebūtų toks pat nuobodus.

Manau reikia praktikuotis, veikti dalykus, visąlaik mokytis. Tada užduotys bus nesukios, jas atlikdamas sužinosi naujų dalykų. Net jei darbo negausi, įgysi geros praktikos veikdamas konkrečias užduotis.