Explore vs Exploit: O dilemă

„Jack de toate meseriile, stăpânul nimănui”

Să presupunem că vrei să vizionezi un serial TV, începi să te gândești la cel pe care prietenul tău i-a sugerat recent pe care ți-ar putea să-ți placă sau nu. Pe de altă parte, dacă urmăriți din nou un episod de Prieteni (considerând că l-ați urmărit până acum), sunteți sigur că va fi distractiv.

În mod similar, explorarea / exploatarea comerțului ne spune cum să ne gândim la sfaturile bătrânilor noștri. Când bunicul tău îți spune ce restaurante sunt bune, ar trebui să asculți - acestea sunt perle extrase din decenii de căutare. Dar când merge la același restaurant doar la 17:00 în fiecare zi, ar trebui să te simți liber să explorezi alte opțiuni, chiar dacă probabil că vor fi mai rău.

Acest lucru se întâmplă atunci când începi să locuiești într-un oraș nou, inițial ar trebui să începi să explorezi locurile unde să mănânci sau să bei, dar când ești pe cale să părăsești orașul, ar trebui să-i exploatezi pe cei care ți-au plăcut cu adevărat.

Când am început să lucrez la ThoughtWorks acum doi ani, am cunoscut Java și un pic de programare Android. În primul meu proiect, cream o aplicație pentru Android și am avut șansa să învăț diferite modele în Android și practicile bune de urmat în timp ce cream interfațe de utilizator etc. Acest lucru a făcut un efect pe suprafața programării Android pentru mine și am vrut să afla mai multe despre asta. Am decis să continui pe Android pentru mai mult timp, astfel încât să mă ocup de detaliile interne și să înțeleg mai bine ecosistemul. În proiectele ulterioare, am fost expus la RxAndroid (Reactive Extensions for Android), modele MVVM / MVP, testarea unităților pentru codul Android, Date Binding și jargon-uri similare Android.

Dar lucrurile s-au schimbat după câteva luni, când am avut ocazia să lucrez la tehnologiile backend, unde am fost expus arhitecturii Micro-servicii, serviciilor de streaming, apelurilor asincrone și modului în care componentele colaborează într-un mediu distribuit.

Am învățat o mulțime de lucruri, dar am simțit că acoper prea multă suprafață și nu am șansa să mă scufund adânc în nicio zonă.

Cred că este o problemă cu mulți dezvoltatori care au început recent. Mi-am dat seama că învățarea de lucruri noi m-ar ajuta să-mi extind orizonturile și să deschid noi oportunități pentru mine (exact ceea ce s-a întâmplat în cazul meu), dar ceea ce trebuia să fac mai mult a fost să continui să fac ceea ce știu și să mă afund mai adânc în concepte.

În timp ce se decide când se va schimba și când se va continua, există câteva puncte care sunt importante pentru a lua în considerare:

  • Compromisuri: este vorba de compensări. Când iau decizii, ce câștig și ce transmit, atunci când iau o anumită alegere, având în vedere multe opțiuni?
  • Cronometrare / Oprire: Când ar trebui să aleg să încetez să urmăresc una, curs de acțiune și să încerc altul? De câte ori ar trebui să încerc primul, al doilea sau al treilea curs de acțiune? Când ar trebui să încetez să mai încerc opțiuni și să rămân cu cea pe care sunt?

Când ne gândim la o carieră, este util să ne gândim la două tipuri - sau forme - de profesioniști. Unul poate fi sub formă de „I” (gândiți îngust și strâns) sau „T” (credeți extins). Profesionistul în formă de I este extrem de versat într-un domeniu specific de expertiză și învață prin foraj mai profund într-un anumit domeniu. Persoana în formă de T are abilități și cunoștințe mai largi și învață prin conectarea diferitelor perspective din diferite specialități.

Aceasta este una dintre numeroasele probleme prin care mulți dintre noi trebuie să treacă. În opinia mea, un „eu” cu „T” este o abordare mai bună. Majoritatea profesioniștilor au o zonă de specializare, dar sunt mai susceptibili să găsească idei distinctive dacă au un picior în afara „lumilor lor mici”.

A fost o invenție perfectă. A fost simplă punerea în aplicare a tehnologiei, dar a adus o idee veche (licitații) într-un domeniu nou (internet).
- Andrew Hargadon