
Turiu iš karto nuvilti – šiame straipsnyje nesiūlau jums darbo. Tačiau padėsiu pasiruošti pokalbiui, jei turite galimybę įsidarbinti. Imsime konkretų pavyzdį – ką turėtų žinoti PHP programuotojas, eidamas į pokalbį dėl darbo. Tiksliau, paimkime dar bendresnį variantą – web-programuotojas. Kam turi ruoštis, į kokius klausimus atsakyti ir kaip elgtis. Dalis šio straipsnio bus aktuali ir kitų pakraipų programuotojams, nes logika dažnai būna bendra. Taigi, norite geriau pasirodyti prieš darbdavį? Tada pirmyn prie skaitymo.
Iš karto apibrėšiu taisykles. Kalbėsime apie profesionalų programuotoją, kuris taiko į rimtą darbo vietą su geru atlyginimu. Neaptarinėsime šešiolikmečių vaikinukų, kurie tik pradeda savo kelią programavimo pasaulyje ir tiesiog turi daug energijos ir noro užsidirbti. Bet ir tiems jauniems pradedantiesiems bus tikrai pravartu žinoti kai kurias tiesas iš šio straipsnio.
Įžanga – bendrieji klausimai
Pirmieji darbdavio klausimai gali būti tokie:
– Ar jums patinka programuoti, ar tiesiog studijuojate/studijavote tą specialybę?
– Ar dirbote kur nors anksčiau, kokia jūsų patirtis, su kokiais projektais dirbote? Kodėl išėjote iš praeito darbo?
– Kodėl pasirinkote būtent PHP? Kodėl būtent web‘as? Kodėl ne taikomųjų programų kūrimas?
– Kodėl atėjote būtent į mūsų kompaniją? Ar žinote, su kokiais projektais dirbame? Kaip matote save mūsų kompanijos viduje?
Kaip į visa tai atsakyti? Siūlyčiau atsakyti nuoširdžiai ir nieko nevaidinti. Nes jei vaizduosite erelį, kuris turi raudoniolika metų patirties su visokiais projektais, nors realiai esate sukūręs tik porą mažų tinklapių, vis tiek jūsų melas išaiškės darbo eigoje, o tada jau kankinsitės ir jūs, ir darbdavys. Kita vertus, būtent šiame pokalbio etape gali paaiškėti, kad jūs netinkamas šiam darbui, ir kartais tai net yra gerai – abi pusės sutaupo laiko: darbdavys gali ieškoti kitų žmonių, o jūs – kitų darbo vietų.
Dar vienas momentas – būtent šiame etape dažniausiai stengiamasi susidaryti pirmą įspūdį apie jus kaip apie žmogų, kaip apie asmenybę: kaip jūs bendraujate, koks jūsų požiūris į darbą ir į programavimo pasaulį, kas jums labiausiai patinka programavimo pasaulyje ir t.t. Tą pirmą įspūdį vėliau pakeisti būna gana sunku.
O toliau tiesiog be komentarų užmėtysiu jus klausimais, paskirstydamas juos temomis:
Bendri klausimai apie programavimą ir serverius
– Apibūdinkite kuo smulkiau, kas vyksta nuo to momento, kai žmogus naršyklėje įveda google.com, iki to, kai naršyklė parodo puslapį.
– Ar teko dirbti su web-serveriais? Apache? Nginx? IIS? O ar teko diegti ir konfigūruoti bent vieną iš jų?
– Kam yra skirtas .htaccess failas? Kas yra mod_rewrite ir kaip jis veikia?
– Kokią interneto naršyklę naudojate savo poreikiams? O testuodamas projektus?
– Kas yra MVC? Paaiškinkite kiekvieną tos abreviatūros elementą.
PHP pagrindai
– Kokie yra skirtumai tarp PHP 4 ir 5 versijų?
– Kuo ypatinga versija 5.3?
– Kokie PHP kalboje yra duomenų ir kintamųjų tipai?
PHP profesionalus programavimas
– Su kokiomis bibliotekomis ir „frameworkais“ teko dirbti? Ne žinoti apie juos, o būtent dirbti? (Zend Framework, CakePHP, CodeIgniter ir kt.)
– Kokius esate realiai taikęs API? (Google API, Facebook API, Twitter API)
– Ar esate kūręs savo turinio valdymo sistemą? Būtent kūręs nuo nulio, o ne modifikavęs kokį Wordpress ar Joomla.
– Ar esatę dirbęs su šablonų varikliais? Kas yra Smarty, koks jo veikimo principas? Ar girdėjote apie Smarty kešavimo galimybes?
– Koks yra pats sudėtingiausias jūsų kurtas projektas su PHP?
Duomenų bazės
– Su kokiomis duomenų bazių valdymo sistemomis esate dirbęs? Tik MySQL? O Oracle? Sybase? PostgreSQL? Ar žinote jų bendrus skirtumus, kuri geresnė ir kokiuose projektuose geriausiai taikoma?
– Kas yra duomenų bazės norminės formos? Normalizacija, denormalizacija?
– Kas yra tranzakcijos, duomenų bazės procedūros, trigeriai? Kaip jie veikia?
– Jei jau dirbai su MySQL, kokie yra skirtumai tarp versijų 4.1, 5.0, 5.1.?
– Kuo skiriasi MyISAM ir InnoDB?
CSS
– Kas yra CSS ir kam jo reikia?
– Ar teko bent kartą pačiam kurti tinklapio maketą su CSS pagal duotą grafinio formato dizainą?
– Kuo CSS faile skiriasi “#my_style” nuo “.my_style”?
– Kas yra W3C standartai ir kam jų reikia?
– Parašykite HTML kodą, kuriam bus pritaikytas duotas stilius:
#my p.sel:first-line, .main li li a:hover + span
JavaScript
– Kas yra sudėtingiausia, ką jums teko realizuoti su JavaScript?
– Kas yra AJAX ir kaip jis veikia?
– Ar žinote, kas yra JQuery? Ar teko dirbti?
Gal užteks?
Na, kaip jausmas? Ar daug pavyko atsakyti tvirtai ir užtikrintai? Ne, aš nerašysiu atsakymų į šiuos klausimus, nes juos galima susirasti per Google. Tiesiog norėjau parodyti paveikslą žmogaus, kuris pretenduoja į rimtas web-programuotojo pareigas. Be abejo, ne viską iš mano išvardintų klausimų žinoti būtina, bet niekada nežinai, su kokiu projektu ar konkrečia užduotimi teks susidurti. O gal susirgs serverių administratorius, ir jums teks perinstaliuoti web-serverį, kas teoriškai neįeina į programuotojo darbą? Kita vertus, čia tik dalis visų įmanomų klausimų, gal kada prie progos pririnksiu jų ir daugiau.
Reziumė
Realiame gyvenime turbūt jums nebus užduota tokia klausimų lavina. Dažniausiai klausinėjama iš konkretaus projekto prizmės, kokio būtent programuotojo reikia ir kokių įgūdžių. Tačiau, jei norite tapti tikru savo srities profesionalu, bent susimąstykite dėl mano paminėtų skilčių, pasidomėkite, pasiskaitykite. Taip sakant, ką išmoksite – ant pečių nenešiosite.
Klausimas jums: ar jums teko dalyvauti pokalbiuose dėl darbo? Kaip realiai viskas vyko? Pasidalinkite patirtimi, gal kam pravers.




2009-09-23





Rugsėjis 23rd, 2009 11:53 am
Mano pokalbis del darbo:
Prisistatymas abieju saliu..
darbdavys- taigi, papasakok ka tu moki?
as- moku programmavimo kalbas: JavaScript, php, AJAX, taipat html ir css turinio pateikimo ir stilizavimo kalbas…
darbdavys- patirtis?
as- desimtis tinklapiu, keli projektai…
koks atlygis tave tenkintu?
as- ****
Darbdavys- kada gali pradeti darba?
as-Iskarto…
ir tada darbdavys papasakoja apie jo imones veikla, projektus ir t.t.
stai toks mano pokalbis del darbo, vyko pries kelis metus =)
Rugsėjis 24th, 2009 10:26 am
As sutinku, kad i profesionalaus web programuotojo vietą taikantis žmogus turi daugiau mažiau viską žinoti ir net daugiau, bet tai realiame pasaulyje ką galiu pasakyti iš savo patirties yra taip, kad svarbiausiai yra darbo patirtis (geras CV), bet tai kaip aš baigęs universitetą INFORMATIKOS specialybę tebedirbu Statybose, kad turėčiau pinigų savo reikmėms ir kaip į orą siūlausi įmonėms ieškančioms mano specialybės žmonių. Laiko beveik nėra nei tobulėjimui nei žinių tave dominančios specialybės gilimumui
Na bet esu optimistas ir manau, reikia vistiek siekti to ko nori ir atsiras darbdavys kuris tavimi patikės ir toliau tik savo pastangomis galėsi skintis kelią. P.S. Čia aš daugiau apie neprofesionalus, prie kurių ir save kolkas laikau 
Rugsėjis 24th, 2009 12:33 pm
Jeigu jau darbinames profesionalu programuotoju tai cia jau nebetinka imones, kurios kepa webus su CMS. Cia reiktu darbintis kur kuria sau sudetingus-unikalius sprendimus.
Is savo asmenines patirties galiu pasakyti kas svarbu:
Butinai moketi labai gerai kazkuri frameworka, tokie dalykai kaip kurimas viska savo nuo 0 cia nebetiks.
Multikalbiskumas ir jos pritaikymas(duombazeje ar kode ir panasiai).
Cachavimas(APC, Memcache, duombaziu cachavimas)
Del smarty nezinau as dirbau prie jo 2 metus ir teko paskui skaudziai jo atsisakyti pereinant prie paprasto PHP, na bet cia skonio reikalas.
Apie CSS ar JS nemanau, kad snekesit, jeigu darbdavys yra protingas sioje srityje ir zino, kad iesko profesionalo tai tokie dalykai skirti bus ne jam.
Rugsėjis 24th, 2009 6:34 pm
galvoju kaip cia gavosi kad neteko praktikoj susidurtu su “+” css selectorium, pasiziurejus
http://www.quirksmode.org/css/contents.html tapo aisku, gi dar reikia palaikyti IE6 versija…
Rugsėjis 24th, 2009 9:18 pm
Tai juk IE6 nesupranta to „+“, prie ko čia tas palaikymas?
O dėl praktikos, tai matyt nepakankamai daug dirbi su CSS jei neteko matyti arba per menka fantazija kuriant puslapio stilių…
Rugsėjis 24th, 2009 10:53 pm
Nelabai supratau ka norejai pasakyt, nesupranta, reiskiasi nenaudoju, nes reikia, jog ir ant IE6 vienodai atvaizduotu, tapati darau kitais keliais. O kam cia fantazijos reikia?
Rugsėjis 26th, 2009 5:20 pm
Na įdomūs klausimai visai ir labai smagu kad į daugumą atsakyčiau be problemų nors yra keli į kuriuos atsakyti rektų dar pasigooglinti.
Beja šiuos klausimus jau ir dirbant dažnai tenka išgirsti ar tai iš vadybininkų, klientų, kolegų.. nu gerai gal ne visiškai tokius bet tikrai labai paanšius… tai jei ir prisimeluosi per pokalbį tai manau tikrai paaiškės bedirbant
Rugsėjis 28th, 2009 12:02 am
pagal šituos klausimus ką dar reiktų pasigooglint, tai apie detalesnius skirtumus tarp mysql ir php versijų, beigi kpš tas ngix
Kovas 16th, 2010 12:33 pm
Sveiki. Aš nevisai į temą. Esu šviežias programuotojas, beveik po studijų. Tinklalapių kūrimas man labai patinka, aš į jį gilinuosi ne tik tada, kada reikia, bet ir laisvalaikiu. Tik vat aš nelabai moku užsienio kalbas, todėl nelabai suprantu anglišką php dokumentaciją, daugiausia mokausi iš pavyzdžių. Tai klausimas būtų dabar toks: ar žmogus, kuri gali gerai išmanyti tinklalapių kūrimą, tačiau jo silpnybė užsienio kalbos, gali sulaukti pripažinimo patyrusių programuotojų tarpe?
Kovas 16th, 2010 12:41 pm
Svečiui: jeigu tu gerai išmanai savo darbą, tu gali ir neišmanyti kalbų, puikus pavyzdys yra garsieji sporto treneriai, dirbantys užsienyje. Bet, kita vertus, būtent programavimo specifika yra tokia, kad reikia DAŽNAI ieškoti informacijos, skaityti forumus, aprašymus, dokumentacijas ir kt.
Konkretus pavyzdys: tau pasako - parsisiųsk naujausią PHPBB forumą ir integruok į puslapį. Ar galėtum tai lengvai padaryti, nesuprasdamas dokumentacijos? Ir tokių pavyzdžių daug.
Kitas dalykas - pažiūrėk į knygynų lentynas IT tema lietuvių kalba. Beveik nėra iš ko pasirinkti, ir viskas brangu. O būtent todėl, kad beveik visa normali ir greitai atnaujinama informacija apie programavimą yra būtent angliškai, na dar rusiškai gali nemažai surasti. Taigi, patarimas - mokytis kalbų. Bent kažkiek, daug nereikia.