E ok să-ţi spui deschis părerea.
Să știi cînd şi cum e cu totu' altceva.

 

   Login
tip of the day


De ce sta un programator toata ziua sub dus? Pe sampon scrie "masati, clatiti, repetati operatia"!

 

Cum am devenit programator

Pe vremuri se spunea că era deajuns să fi citit cartea „The Peter Norton Programmer's Guide to the IBM PC” să te numești programator. Se înșelau, cum se înșeală și azi cei care te întreabă „Știi Java?  Știi dotnet?”. Da, nu ajunge să citești o carte sau să cunoști un framework să  te numești programator. Sau să fii în stare să enumeri multe acronime de trei litere. Cunosc persoane care azi învîrteau Perlu, iar peste o săptămînă erau profi în Modula 2, dar nu erau programatori. Nu pot să uit răspunsul unui prieten întrebat în ce programează: „În Word.” Dacă ați zîmbit la citirea acestui răspuns atunci e timpul să vă căutați o meserie în afara celor numite software development.

Cum am devenit programator? Primul lucru de spus e că am avut cel mai prost profesor – pe mine însumi. 

Am pornit cu aplicații pe un computer cu procesor Z80 la 1MHz și cu 64KB memorie (din care 18KB erau ocupați de SO, plus 25KB memoria video). Așa am învățat să lucrez modular pentru că aplicațiile nu încăpeau în memorie. Pentru că viteza formulelor trigonometrice era mică am „inventat” tabelele cu valori precalculate. Tot din cauza vitezei scăzute a limbajului interpretat am fost nevoit să scriu cîteva rutine în limbaj mașină.

Apoi am trecut pe PC-XT cu procesor Intel 8086. În prima seară cînd l-au adus mai că nu am dansat ritualic în jurul lui. Am pierdut simplitatea memoriei video de 25KB, dar mi-am revizuit tehnicile greșite. Am înțeles că aplicația trebuie să fie independentă de hardware-ul pe care rula – la început numai pentru video, dar mai încolo mi-am dat seama că e o idee bună pentru orice fel de aplicație. Au apărut oportunități pentru aplicații mai complexe – baze de date. Am făcut-o la nivel de fișiere, dar curînd s-a dovedit că nu făceau față cerințelor de performanță. Am căutat algoritmi de sortare mai performanți, dar am fost nevoit să descopăr că teoria lui Codd face o bună abstractizare și că aplicațiile mele nu mai depindeau de baza de date aleasă și că puteam să le mut dacă nu mai performau cînd creștea numărul userilor. Tot căutînd l-am descoperit pe Knut și „The Art of Computer Programming”.

A venit Windows-ul cu interfața grafică și programarea orientată pe mesaje. Și rutinele call-back. Și Windows API cu framework-urile OWL și MFC. Plus problemele de accesare a stringurilor. Plus Win32 și backward compatibility. Apoi WinNT și problemele de compatibilitate cu Win9x. Știți de ce Copy/Paste funcționează atît de bine peste Windows, iar în Linux le-a luat un milion de ani? OLE Automation e răspunsul. 

Explozia internerului: client side developmet + server side development. ActiveX, DOM, IE object model – pe toate le-am mîncat pe pîine la sfîrșitul anilor 9x.

Design patterns le-am învățat de la Bruce Eckel și nu de la gang of four. Patterns & practices de pe MSDN este biblia din care citesc săptămînal. OOP, TDD, FDD, SOM, KISS, YAGNI nu sunt doar acronime, ci tehnici cunoscute.

Ce ar mai trebui să cunoască un programator? Ceva legat de UI, de securitate, de deployment și  instrumentation. Un fleac. Modelare, ce e aia?!

După cum vedeți am scris o pagină fără să mă refer la limbajul în care am programat. De fapt, nici nu e atît de important!

Home  |  Lazy admin wiki  |  Hyde Park  |  books  |  miscellaneous
Copyright 2009 by Napoleon Bonaparte    Terms Of Use   Privacy Statement