- Skillai (CSS ir HTML, šiek tiek jQuery, very basic WordPress'as)
- Sugebėjimas mokytis ir atstrigti iš sudėtingų situacijų
- Šitai pademonstruojantis portfolio
- Noras mokytis, užsidegimas ir darbštumas
- CV ir motyvacinis laiškas
Šiandien noriu jus padrąsinti imtis veiksmų. Mokytis yra šaunu ir smagu, bet mes tai darom su tikslu. Labai aiškus yra pirmas tikslas siekant programuotojo duonos yra pirmas darbas.
Apie tą magišką pirmą darbą sukasi daugiausia mano rašliavų. Jame atsidūrus šalia tikrų programuotojų, prasideda naujas pažinimo kelias. Kartu materializuojasi visos pastangos ir investicijos, gauni atpildą ir tikslas būna pasiektas. Bent jau pirmas tarpinis tikslas...
# Ar esi pasiruošęs būti programuotoju?
Jei esi kaip aš, tai kodini sau vienas, kažką darai ir nežinai ar esi pasiruošęs šuoliui į IT sferą. Šiek tiek juokingas terminas, bet atsibodo kartotis su tuo P darbu. Iš nedidelio mūsų subscriberių sąrašiuko, bent 4 esat per milimetrą nuo pirmo savo darbo.
Bet jei esat kaip aš, tikriausia vis prisigalvojat ką dar reikia išmokti, ką sužinoti ir dar krūvą priežasčių neišeidinėti iš savo komforto. Šitas įrašas skirtas visiems pasitikrinimui kaip arti esat. Noriu juo padėti suvokti, kad šiame etape yra svarbesnių dalykų už mokymąsi.
Tikriausia jau moki pakankamai. Reikia nuveikti tam tikrus darbus, kad gautum pirmą darbą. Neriam.
# 1. HTML/CSS ir šiek tiek jQuery žinių
Captain Obvious. Čia kaip teorijos egzaminas Regitroj. Jo neišlaikius negali eit pravažiavimo. Tiesiog turi mokėti kodinti puslapius.
Užtenka žinoti kaip veikia HTML ir CSS, mokėti jais pasinaudojant įgyvendinti dizainerio užmanymus. Nieko fancy, iš tikro HTML ir CSS yra ganėtinai paprasti dalykai. Reikia perprasti kaip veikia HTML išsidėstymas ir kaip su CSS pasirinkti elementus. Kaip veikia CSS Box Model'is.
Visi, kas parodė savo portfolio puslapius, šiuos dalykus suprantant ir mokat pakankamai. Dabar reikia veikti ir įgyti patirties.
# Kiek daug JavaScripto reikia žinoti?
Panašu, kad labiausia kamuojantis klausimas. Reikia daug mažiau nei tau atrodo. Dizainams karpyti tikrai nereikia daug. Pakanka mokėti naudoti jQuery pluginus ir "pakeisti mygtuko spalvą".
Jeigu moki įdėti kokį Owl Slider ar kitą pluginą, tada moki tiek kiek reikia. Taip, ilgainiui mokysies daugiau ir daugiau, tačiau dabar nori gauti pirmą darbą. Dalykai kurie tau dabar atrodo kosmosas, po pusmečio bus nuobodoka kasdienybė.
Tau visai nereikia mokėti spręsti visokius galvosūkius su JavaScriptu. Moki paslėpti mygtuką, pakeisti jo spalvą, pridėti eilutę teksto ir gerai.
Įvaldyk pirmus šešis šio neįkainojamo jutūbo playlisto tutorialus ir you're golden. Įveikdamas 7 ir 8 prisidėtum 1200 karmos taškų, o į paskutinius dabar nekreipčiau dėmesio.
# Geros JavaScript knygos (neplanuota bonusinė pastraipa)
Ilgainiui ko gero norėsi gilinti JavaScirpto žinias. Tam reikės knygų. Galiu pasiūlyti dvi tikrai geras knygas pradedantiesiems.
Pirma - Eloquent JavaScript. Ją perskaitęs ir supratęs žinosi svarbiausius JS keistumus ir ypatybes. Turiu įspėti, kad pats šią knygą skaičiau kelis kartus ir tikrai ilgai. Skaitydamas paskutinį kartą ir tai ne viską supratau. Todėl stenkis visus pavyzdžius sukodinti pats, suprasti juos, suprasti kaip jie veikia ir kodėl veikia būtent taip. O jei visko neperkąsi, skaitant dar kartą bus lenvgiau ir lengviau.
Antra - JavaScript: The Good Parts. Šią galima skaityti daug kartų. Nerekomenduočiau visiškai pradedantiesiems, nes pilna heavy pavyzdžių, kurių dar ilgai nepamatysi tikram gyvenime.
Ir sąrašiukas knygų (kartu su tinkamu sekti JS žmogumi) 12 knygų kurias turėtų perskaityti JS programuotojai. Įspėjimas: Tau tikriausia dar per anksti skaityti šitas knygas, šiuo metu jos tau neatneš labai daug naudos, pirma geriau gauk darbą ir įgauk patirties!
Iš pradžių daug svarbiau susitelkti į kruopštų ir labai tvarkingą dizainų karpymą. JavaSciprtų užtenka minimaliai, juos palik laikui kai jau dirbsi koduotoju.
# 2. Sugebėjimas mokytis ir išnarplioti pastrigimus
Kas surija daugybė programuotojo (ypač pradedančiojo) laiko? Kiek valandų kovojai su kažkokiu pastrigimu? Aš pats esu keletą valandų sedėjęs prie CSS, kol supratau, kad vis keičiu ne tą failiuką. Ir prie JS, kai dar nežinojau dalykų. Vis dar pastringu, kartais dėl žioplumo, bet dažniausia, nes dar nežinau daug dalykų. Visi kas programuoja žino tą pastrigimo jausmą.
Lygiai taip pat, kaip visi žino atstrigimo euforiją! Arba tą momentą kai plaudamas lėkštę sugalvoji sprendimą. Išsinarpliojimas iš problemų man vienas smagiausių programavimo dalių.
# Geriausias būdas - papasakok istoriją kaip atstrigai
Subebėjimą išsivaduoti iš pastrigimų ganėtinai sunku parodyti. Esu matęs greitų užduočių, kur duotas kodas su bugais ir reikia juos ištaisyti. Bet kažin ar tai atspindi kalną kantrybės, tikslingo darbo ir ryžto reikalingo išsikapanoti iš rimto strigimo.
Geriau pamėgink atsiminti atvejus kai buvai beviltiškai užstrigęs. Tada pagalvok ką darei, kad išspręstum iškilusią problemą. Kur ir kaip ieškojai sprendimo. Kokius veiksmus atlikai. Ką po ko darei? Kas padėjo rasti sprendimą. Kaip pasikeitė tavo programuotojo smegenys po to kai išsikapanojai?
Dažni interviu klausimai, kuriuose norima išgirsti transformacijos istoriją:
- Kokiu projektu labiausia didžiuojiesi?
- Kaip elgtumeis jei reiktų padaryti ką nors ko dar nesi daręs?
- Ką darai, kai nežinai sprendimo?
- Kokią didžiausią problemą esi išsprendęs?
Case studies dažnai irgi pasakoja apie susidūrimą su problema ir jos sprendimą. Pixar'o filmukai turi gerą framework'ą pasakoti apie problemą ir jos sprendimą.
let reality = dreams.forEach(persistentHardWork);
# 3. Tavo atliktų darbų rinkinys (portfolio)
Kodinimas yra ganėtinai subtilus dalykas. Dažnai labai sunku įvertinti savo lygį. Gali girtis, kad moki dalykus, bet melai išaiškėtų per greitai.
Prisipažinsiu, esu nepelnytai pasigyręs, kad moku dalykus. Iš tiesų, tikėjausi, kad greit juos išmoksiu, jei tik priims į darbą. Realybė yra ta, kad patyręs programuotojas gali tokius melus išryškinti vienu klausimu. Kartais tiesa paaiškėja vien iš to kaip ir apie ką kalbi. Tad geriausia pasilikti prie tiesos..
Norėdami parodyti savo sugebėjimus mes turim portfolio saitus. Skirtingais karjeros etapais, aš noriu ten matyti skirtingus dalykus. Pradedančiajam užtenka turėti tvarkingą, greitai veikiantį puslapį. Jame turėtų būti nuorodos bent į 3-5 skirtingus puslapius kuriuos sukodinai.
Patariu nesukti galvos dėl dizaino. Lengviausia tiesiog sukodinti rastą templeitą. Mano pirmas portfolio buvo super simple (ir su per ilgu lazyload'o delay'um), bet jo visiškai užteko gauti darbui. Svarbiausia turinys ir atlikti darbai. Net jei tavo javascripto failas atrodo taip (ištrauka iš pirmo mano portfolio):
console.log("Hello World");
//Lazyload
$("div.lazy").lazyload({
effect : "fadeIn"
});
# Keli pastebėjimai dėl portoflio, įstrigę iš skaitytų blogų
- Pridėk savo nuotrauką - suteiksi saitui asmeniškumo
- Apie tvarkingą kodą net neturėtų būti kalbos
- Prie atliktų darbų parašyk ką konkrečiai darei
- Papasakok kokias problemas išsprendei, kokių minčų kilo kodinant
- Trumpas rašinėlis prie kiekvieno itemo, kur pademonstruotum savo mintis apie kodinimą būtų super, nors ir nebūtina
Kaip matei, savo portfolio turėjau kelis saitus. Apie kiekvieną parašiau po kelis sakinius. Tie sakiniai dabar atrodo keistoki, vieno net reikšmės nesuprantu. Tačiau jais stengiausi parodyti kokias technologijas moku, kad mėgstu eksperimentuoti ir išmėginti dalykus. Kiekvienam tinka skirtingi dalykai.
Iš visiškai pradedančiojo portfolio labiausia noriu matyti, kad jis:
- Minimaliai moka HTML/CSS ir jQuery (ar kokį modernų atitikmenį)
- Nori mokytis, mokosi ir jam pavyksta išmokti dalykus
- Sugeba užbaigti darbą iki galo, nepasiduoda iškilus sunkumams
Šie sugebėjimai svarbiausi, nes darbdavys norės, kad mokytumeis greit. Jei dar pridėsi savo "atstrigimo istoriją" turėsi killer portfolio.
# 4. Noras mokytis, užsidegimas ir darbštumas
Būkim realistais - tu vos prakrapštei programavimo pasaulio paviršių. Kažką žinai, moki ir gali daugiau nei 99% likusios populiacijos. Bet iš tikro tik žengi pirmus žingsnius. Šiuo metu, daug svarbiau už tavo turimas žinias yra noras ir gebėjimas mokytis.
Pradėjęs karpyti dizainus, aš aplinkiniams sakiau, kad esu programuotojas. Tiesiog, kad būtų lengviau paaiškinti ką darau. Iš tikrųjų žinojau, kad tai ką darau nėra tikras programavimas. Dabar, kai darau vien javascriptus, jau laikau save programuotoju (sorf of). Bet vis tiek žinau, kad vis dar esu vos prakrapšęs programavimo pasaulio paviršių.
Kažką išmokti ir visą laiką daryti nesiderina su programuotojo personažu. Turi visą laiką tobulėti ir judėti pirmyn. Again, ypač jei esi tik pradedantysis. Šiuo metu tikriausia nori sugerti visą prieinamą info.
Nori išmėginti naujus dalykus. Nebūtinai frameworkus, bet gal tiesiog Flexbox'ą, gal browserio localStorage. Gal sužinojai kas yra SCSS mixinas arba funckija ir nori šiuos reikalus išmėginti.
Jei taip tai cool. Jei ne, galbūt kodinimas ne tau.
Turi matytis tavo noras programuoti ir kodinti. Keista ta specialybė, turi ją mylėti, kitaip bus labai sunku.
# Darbštumas
Apie darbštumą specialiai nutyliu iki dabar. Mano galva, jei bus noras ir užsidegimas, su darbštumu bėdų nebus. Tačiau darbštumas tave ištrauks iš vietų, kur reiks veikti nuobodžiu dalykus. Darbštumas tave išgelbės kai trumpam neteksi noro ir užsidegimo.
Kaip ir su kitais sugebėjimais, tiesa iššaiškės kalbantis. Nemanau, kad gali sufake'inti norą mokytis ir užsidegimą. Vien klausimas apie side project'ą viską parodys.
# CV ir Motyvacinis laiškas
Tavo CV dabar turi įrašus, kurie nieko nereiškia. Darbdavys jį naudos tik įvertinti, kad nesi job hopperis (nekeiti darbų kas pusmetį). Gal dar, kad pamatytų ar esi tvarkingas ir moki rašyti be klaidų.
Jei tik gali, stenkis dabartinę savo patirtį parodyti kaip naudingą programuotojo darbui. Iš patirties sakau, kad atrasti tinkamą kampą gali būti sunku. Aš pats tiesiog prisipažinau, kad dirbau nemėgiamus darbus. Kaip tik dėl to ir pradėjau mokintis programuoti, kad dirbčiau sau mėgiamą darbą.
# Motyvacinis laiškas gali tave "pramušti" į interviu
Galimybė papsakoti darbdaviui kodėl turėtų rinktis tave. Šitas rašinėlis yra ne apie tave, o apie darbdavį. Jis nori žinoti, kaip tu sugebėsi išspręsti jo turimas problemas.
Jei dar galvoji, kad gali parašyti vieną cover letter'į ir jį siųsti visiems... Well, galvok kitaip. Vienas laiškas vienam darbdaviui/vienai paraiškai.
Geriausia veikiantis man būdas yra atsakyti į darbdavio užduotus klausimus. Tiesiog imi darbo skelbimą, traktuoji kiekvieną sakinį ar sąrašo punką kaip klausimą ir atsakai į juos savo rašinėlyje.
Būna, kad reikia 12* metų patirties (* dvylika parašiau specialiai, pašiepdamas kai kuriuos skelbimus, ne klaida). Tu jos neturi visiškai. Bet iššifravęs skelbimą, numanai, kad visai tiktum jiems į komandą. Į klausimą Būtina 3 metų HMTL/CSS ir dar kokia tais patirtis atsakai, kad darydamas tuos ir tuos projektus įgavai HTML/CSS patirties ir esi tvirtai įvaldęs šias technologijas.
Numanau, kad tie skelbimai kartais būna tokie nerealistiški dėl dvėjų priežasčių. Jie nori atsikratyti nieko nemokančių, bet laimę bandančių žioplių. Arba tuos skelbimus rašo ne techniški žmonės ir nelabai supranta ką ties visi dalykai reiškia.
Sidenote. Galvoju prašyti post'ą kaip "išversti" skelbimus į žmonių kalbą ir suprasti ar esi tinkamas aplikuoti į tą darbo vietą. Kaip manai? Ar toks įrašas būtų naudingas ir įdomus? Atrašyti komentare būtų visai nais.
Taigi, atsakai į visus klausimus ir paverti tai į rašinėlį. Potencialus darbdavys paskaito. Gali labai lengvai įvertinti ar tiksi ir ar verta tave kviestis pokalbiui. Naudodamas šį būdą, jau rašydamas motyvacinį laišką jausi ar beldiesi į tinkamus vartus.
# Kvietimas veikti
Mažiausia tie minėti keturi turėtų imtis veiksmų kuo greičiau. Motyvaciją turi. Pagrindus tikrai moki. Portfolio gali susikurti arba pasitobulinti. Užsidegimo tikrai turi, bereikia CV ir laiško.
Laikas pradėti kreiptis dėl darbo. Arba toks keistą lietuvišką veiksmą "siuntinėti CV". Ieškotis darbo. Įsilieti į darbo rinką, biržą, marketą.
Aš delsiau ieškotis darbo ne bijojau pagadinti savo galimybes. Keistas bijojimas. Galvojau, kad jei dabar paaplikuosiu ir nepavyks, daugiau niekada negalėsiu kreiptis į tą kompaniją, kuri nekreipė į mane dėmesio. Nesamonė.
Jei dabar nepaims, gausi darbą kai mokėsi daugiau. Šį kartą gal dar tavo sugebėjimai nėra pakankami.
# Siuntinėdamas darbo užklausas tapsi geresniu programuotoju
Tai atsitiks netiesiogiai. Tačiau pamatysi ko tikisi darbdaviai. Galėsi daugiau ar mažiau įvertinti savo lygį.
Gi jei niekas neatrašys, vadinas kažkas dar negerai. Gal portfolio, gal ne į tuos darbus kreipiesi. O gal atrašys, bet tik tada kai jau turėsi darbą.
Tikriausia gausi užduočių. Jas darydamas išmoksi naujų dalykų. Pajausi kaip atrodo tikras dabas ir tikrų kodinimo užduočių vykdymas.
Atsitiks daugybė nuostabių dalykų, kurie padės tau labai greitai priartėti prie pirmo darbo. Kalbu iš patirties. Labiausia šitai patyriau kai ieškojau darbo patį paskiausią kartą.
Iš pradžių tikriausia taikiau per aukštai. Užduotis gavau, bet darbų ne. Tačiau bedarydamas užduotis netyčia prisidėjau į savo GitHub'ą visai įdomių dalykėlių. Tęsdamas darbo paieškas, turėjau geresnį GitHub'ą nei iš pradžių. Tai leido patekti į pokalbius, kurie prieš tai buvo nepasiekiami. Pirmų darbų negavimas man vis tiek padėjo darbo paieškose.
So.. Eik.
# Stokis ir eik ieškoti darbo
Teisingiau nesistok. Sėdėk.
- Įsijunk darbų portalą.
- Šortlistink tinkamus varianatus.
- Rašyk laišką ir prisegęs kartu su CV siųsk.
Tikrai paprasta, tikrai gausi toną naudos.
// biški lame code fun :)
while(!hasDeveloperJob) {
applyForJobs(cv, coverLetter);
}
p.s. Kažkada rašiau [kokius veiksmus gali atlikti, kad gautum pirmą darbą]({% post_url 2016-02-21-kaip-gauti-pirma-programuotojo-darba %}), būs naudinga jei neskaitei.
edit@2016-07-25:
Šįryt radau gerą rašinį apie darbo paieškas. Silicon Valley stuff, bet idėjų galima gauti ir čia. Man ypač patiko ta vieta, kur pasakoja, kad niekas nekvietė į inverviu.
Šios neišvengiamynės neminėjau įraše. Tai iš tikro yra dar viena priežastis kodėl turėtum pradėti applyint jau dabar. Treat it as a numbers game - kuo daugiau išsiųsi, tuo didesnė galimybė gauti atsakymą.
Anyway, skaitom Farewell, App Academy. Hello, Airbnb. (Part I).