Archive for December, 2007

Ce ai schimba in educatia ta?

Monday, December 31st, 2007

Discutia recenta despre educatie mi-a adus aminte de o intalnire de acum ceva vreme cu niste profesori de liceu americani care m-au rugat sa le raspund la niste intrebari. Voiau sa stie, din punctul de vedere al unui dezvoltator software, ce cred ca ar trebui invatati elevii de liceu pentru a fi pregatiti pentru o astfel de cariera. Ce cred, uitandu-ma in urma, ca a fost esential in educatia mea, ce mi-ar fi placut sa fie diferit, ce ar fi trebuit sa fie altfel?

M-am gandit mult la asta inainte sa raspund. Este un subiect care m-a preocupat de multe ori, mai ales cand eram preparator si incercam sa imi dau seama ce inseamna sa fii un preparator ideal.

Daca ar fi sa schimb orice in educatia mea, nu ar fi curriculumul. Nu ar fi nici materiile pe care am fost nevoit sa le invat, nici nivelul la care au fost predate. Nu ar fi nici metoda de invatare, fie ea bazata pe teorie sau pe practica, pe memorare sau pe rezolvare de probleme. Intr-o lume in care totul se schimba atat de repede, joburi, tehnologii, metode, analize, nu mai cred ca exista ceva batut in cuie.

Dupa multe analize am ajuns la o singura concluzie: as schimba pasiunea celor care mi-au fost profesori. Indiferent cat, cum si ce anume mi-a fost predat, totul s-a redus la un singur lucru pentru mine: cat de pasionat era profesorul de subiectul pe care il preda. Am simtit asta si ca elev dar mai ales ca profesor cand am putut sa imi dau seama cat de mult reactioneaza studentii (si de fapt orice persoana careia incerci sa ii explici ceva) la pasiune.

Singurul lucru de care a depins cu cat am ramas dintr-o materie a fost cat de mult a stiut profesorul sa imi incite curiozitatea, sa ma lase sa vad ca ii pasa si ca, indiferent de subiect, are un scop, o finalitate, un motiv pentru care este fascinant.

Si inainte sa fiti sau nu de acord cu teoria asta, luati un moment si ganditi-va bine: voi, uitandu-va inapoi, ce ati schimba in educatia voastra?

60 de secunde din viata mea

Friday, December 28th, 2007

Pentru anul care vine

Friday, December 28th, 2007

O varianta adorabila a lui “Que Sera, Sera” dintr-un anime foarte simpatic, My Neighbors The Yamadas. Un anime diferit de Miyazaki si de anime-le clasice, dar cu atat mai mult interesant de vazut.

Si apropo de anime, daca aveti ocazia, sa vedeti neaparat Tikkon Kinkreet, un anime superb de care am aflat via Kit si care m-a lasat cu gura cascata.

Sarbatori fericite tuturor

Tuesday, December 25th, 2007

Am inceput sa uit cand anume si ce anume se ureaza, nu am fost niciodata prea bun la treaba asta. Asa ca sper ca nu e nici prea devreme si poate nici prea tarziu, sarbatori fericite tuturor, Craciun fericit si tot ce va doriti in 2008.

E si Romania in frunte la ceva: matematica :-)

Thursday, December 20th, 2007

Ca tot vorbeam recent despre olimpici si pregatire in scoala, mi-am adus aminte de un link pe care un prieten mi l-a dat mai demult. Un site despre educatia copiilor din ciclul primar si de gimnaziu din America la matematica. Ghici cine apare in top printre tarile cu cel mai avansat curriculum… :-)

Image
De aici: http://www.f4ed.com/need.htm

Majoritatea tarilor de prin graficele alea sunt din fostul bloc comunist. Le-or fi ales si cercetatorii aia anume asa, dar nu pot sa nu observ corelatia intre comunism si stiintele exacte. Stie cineva de ce anume comunismul insista atat de mult pe stiinte exacte (in afara de incercarea de suprimare a religiei)?

Naivitatea ta…

Wednesday, December 19th, 2007

Mi-a placut foarte foarte mult 8 1/2, un film putin autobiografic al lui Fellini, despre regizori, arta, scopul filmului ca arta in general. Un film cu o cinematografie excelenta, cu cadre frumoase si studiate, cu fantezie si vise sau ironii subtile. Un film care mi-a placut aproape la fel de mult ca Jules et Jim, impresionant mai ales in contextul vremii la care a fost facut.

Ascultand comentariul ma jucam cu aparatul foto incercand sa imi dau seama de calitatea compozitiei transpusa in fotografie. Printre cadre am gasit intamplator si fotografia de mai jos, un critic de film incercand sa ii explice personajului Fellini ca filmul pe care incearca sa il faca este prost.

N-am putut sa ma abtin, intr-un fel ironic reprezinta foarte bine comentariile unora de pe acest blog, asa ca a trebuit sa o pun aici. :-)

2:00 am

Tuesday, December 18th, 2007

cand toata lumea doarme

Un interviu

Monday, December 17th, 2007

Ca tot vorbeam de olimpici, infoarena.ro este probabil cel mai popular site de la noi dedicat olimpicilor unde pot rezolva probleme online, se pot pregati, se fac concursuri periodice. Cosmin, autorul blogului infoarena, m-a rugat sa ii raspund la niste intrebari.

A iesit un interviu in doua parti destul de interesant, cu multe intrebari de la cum am inceput eu informatica, ce inseamna sa faci un site bun, pana la intrebari despre diferenta dintre viata de freelancer si a avea un job sau ce am invatat eu lucrand la Google. Partea intai aici si partea a doua aici.

Sexy and the city

Friday, December 14th, 2007

Ele.ro organizeaza un concurs despre cel mai sexy blogger si nimic, am aproape zero voturi. :-) Pai cum adica, inteligenta nu este sexy?

Cred ca e din cauza pozei, ar trebui sa le-o trimit pe asta de aici poate am mai multe sanse. :-)

A doua dezamagire la capitolul asta dupa ce, desi am aparut in Unica de acum vreo luna, cererile in casatorie nu au venit deloc!?

O idee buna a celor de la ele.ro, mai ales pentru ca multi dintre bloggeri au tendinta sa fie putin narcisisti si vanitosi si un astfel de concurs gadila foarte exact aceste doua trasaturi.

Dupa un post asa serios si discutat ca cel cu olimpicii mi-a venit pofta sa postez unul din asta mai light. :-)

Cine are nevoie de olimpici?

Tuesday, December 11th, 2007

De multe ori, in facultate sau in lumea olimpicilor la informatica apare intrebarea daca folosesc la ceva cursurile avansate de algoritmi si structuri de date de la facultate, sau daca premiile la olimpiada au vreo valoare. Recent vorbeam cu Cosmin despre asta, iar mai demult vorbeam cu Calin Fusu despre daca intr-adevar este nevoie ca, la nivel de dezvoltator/programator, sa ai oameni ultra calificati sau este ok si cu programatori medii.

La vremea respectiva nu am reusit sa ii raspund convingator lui Calin insa, intre timp, am ajuns la niste concluzii organizate si ceva mai argumentate. :-)

Programatorii rezolva probleme. Cel mai bun exemplu recent de probleme vizibile sunt problemele de scalabilitate pe care le-a avut trilulilu.ro. Cum nu stiu care au fost cauzele, as imparti problemele lor in mai multe categorii posibile.

1. Limitare de resurse fizice. Spatiu pe disc, banda de internet, timp de acces la disc.
Daca ai ramas fara spatiu pe disc (exemplu simplist) nici un algoritm nu te poate ajuta (cel mai probabil), asa ca un programator foarte algoritmic nu se va diferentia probabil semnificativ de un programator mai putin olimpic. Singura solutie este cumpararea de mai multe resurse.

2. Limitare de putere de procesare. Query-uri care dureaza prea mult, procesoare care stau la 100% sau RAM insuficient.
Puterea de procesare si memoria sunt consumate de cod, cod care este scris de programatori. De obicei exista tentatia subestimarii pragului de complexitate unde cunoasterea algoritmilor face diferenta, asa ca simt nevoia sa dau un exemplu pe care l-am dat recent la o intalnire FlashCodersNY: determinarea duplicatelor intr-o lista de elemente.

Sa zicem de exemplu ca, in cazul trilulilu, vor ca dintr-o lista de clipuri sa determine titlurile duplicate. Un ne-olimpic cel mai probabil va ordona lista si va vedea daca titlurile de pe pozitii consecutive sunt egale. Un olimpic iti va spune ca asta se poate face mult mai rapid cu un hash. Diferenta intre cei doi algoritmi va fi probabil de cel putin cateva ordine de marime (sper sa nu deschid o cutie a pandorei cu ce stiu si ce nu stiu ne-olimpicii, exemplul este simplist, you get the point :-) ).

Desigur, si in cazul asta ineficienta programatorului poate fi suplimentata prin cumparare de resurse. Pragmatic vorbind, costul unui programator care scrie cod (sa zicem) de doua ori mai ineficient decat ideal va fi salariul plus costul resurselor care trebuiesc cumparate pentru a suplimenta ineficienta codului. Daca programul ideal ar fi consumat resursele a 2 calculatoare, costul adaugat de dezvoltatorul slab va fi de 2 calculatoare. Daca ideal ar fi consumat 10, adaugi 10 calculatoare.

Am facut un grafic cu evolutia costurilor in functie de nevoia de scalabilitate, in contextul unui algoritm de (sa zicem) doua ori mai ineficient. In punctul A un programator slab ajunge sa coste compania la fel de mult ca un programator bun, in timp ce acesta din urma poate sa ajunga, cu aceleasi costuri, la un trafic de cateva ori mai mare.

3. Limitari date de solvabilitate. Exista anume probleme pe care pur si simplu doar oameni care stiu algoritmi le pot rezolva eficient, unde diferenta de performanta este prohibitiva inca de la dimensiuni foarte mici ale problemei.

De exemplu, drumul minim intre doua noduri ale unui graf. Un programator ne-algoritmic cel mai probabil nu va sti sa rezolve astfel de probleme si va decide ca ar dura ani si ani pentru un calculator sa gaseasca solutia. Un dezvoltator algoritmic iti va spune rapid ca asta se poate face chiar foarte usor si foarte repede.

Cand apar astfel de probleme? E drept, probabil nu in cazul trilulilu. Dar ganditi-va de exemplu la jocurile de strategie, in care trupele se muta pe harta dintr-un loc in altul printre castele, munti, dealuri si paduri.

Categoria asta de probleme nu mai poate fi rezolvata prin costuri de resurse fizice si cel mai probabil pot fi rezolvate prin schimbarea problemei. In acest caz compromisul inseamna feature-uri lipsa, specificatii diferite, comportamente diferite si asta nu mai este un compromis acceptabil atunci cand succesul business-ului tau sta in implementarea unui anumit produs intr-un anumit fel.

In loc de concluzie

Da, cel mai probabil exista categorii de produse si probleme care pot fi rezolvate fara olimpici si fara algoritmi. Mai mult, pana la un anumit nivel cunostintele unui olimpic pot fi inlocuite prin a cumpara mai multe resurse si costuri mai ridicate.

Insa de aici si pana la a afirma ca algoritmii nu sunt folositori sau ca olimpiadele nu au prea mare valoare este cale lunga.