Interviu: O abordare pragmatică a programării cu Filip Cherecheș-Toșa

Filip Chereches

A scris primul său program la 9 ani în BASIC, iar de atunci nu s-a mai putut „lăsa” de programare. Filip este cel care a demarat întâlnirile GeekMeet, iar printre altele a scris o carte despre PHP, AJAX şi PHP: Building Responsive Web Applications, a dezvoltat jobberBase, engine-ul din spatele Jobber.ro, iar în prezent este cofondatorul Lateral. Puteţi să citiţi mai multe despre el pe blogul său www.filipcte.ro.

Salutare ! Din moment ce ai scris o carte despre PHP şi Ajax este clar că ai o pasiune pentru aplicaţiile web. În opinia ta, ce se va întampla cu dezoltarea aplicaţiilor web în următorii 4-5 ani? Ce skill-uri va trebui să stăpânească un programator web pentru a face faţă provocărilor?

Salut! Cert este că aplicațiile web sunt aici ca să stea. Că ele vor funcționa pe tehnologii deschise sau proprietare, nu contează așa mult. Că web-ul va arăta altcumva în 5 ani, nu contează așa mult. Ce contează însă e că visul nostru, al „geekșilor”, despre o lume în care toate device-urile comunică între ele și au acces la Internet, se transformă în realitate. Iar aceste device-uri au nevoie de software bun.

Skill-urile tehnice de care are nevoie un programator web sunt ușor de dobândit, prin muncă și citit. Neapărat HTML5, JavaScript și (cel puțin) un limbaj server-side ca PHP, Ruby, Python sau platforma .NET.
Dacă pentru Flash s-a găsit justificare într-o vreme (standarde web inexistente sau prost implementate), astăzi ne e clar care-i este viitorul și locul: în contexte multimedia. Flash nu mai prezintă niciun avantaj față de HTML + JavaScript. Nu astăzi.

Mai există (cel puțin) un skill non-tehnic pe care noi, programatorii web, îl ignorăm complet (unii mai mult ca alții):

„Lasă dom’le interfața — vezi că funcționalitatea e implementată, deci great success, nu?”.
Nicio problemă, dacă ești programator de drivere. Codul tău interacționează cu alt cod, nu cu oameni. Dar, ca programator web, trebuie să accepți că oameni reali interacționează cu ceea ce scrii tu, așa că nu te poți face că plouă și să nu-ți dai un minim de interes pentru a le îmbunătăți experiența.

Ca programatori web, avem nevoie de o perspectivă holistică asupra produsului final, care să înlocuiască ignoranța față de tot ce nu e „funcționalitate”.

Ce are special PHP-ul? Ce îţi place la acest limbaj şi nu ai găsit în alte limbaje gen Java sau ASP?

Fiind un programator pragmatic, nu am nicio mustrare de conștiință să sacrific „puritatea” codului pentru „binele suprem” — un produs final utilizabil. Pentru mine, PHP este limbajul cu ajutorul căruia îmi pot concretiza ideile și pot crea… simplu și rapid. PHP nu are nimic special, a fost doar tehnologia potrivită la momentul potrivit, ceea ce a creat adopție, ceea ce a născut o comunitate imensă care a evoluat limbajul, în cele din urmă.

Java pentru web? Nu găsesc nicio justificare. Pentru mobile development, însă, mai ales Android — DA!

ASP.NET? Mă bucur că a descoperit în sfârșit MVC și „au intrat în rând cu lumea bună”. Dar ai nevoie de Windows pentru a folosi Visual Studio, iar eu folosesc un Mac. Și, la urma urmei, nu se pretează ca platformă pentru genul de aplicații la care lucrez eu.

Dacă ar fi să construieşti „şcoala” perfectă de programatori cum ar arăta aceasta?

Școlile actuale sunt… deprecated. Training-ul in-house e frustrant și scump. Dar nevoia e reală, mare și crește, deci avem o oportunitate extraordinară!

Dacă aș construi o școală eficientă de web developeri, aș face-o așa…

Aș concepe-o pe trei nivele distincte, pentru că există trei grupuri mari de nevoi:
1. Intro.
2. Aprofundare.
3. Start-up.

Pe nivelul „Intro” aș avea cursuri de inițiere în tehnologii web front-end, tehnologii web back-end și UI design. Cu traineri pregătiți, profesioniști cu experiență reală, nu doar academică. Ar duce pe cineva de la nivel zero la nivel mediu.

Pe nivelul „Aprofundare” aș avea cursuri de aprofundare a diverselor tehnologii și concepte „hot”, pentru developeri la nivel mediu și buni care caută o „injecție intravenoasă” de informație.

Nivelul „Start-up” l-aș organiza sub forma unui incubator de genul Y Combinator, în care „cursanții” să se organizeze ca start-ups și să fie ghidați de mentori (din nou, oameni cu experiență reală în domeniu). Nimic nu te pregătește mai bine pentru realitate decât… experiența în realitate.

Așa aș face-o :).

O mare problemă cu care se confrunată programatorii începători este faptul ca toate firmele cer experienţă de „minim 3-5 ani”. Ce sfaturi ai avea pentru cei care vor să-şi înceapă o cariera în programare şi se lovesc de această problemă?

Am văzut ambele fețe ale monedei, iar problema mai mare este că avem prea mulți programatori începători și prea puțini programatori buni. Orice firmă de software care a angajat vreodată, îți va spune acest lucru.

Așa că îi încurajez pe programatorii începători să înceapă să lucreze la proiecte proprii. Și să tragă tare, dacă vor să crească. Sau să-și schimbe profesia.

Firmele de IT caută două lucruri critice în oameni: experiență și talent. Experiența implică skill-uri și cunoștințe. Dacă ele nu există, „experiența” de N ani nu are valoare. Dar dacă ele există, atunci numărul de ani e irelevant. Talent poate însemna potențial sau pasiune, ambele vizibile într-un om. O firmă inteligentă nu ar refuza un candidat fără multă experiență, dar care se arată pasionat, dornic să învețe și e dispus la sacrificii (inclusiv financiare).

Sfatul meu: cariera în programare se începe din timpul școlii (generală, liceu), în timpul liber și din pasiune.

Care crezi că este diferenţa dintre un developer bun şi unul mediocru? Cum ajungi să fii un programator foarte bun?

Diferențele dintre un developer mediocru și unul bun sunt tehnice, punctuale și au de-a face cu nivelul cunoștințelor. Creșterea dinspre „începător” spre „bun” e liniară și garantată pentru cine muncește și caută mereu să se îmbunătățească.

De la un programator bun la unul strălucit, însă, e drum lung. E timp îndelungat, de fapt. Și multă experiență și variată. E o creștere lentă care se-ntâmplă atunci când ceea ce faci are impact.

Nu cred în „strălucire în obscuritate”, pentru că misiunea noastră ca developeri software este de-a face viețile oamenilor mai bune, cu ajutorul tehnologiei. Nimic mai prejos!

Astfel, dacă tot ce te interesează e „funcționalitatea”, probabil ești un programator mediocru. Dacă privești lucrurile holistic și înțelegi scopul muncii tale, probabil ești un programator bun. Iar de-aici înainte, ne străduim fiecare să devenim programatori străluciți!

Tags: , , , , , ,



Alte articole si tutoriale:
« »

Oferta limitata eBook gratuit: DUBLEZA-TI VENITUL PRIN CUNOSTINTELE DE IT

Inscrie-te la newsletter si vei primi un eBook gratuit. Vei fi si informat despre ofertele speciale, tutoriale gratis si discount-urile pentru cursurile LEC Academy.

Download ebook
×

Abonare email

Accesul la tutorialele gratuite se face pe baza inscrierii la newsletter. Inscrie-te la newsletter-ul LEC Academy si ai acces la peste 40 de lectii gratuite. Daca doresti, vei fi informat despre ofertele speciale, promotiile si discount-urile pentru cursurile LEC Academy.

Vezi lectii gratis
×