Cum de a identifica un bun programator ca om de afaceri?
Nu este la fel de ușor cum pare. Experiența indicată în rezumat nu are niciun ajutor, deoarece cei mai buni programatori de multe ori nu au o experiență "oficială" care să dovedească faptul că sunt cei mai buni. De fapt, experiența indicată în CV poate fi adesea înșelătoare. Cu toate acestea, chiar și această informație poate ajuta la determinarea unui programator bun.
Ma consider un programator destul de bun. În același timp, trebuia să mă ocup de o parte din afacerile IT din afacerile dvs. pentru o vreme. Am petrecut mult timp navigând prin diferite rezumate și intervievând candidații pentru postul de programator. Cred că datorită acestui fapt am o experiență în identificarea programatorilor buni și vreau să împărtășesc această experiență, cu speranța că va ajuta și alți oameni de afaceri. Și cine știe, poate că unii programatori care au potențialul de a deveni buni invata din acest articol ceea ce le lipsește pentru a fi cei mai buni.
În articolul său 18 greșeli care ucid startups, Paul Graham scrie:
În mod obișnuit, un om de afaceri angajează o persoană pe care o consideră un bun programator (de asemenea, el spune că este un Microsoft Certified Developer), dar, în realitate, se dovedește a fi rău. În consecință, lansarea se dovedește a fi în situația unui bombardier al vremii celui de-al doilea război mondial, în vreme ce celelalte start-up-uri străbat trecutul, ca și luptătorii moderni. Astfel de start-up-uri devin similare cu companiile mari, dar fără avantajele lor.
Deci, cum găsești un programator bun dacă nu ești programator? Mă îndoiesc că există un răspuns la această întrebare. Mai intai am vrut sa scriu ca pentru a angaja angajati, trebuie sa gasesti un programator, dar cum sa faci macar asta? "
Nu sunt de acord cu Graham despre această problemă. Cred că există semne că puteți identifica un programator bun (și, prin urmare, nu foarte bun), astfel încât chiar și un om de afaceri poate folosi.
1. Pasiune. În timpul meu în companii mari am întâlnit un nou tip de specialist IT pe care nu l-am mai întâlnit niciodată: un programator de carieră. Astfel de oameni lucrează în domeniul IT deoarece consideră că aceasta este o carieră bună. Ei nu fac programarea în timpul liber. Sunt surprinși când află că am o rețea de trei computere la domiciliu. Ele se programează doar la lucru. Ei nu învață nimic nou decât dacă sunt trimiși pentru formare suplimentară (sau sunt motivați de o nouă lucrare pentru care este necesară studierea noii tehnologii). Rar vorbesc despre computerele din afara muncii. Și când o fac, nu se simt entuziaști. Pe scurt, ei nu sunt obsedați de computere.
2. Auto-învățarea și dragostea învățării. Programarea este un domeniu în continuă evoluție. Nu trece nici un an fără ca nici o nouă tehnologie să schimbe vechea, stabilind noi standarde și schimbând jumătate din industria IT. Nu este necesar să spunem că programatorii buni încearcă să accepte aceste schimbări și să rămână pe vârful valului. Cu toate acestea, există programatori care nu vor învăța niciodată tehnologii noi, dacă nu sunt forțați să o facă, pentru că nu le place să învețe lucruri noi. Acești programatori probabil că au studiat programarea la universitate și acum ei cred că vor avea destui ceea ce au învățat acolo și poate ceea ce vor învăța în cursurile la care compania le va trimite.
Acest lucru, desigur, nu înseamnă că ei se simt liberi în orice societate. Dar aceasta înseamnă că, dacă societatea este destul de confortabilă, atunci puteți comunica cu ei la fel de normal ca și cum ați comunica cu alți oameni "sociabili".
4. Experiență ascunsă. Am vorbit deja despre asta în secțiunea "Pasiunea", dar acesta este un semn atât de important încât vreau să vorbesc separat.
Am menționat vreodată acest lucru în CV-ul meu? Nu, nu este.
Sunt sigur că cei mai buni programatori au o grămadă de experiențe similare și nu scriu despre asta în CV-ul lor. Adesea, ei cred că o astfel de experiență nu are legătură directă cu munca viitoare și nu este o "experiență potrivită", dar, de fapt, acestea sunt realizări extraordinare. O întrebare bună pentru un interviu ar putea fi: "Aveți un proiect propriu care nu se referă neapărat la munca viitoare, pe care ați făcut-o în timpul liber, dar nu ați menționat în CV-ul dvs.?". În cazul în care candidatul dvs. nu are astfel de proiecte (desigur, în cazul în care CV-ul lor nu ia 20 de pagini), atunci este probabil ca el nu este un bun programator. Chiar și un programator cu un CV imens are proiecte pe care nu le-a menționat.
5. O varietate de tehnologii. Ei bine, e destul de simplu. În cazul în care o persoană îi place să învețe și îi place să ducă la noi tehnologii, care sunt semne ale unui bun programator, va inevitabil (dacă are peste 22 de ani) să înțeleagă o duzină de tehnologii diferite. Studiul noilor tehnologii este una dintre cele mai preferate activități pe care o persoană obsedată de programare o poate face. Astfel, portofoliul său va fi plin de diverse tehnologii, cu care "a lucrat puțin". El nu va fi neapărat un expert în toate, dar dacă este un programator decent, el va înțelege o grămadă de tehnologii care nu au legătură directă cu munca sa.
Aceste "tehnologii care nu sunt direct legate de muncă" sunt uneori greu de recunoscut, în special pentru non-rummist. Orice programator Java poate scrie o listă a diferitelor tehnologii cu care a lucrat: Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell Scripting și așa mai departe. Dar toate acestea fac parte din aceeași tehnologie și toate sunt strâns legate între ele. Specializarea puternică într-o singură linie de tehnologie este adesea un semn că nu este un programator foarte bun.
Și, în sfârșit, dacă unele dintre aceste tehnologii sunt complet noi, acesta este, de asemenea, un semn al unui bun programator.
6. Certificate oficiale. Mai degrabă nu este un semn anti-semn, ci un non-atribut. Principalul lucru pe care merită menționat aici este faptul că certificatele oficiale nu înseamnă nimic atunci când cauți un programator bun. Mulți programatori buni au absolvit orice institut specializat în calculatoare. Mulți nu. Certificate ca MCSE sau SCJP nu înseamnă nimic. Acestea sunt concepute astfel încât să fie accesibile tuturor. Singurul lucru pe care îl arată este că proprietarul lor are cunoștințe despre o anumită tehnologie. Ele sunt dovezi suplimentare de cunoștințe care permit oamenilor din marile corporații să intervieveze înainte de interviu că "această persoană cunoaște Java și are un certificat care confirmă acest lucru". Dacă angajați oameni pentru o afacere mică sau aveți nevoie de programatori foarte inteligenți, pentru o echipă de hackeri care are nevoie să scrie ceva rapid, trebuie să ignorați majoritatea acestor certificate. Ei nu vorbesc prea mult despre calitatea programatorului. Același lucru este valabil și pentru vârstă. Există programatori excelenți cu vârsta de 18 ani. Există programatori excelenți pentru care 40. Este imposibil să evaluați calitatea programatorului pe baza vârstei sale (deși este probabil mai bine să angajezi persoane de aproximativ aceeași vârstă, vă rugăm să rețineți că discriminarea pe motive de vârstă este ilegală în multe țări!).
Ei bine, în cele din urmă voi spune că experiența mea arată că majoritatea programatorilor răi sau medii au început să se programeze la universitate când au început să predea cursul corespunzător. Cei mai buni programatori au început să se programeze mult mai devreme. Dacă candidatul dvs. nu a făcut programare înaintea universității și a început să aibă experiență în programare doar în primul său loc de muncă, atunci probabil că nu este un programator foarte bun.
concluzie
Desigur, toate aceste semne nu sunt absolute. Puteți găsi un programator care nu se încadrează în unele dintre ele. Dar părerea mea este că este puțin probabil să găsești un bun programator care să nu cadă sub toate aceste semne. Același lucru este valabil și pentru programatorii răi care pot îndeplini unele dintre aceste criterii. Dar cu cât mai multe semne aveți, cu atât este mai probabil că este "bunul programator" pe care îl căutați.