Stare avansata de Tutorialism.

Posted in Codare cu premeditare, Premiul n00bel on March 30th, 2011 by jos8cal

El este Marian Pop si este intr-o relatie stabila cu un Mac OS X de peste 6 ani. Cind intr-o relatie anii devin unitatea de masura a tolerantei, este evident ca secretia de feromoni a crescut proportional cu durata relatiei.

Unii dintre voi or sa spuna ca o relatie sta in picioare datorita fundamentului de cunostinte comune cu care ne-am impaunat reciproc de la primele intilniri. Ei bine, nu! Relatia daca ar fi sa o reprezentam 2D ar fi o linie pe orizontala, nu pe verticala, deoarece “fundamentul de cunostinte comune” se transforma in Obicei, iar acesta stim cu totii ca e neplacut iar neplacerea se reprezinta pe orizontala. Este o enumerare. De ce credeti ca puscariasii isi numara zilele tragind linii verticale, ca mai apoi sa le taie cu una orizontala? Pentru a exemplifica moartea sperantei si nasterea Obiceiului.

Bun. Acum ca avem clar stabilite bazele vietii in doi, sa trecem sa mulam aceasta schema metafizica pe viata familiei Marian Pop OS X.

Marian se considera un geek datorita pasiunii lui pentru computere dusa la limite extreme. Dupa cum vom vedea mai jos, computerul nu pare insa sa-si aduca aminte de unde-l stie pe Marian.

El s-a decis sa programeze in C/C++, PHP si MySQL, deci este evident ca are nevoie de un Mac, ca PC-ul e pentru jocuri. S-a oprit la primul bordel Apple si a platit pentru un Mac OS X, toate serviciile incluse. G4. MILF. XCode.

Dupa cum am vazut, daca vrei doar sex de la un Mac, vei avea parte de un gay porn numit XCode. Cind esti in schimb intr-o relatie cu Mac-ul, secretia mare de feromoni emisa de dinsul va face ca experienta cu XCode sa-ti para o sansa unica in viata.

Odata ajuns applosexual, Marian a inceput sa-si filmeze orgiile cu XXXCode si sa le puna online sub forma unui Decalog speram noi.

Primul Film. Introducere in C++.

Aici se poate observa cum folosirea cuvintelor “variabile” si “using namespace std” l-ar face pe orice incepator sa se urce pe pereti de placere, neintelegind nimic dar incercind sa simta apasarea tastelor care nu se apasa pe tastatura de Mac.

Al doilea film. Structuri conditionale in C

Vizibil stresat din cauza unui algoritm, Marian isi face totusi timp sa readuca in atentia publicului recurenta tema a variabilelor. Aflam astfel ca variabilele sint niste cutii in care stocam date. Acum mai ramine sa aflam ce sint alea date. Climaxul acestui film incepe la minutul 6, cind Pauza devine subiect principal pentru 35 de secunde. Mai aflam ca

for (int a=0; a>0; a++)

il incrementeaza pe a cu a.

Daca Gaddafi si-ar fi luat gindul pentru o secunda de la lumea modei si ar fi deschis XCode, ar fi propus (te pup Silviu) ca si Marian urmatoare alternativa la scris numere pe ecran:

int a;
cin >> a;
for (int i=a; i > 2; i++){
	cout << i;
	break;
}

sau

while (a == 2){
	cout << a;
	break;
}

Al treilea film. Functii in C++.

Sau cum sa nu faci cout << 40;

int fun(int n){
	n = n + 20;
	return n;
}

int main(){
	int n=20;
	int i;
	for (i=n; i>0; i++){
		cout << fun(i);
		break;
	}
	return 0;
}

Al patrulea film.

Aici aflam ca pointerii sint ca niste muschi si trebuie sa facem zilnic exercitii pentru a-i mentine in forma. Si aici Pauza primeste un rol in scena in care Marian cauta punctul si virgula pe tastatura lui Apple.
Mai aflam ca putem scrie cod oriunde vedem loc liber in pagina, asa ca pe ciorna, si mai tirziu il copiem unde trebuie. Cind te trece creativitatea trebuie sa ai un loc liber sa o depui in cel mai scurt timp.

Disclamer: Nu a fost ranita nici o masina in timpul efectuarii cercetarilor pentru acest material. In schimb se pare ca alti oameni au fost raniti in timpul orgiilor familiei Pop OS XXX.

PS. In caz ca doriti autografe, codexpert.ro il are invitat permanent in platou.

PS2. Si da, ca si pe Silviu Ardelean sistemul de invatamint romanesc l-a avut la cirma si pe Marian Pop.

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: , , , , , , , , , ,