Analfabetia de miercuri dimineata

Posted in 112 on March 28th, 2012 by Mihnea

Ca oricarui militian, lui Ovidiu Cucu ii place sa intocmeasca liste: liste cu norme, liste cu abateri de la norme, liste cu sanctiuni de aplicat pentru abateri de la norme, liste cu sanctionati si sanctionabili etc. De asemenea, e ferm convins ca odata intocmita, o lista trebuie lasata asa cum e; orice manipulare de lista il scoate din ale lui. Astazi el s-a decis sa redacteze o lista cu fruntasi in ale programarii si s-o posteze la avizierul ograzii, ca material de studiu pentru membrii Uniunii Tineretului Codexpert.

Ce e insa cu adevarat interesant e modul in care a luat nastere aceasta pornire. Ovidiu marturiseste ca ideea rabojului i-a venit citind o lista asemanatoare pe site-ul lec-academy.ro, un colt de internet unde niste tutorialisti intreprinzatori isi propun sa ne lumineze zilnic cu vorbe sau imagini din programare sau Microsoft Office. Sa spicuim, dara, din lista celor mai importanti 20 de programatori ai tuturor timpurilor in viziunea extrem de relevanta a acestor antrenori de secretare:

Pe primul loc este Tim Berners-Lee, care “a fost clasat pe locul ntai […] in lista Telegraph a celor 100 de marii genii.”

Ne bucura nespus sa-l vedem pe 2 pe marele programator Matt Mullenweg. Cum, nu stiti cine e Matt? E ala care a facut WordPress.

Urmeaza Larry Page care e “top 27 cei mai bogat miliardari”, precum si colegul sau Sergey, care este “top 28 cei mai bogat miliardari”.

Despre Linus Torvalds aflam ca “exista mii de variante / distributiile de servere de web Linux si multe ruleaza pe el“. Deci Linux ruleaza pe el Linux, sau pe el Linus?

Dennis Ritchie este “creatocul limbajului C si un mare dezvoltator a sistemului de operare UNIX”.

Brian Kernighan este “autorul a mai multe programe UNIX”. Sigur, orice student de la orice facultate de calculatoare este autorul “a mai multe” programe UNIX, ca doar e cursul ala de SO unde te chinuie cu asa ceva, deci locul asta ar trebui impartit de Brian cu toti studentii din toate timpurile. Cel putin eu asta inteleg din epifatul tutorialistilor.

Ken Thompson este “un pionier american in informatica, si a ajutat la crearea limbaj de programare B”. Redactorul a fost si el un mare pionier, motiv pentru care a petrecut mai mult timp la muncile patriotice decit in clasa. Asa se explica de ce nu stie cum se declina “limbaj”.

Rasmus Lerdorf “a autorizat primele 2 versiuni de PHP, si apoi a contribuit la dezvoltarea celor mai recente ale PHP. Astazi, PHP ruleaza peste 34% dintre site-urile online“. Sint curios ce cuvint era in original in engleza, de a tradus Google “autorizat”. De asemenea, daca s-ar fi pus si site-urile offline pe care ruleaza “cele mai recente PHP”, cred ca procentul ala ar fi depasit 100%.

Ca sa nu se simta singur Matt Mullenweg in lista (ala care a scris WordPress, in caz ca ati uitat deja cine e), il avem ceva mai jos si pe celebrul programator Jason Fried, a carui contributie la propasirea omenirii este un site ce “contine unele aplicatii web uimitoare“.

Alan Cooper “este numit parintele Visual Basic, deai mare parte din munca pentru Visual Basic a fost realizata de grupul intern de la Microsoft”. Chiar daca n-a muncit, aparent a fost facut parinte pentru ca “a contribuit la interfata grafica pentru sistemul API“. In caz ca nu stiti, interfata grafica pentru sistemul API este folosita pentru a realiza interfete GUI de urmarit IP-uri.

Larry Wall este S.A. Societate pe actiuni? Silviu Ardelean?

John Resig completeaza constelatia frecatorilor de text din care mai fac parte Matt Mullenweg (ala cu WordPress) si Jason Fried (ala cu site-ul de site-uri). Asta a facut jQuery, dar nu s-a multumit cu atit: el este si blogger.

Guido van Rossum este “autorul limbajul de programare Python”.

Daca vreti sa invatati programare de la oamenii care au intocmit aceasta lista, ii puteti contacta la office@leconline.ro sau direct la sediul din Strada Frumoasa. Frumoasa, da’ proasta.

PS: in ochii albastri ai lui Ovidiu, lista comite o mare nedreptate istorica omitind s-o includa pe Grace Hopper, un fel de Amelia Earhart a programarii. Chestia asta zdruncina tot fundamentul moral pe care este cladit demersul tutorialistic, deci ar fi bine sa nu-i dati crezare si sa folositi in schimb Lista lui Ovidiu cind simtiti nevoia sa va inchinati si nu stiti cui.

 

Tags: , , , , , , , , , , , ,

Interviu cu un MVP

Posted in Premiul n00bel, Regula 0 on January 10th, 2011 by Mihnea

Cindva pe la jumatatea lui 2010, un rus a insinuat pe blogul propriu ca daca nu stii sa inversezi o lista simplu inlantuita, nu esti “programator adevarat”. Blasfemia a ajuns pina la urechile lui Andrei Ignat, care a propus dezbateri pe aceasta tema in citeva forumuri autohtone de programare. Indignarea s-a raspindit ca focul printre uscaturile acestor forumuri si au urmat discutii interminabile intre tabara celor care sustineau ca sint totusi programatori, desi nu-s in stare sa rezolve aceasta problema de clasa a 5-a, si tabara celor care intrebau “cum pula mea ba?”. Mai curios e ca pina si pe forumurile fara legatura directa cu programarea s-a discutat erezia lui Vyacheslav, de exemplu aici.

Pe masura ce mintile lor greu incercate supurau cu nesimtire crescinda justificari penibile, autointitulatii “programatori practici” au pus-o de o miscare de solidaritate si in curind s-a nascut si un gest simbolic prin care simpatizantii cauzei isi proclamau apartenenta. Ca intr-un film american cu oameni ordinari care fac lucruri extraordinare, unii stilpi ai comunitatilor au facut un pas in fata si au declarat raspicat: NICI EU NU SUNT PROGRAMATOR (I broke the dam!). Din pacate, stilpilor nu le-a zis nimeni ca gesturile astea merg atunci cind declaratia e falsa, ca in cazul alora care si-au pus ecusoane cu “tiganca imputita”, sau al vacilor cu bloguri care s-au ras in cap ca sa vindece cancerul la par; in cazul de fata, declaratia nu se cheama luare de pozitie, se cheama truism.

Lunile au trecut si revolta s-a stins, dar un om a ramas marcat de evenimentele din Iunie-Iulie: Ovidiu “MVP” Cucu. La inceputul ostilitatilor, el se intreba (intr-o engleza demna de protejatul sau) la ce ar putea folosi inversarea unei liste:

Clar, baietii nu au nevoie de “kernel developers”, de “compiler designers” sau de “Ph.D. candidate” ci de inversatori de liste simple inlantuite,.Normal, ar fi destul de periculos sa angajeze unul din categoriile de mai sus pentru ca la un momentdat ar putea intreba “What the heck reversing a singly-linked list is good for?”.

Gardianul Ovidiu traieste in concret, unde lucrurile au scopuri evidente: cosorul lui Moceanu este pentru impletit cosuri, sedintele comisiei politice sint pentru critica si autocritica, iar bombeurile sint pentru pupat. O intrebare care testeaza daca subiectul e in stare sa descompuna o problema banala in pasi logici, adica daca gindeste ca un programator, nu e o chestie practica, relevanta intr-o meserie din care cineva ar putea sa se hraneasca pe sine. Codexpertul fondator nu e in stare sa scrie un while cu 4 linii in el care sa umble printr-o lista, deci intrebarea lui Vyacheslav e o deviere de la doctrina politica si o incalcare a Regulii 0, ce i s-ar fi trecut in dosar daca ar fi lucrat in uzina lui Ovidiu.

O parte insemnata din discutiile codexpertilor ajung intr-un fel sau altul la subiectul interviului de angajare, despre care atit Ovidiu, cit si ortacul pe care-l creste au opinii puternice. Mai deunazi, intr-o polemica despre ordinea invatarii limbajelor (amuzanta in sine, de altfel), Courage a venit sa-si descrie viziunea sa asupra insemnatatii C-ului, dar si esecurile personale in lumea interviurilor si gramaticii:

Pentru mine a stii C inseamna sa stii pointeri si cum sta treaba cu memoria.Si pentru asa ceva trebuie anumite carti mai speciale care studiaza in detaliu asa ceva.Zic asta pt ca unu din interviuri l-am picat ca nu am stiut anumite “smecherii” cu pointeri si unu din ele,l-am picat ca nu am stiut cum sunt asezati in memorie si cum pointeaza,era mai complicat exemplu.

Vazind aceasta, Ovidiu a simtit cum ii revine in gura gustul amar de acum 6 luni si a purces la a deplinge abuzurile savirsite in interviuri:

Din pacate in ceea ce priveste testele/interviurile, Courage are dreptate. Poti de exemplu sa dai un test pentru “experienced C++ programmer” si sa trebuiasca sa rezolvi probemutze de C-chior cu pointeri de diverse tipuri fatzaiti prin tot felul de structuri ciudate, hacker style. […] In incheiere, o inversare de lista simplu (/dublu/triplu :) ) inlantuita si alte probeme scoase de prefesori fara simt practic (ca sa pice studentii netocilari la licenta), pune cireasa pe tort. ;)

Nu conteaza ca Courage e un incepator care cu putin timp in urma intreba cum se implementeaza c_str() (si primea un raspuns magistral de la ortacul specialist in C++ si STL). Nu conteaza ca problema din interviul sau e descrisa foarte vag, dar intr-un mod care ne asigura ca dinsul nu este tocmai stapin pe subiectul foarte complicat al pointerilor. Courage n-a picat la interviu pentru ca habar n-are chestii de baza, ci pentru ca i s-au dat probleme pentru tocilari. Ca si alt dobitoc care-si dadea cu parerea pe programare.org, Gardianul Ovidiu crede ca cacatul asta trivial cu inversarea listelor e ceva ce trebuie invatat pe de rost. Fiind un imbecil sinistru, el nu vrea sa accepte ca motivul pentru care nu poate rezolva problema e incompetenta, ci incearca sa ne explice ca problema e proasta.

Ovidiu Cucu este MVP pe Visual C++.

Tags: , , , , , , , , , ,