Nu prea știu exact despre ce vreau să scriu aici, probabil că e o idee undeva care nu prea e cristalizată și atunci o să curga prin tot textul asta ca un ne-cristal…
Ideea (necristalizată) este că nu mai găsești programatori buni. Nu coderi d-ăia indieni pe 20 de dolari ora, ci *programatori*. Vorbesc de oameni care se pretind “seniori” și care cer 2000+ de euro fără să clipească. Ce înseamna pentru mine un programator bun? Pai e cam asa:
Tre’ să fie în stare să se descurce singur. Adică trebuie sa îi dai o problema “dă biznis” și trebuie să fie în stare să scuipe o soluție elegantă, optimă, documentată etc.
Tre’ să fie în stare să se pună în pielea clientului. Adică să nu vină cu soluții inginerești gen ca să faci un singur lucru trebuie să te plimbi prin 5 ecrane. Interfața de la Windows Phone 7.5 e ultima care îmi vine în minte acum – dacă vrei să suni pe cineva intri în call history și alegi. Ah, nu l-ai mai sunat? Ai alt ecran pentru asta. Contraexemplu – Android 4, unde suni si alegi din agenda din același ecran.
Tre’ să fie în stare să gândească global și să acționeze local. Adică să aplice soluții simple, care să rezolve problemele, dar să nu piardă din vedere unde va fi aplicația lui peste 3 ani.
(mai sunt multe din categoria “tre’ să”, dar nu aici e locul. Asta mi se pare un set de cerinte decente pentru un programator)
Sidenote: mă doar fix în cot dacă ești olimpic la informatică. Dacă nu te pricepi să lucrezi cu un client, să înțelegi ce vrea și să scrii cod “production ready” atunci diploma ta e buna de suport de pahare.
Motivele pentru care m-am apucat de debitat chestia asta sunt mai multe. În primul rând am discutat recent cu niște amici despre cum caută ei programatori și găsesc numai pleavă. Oameni care nu știu ce-i aia programare pe obiecte, oameni care nu știu să folosească limbajul de programare în care se dau boși, oameni care cer mult și știu puțin. Recent a trebuit să completez o temă pentru un interviu și, după ce oamenii m-au lăudat că m-am descurcat excelent la ea, am întrebat și eu ca prostu ce-i așa grozav, având în vedere că era ceva simplu de tot. Aparent toți zic că e simplu, doar că atunci când se trage linia 8 din 10 pică. De ce? Pentru că nu conteaza ca aplicația să meargă – asta poate să faca oricine. Contează tot livrabilul – trebuie să fie documentată, trebuie să “menționeze sursa” (da, m-am luat dupa solutia propusa de X, uite link etc.), trebuie să lase loc vizibil de îmbunătățire (loc invizibil înseamnă ca trebuie să modific cel puțin 30% din codul existent ca să pot să scriu un feature nou).
În al doilea rând sunt în situația de a repara o aplicație scrisă de alții. Dupa 20 de minute de inspectat linii de cod ca-n Matrix am decis să rescriu tot, întrucât codul existent era un bloatware nenorocit, scris fără niciun pic de considerație față de principiul KISS (sau “get things done” care vă place voua mai mult). Implicațiile însă sunt mult mai mari decât timpul meu pierdut. Problema e ca acești oameni vor avea la un momendat niște ucenici pe care-i vor învăța că “așa e bine”. Acei ucenici vor învăța și ei să scrie cod din cărți și vor da din umeri când clientul le va spune că merge prost (sau vor căuta problemele exact acolo unde nu sunt, pentru că codul lor e perfect). Uite așa, din gură în gură se va naște o generație de programatori proști, care vor cere o poală de bani pe motiv că “uite, alti programatori prosti zic ca eu sunt bun”.
Voiam să scriu ceva inteligent pe final dar mi-am pierdut ideea. In fine, vreau să zic ca bă, voi programatorii aștia vechi, crescuți cu pasiune pentru programare și cu experiență de viață nu de facultate… puneți mâna și învațați pe aștia mai tineri cum se programează, că așa ajungem să folosim aplicații de mii de euro scrise de indieni.
Happy coding.
cum adica exista programatori prosti? vaaaai
Si care ar fi solutia?