dificil

Stoyan Damov este unul dintre fondatorii companiei bulgare de software Tick42. El și partenerul său Lyubomir Konstantinov au lucrat ca consultanți financiari mulți ani, înainte de a-și începe propria afacere în 2010. Li s-a alăturat Leslie Spyro, care ocupă în prezent funcția de CEO. Echipa Tick42 din Sofia creează software conceput pentru nișa financiară. Printre clienții săi se numără JP Morgan, Santander Group, CMC Markets, Reuters și Bloomberg. Cel mai popular produs al companiei este Glue42 - o platformă pentru integrarea aplicațiilor web și desktop. Cum s-au schimbat Tick42 și afacerea IT în 8 ani, cum evoluează limbajele de programare și care este viitorul lor, ce este important să fii un programator de succes astăzi și cum să nu arzi? Vedeți ce a spus Stoyan Damov despre aceste și alte subiecte interesante legate de provocările cu care se confruntă afacerea software și realizarea profesională în domeniu.

Cum a crescut Tick42 de-a lungul anilor?
Am început cu cinci programatori și în fiecare an am crescut cu încă cinci. La început am programat și eu, dar odată cu creșterea companiei a trebuit să nu mai scriu cod. La început, când am angajat primii noștri programatori, a fost foarte diferit. Am postat un anunț, au venit 100 de CV-uri, dintre care am invitat 20 de persoane la un interviu. Și am angajat doar unul dintre ei. Acum trebuie să ne gândim la prezentări pentru a impresiona candidații, deoarece oferta este mult mai mică decât cererea. Vindem deja noi înșine în loc să ne vândă programatorii. Echipa noastră numără în prezent 65 de persoane. Majoritatea sunt programatori - programatori JavaScript, programatori C #, programatori Java. Avem și programatori care cunosc mai multe limbaje de programare. Restul, aproximativ 10-12 persoane, sunt manageri, manageri de proiect, designeri etc.

Filozofia noastră se bazează pe trei principii - să ne îngrijim, să continuăm să învățăm și să nu fim mulțumiți de statu quo. Credem că toată lumea din companie poate fi mai bună cu fiecare zi care trece.

Care sunt clienții dvs.?
Cel mai mare client al nostru este acum JP Morgan, unde 15.000 de utilizatori lucrează cu software-ul nostru. Și 500 dintre programatorii lor folosesc platforma noastră pentru a dezvolta aplicații pentru clienții lor. Ne așteptăm să avem 25.000 de utilizatori ai platformei noastre până la sfârșitul anului. Un alt client important este Santander, care deservește aproximativ un sfert din lumea vorbitoare de latină. Au cumpărat codul sursă pentru software-ul nostru. Avem și clienți mai mici de la care am învățat lucruri și cazuri interesante care nu ne-ar fi trecut prin minte. Obiectivul nostru din acest an este să lansăm trei versiuni ale Glue42 și să acoperim întreaga lume - una pentru întreprinderile mari, o versiune de bază pentru întreprinderile mici și mijlocii și o versiune pentru utilizatorii finali. Ideea nu mai este să ne concentrăm doar pe nișa financiară, ci să fim utile fiecărei afaceri.

Ce este Glue42?
Pe măsură ce am lucrat de-a lungul anilor, am observat cum lucrau oamenii în diferite instituții financiare. Ce greșeli pot face, ce obstacole întâmpină în munca lor, cum trebuie să treacă între diferite aplicații, să caute aceleași date în aceleași aplicații, să se conecteze constant etc. Și toate acestea ne-au oferit idei despre cum să integrăm produsele pe desktop. Susținem integrarea nativă, adică. puteți lua o aplicație .NET sau Java și o puteți integra cu o aplicație web. Și această aplicație web poate funcționa ca o aplicație Node.js, poate funcționa în browser, poate funcționa în browserul nostru - așa-numitul Container HTML. Din perspectiva afacerii, produsul nostru îi face pe angajați mai eficienți. Din punctul de vedere al angajaților - le facilitează munca și îi face mai fericiți, întrucât navighează mai ușor între aplicații și găsesc datele de care au nevoie. Și din punctul de vedere al dezvoltatorilor care integrează platforma noastră, API-ul nostru este atât de simplu încât necesită literalmente o linie de cod pe o parte și o linie pe cealaltă, dacă doresc să conecteze două aplicații web.

Cum au evoluat limbajele de programare și cu ce limbaje lucrați în prezent?
Cu ani în urmă, limbi precum Java, .NET și C ++ erau foarte populare și utilizate în toată lumea. Dar toate acestea au dispărut în favoarea JavaScript. JavaScript nu este doar o limbă, ci o platformă promisă. Există multe limbi, cum ar fi Rust, Clojure etc. care se traduc în JavaScript și rulează în browsere. Acest lucru se datorează parțial Google, care a ajutat JavaScript să ruleze foarte repede, iar Microsoft și alți furnizori de JavaScript Execution Engine s-au alăturat competiției. Pentru mine, cel mai important limbaj este JavaScript, deoarece funcționează pe toate dispozitivele și poate face minuni. Puteți crea aplicații care funcționează atât pentru web, cât și pentru desktop, atât pentru iPhone, cât și pentru Android. Nici o altă limbă nu a realizat acest lucru până acum. De aceea, programatorii JavaScript sunt cei mai importanți programatori pentru noi în acest moment. Nu-i subestim pe ceilalți, dar pentru mine JavaScript este unul dintre cele mai puternice limbaje de programare.

Acesta este viitorul - convergența limbajelor de programare?
Toate limbajele de programare, după părerea mea, converg. Fiecare limbă începe să semene cu alte limbi. Și se fură reciproc, ceea ce, în interesul adevărului, este foarte bun, deoarece cele mai bune caracteristici ale limbilor apar în toate limbile. La un moment dat nu aveam prea multe de ales. Dacă doriți să fiți dezvoltator Back-End, utilizați Java. Dacă doriți să fiți Front-End, utilizați JavaScript sau Macromedia Flash. Acum alegerea este imensă - nu există Java, ci o platformă pe care există diferite limbaje - Groovy, Java, Scala, Clojure. Același lucru s-a întâmplat și cu JavaScript - puteți programa în JavaScript, dar și în mai multe dialecte ale JavaScript. La fel ca TypeScript, care cred că a devenit unul dintre cele mai puternice și interesante limbaje din lume. JavaScript are cea mai mare aplicație, deoarece poate fi folosit pentru a scrie Back-End.

Cu toate acestea, marile promisiuni pentru dezvoltatorii Full Stack sunt nerealiste. Personal, nu cred că poate exista un dezvoltator Full Stack, deoarece este foarte dificil să înțelegi în detaliu și să ai multă experiență atât în ​​programarea Back-End cât și în programarea Front-End. Cele două sunt total diferite. Poate că le-ați făcut pe amândouă, dar nu fiți un maestru la ele. Dacă vrei să ai o viziune mai largă și să fii stăpân pe multe lucruri, atunci la final nu vei fi bun la nimic. Eu personal cred în specializări. Nu este rău să te specializezi ca dezvoltator Front-End astăzi, ca dezvoltator Back-End în 5 ani și să devii dezvoltator Full Stack în 10 ani, dar nu poți fi Full Stack în timp ce începi programarea. Și să credeți că veți angaja un dezvoltator Full Stack și el va face munca a doi dezvoltatori. Asta nu merge.

Cum sa schimbat afacerea IT de-a lungul anilor și unde se îndreaptă în conformitate cu observațiile dvs.?
După părerea mea, totul merge la front-end. În 2011, Mark Andrieson de la Netscape Navigator a spus că software-ul mănâncă lumea. Și nimeni nu se îndoiește. În telefonul meu am televizor, cameră, cameră, telecomandă etc. Software-ul este peste tot - în mașini, microunde. Cu ani în urmă, mulți oameni au făcut greșeala subestimării software-ului. Cum ar fi Borders, care a subestimat potențialul Amazon și a vândut vânzările de cărți online ca fiind non-strategice. Și acum Amazon este una dintre cele mai bogate companii din lume. Unii oameni au făcut afaceri foarte interesante, cum ar fi Uber, care nu au taxiuri, dar dețin o afacere cu taxiuri. Facebook și Twitter, care controlează știrile etc. Există multe exemple de astfel de furnizori de servicii cu valoare adăugată. În realitate, valoarea pentru consumatori pe care au inventat-o ​​aceste companii este doar software-ul. Da, există ceva hardware și oameni în spatele tuturor acestor lucruri, dar totul este despre software.

Lucrăm pe desktop de cele mai multe ori, dar majoritatea oamenilor își petrec aproximativ 20% din zi la telefon. Și pentru a putea atrage utilizatori care folosesc software-ul meu și se întorc mereu, trebuie să fiu pe toate platformele. Și aici apare întrebarea: „Cum se scrie rapid un software care funcționează oriunde?”. Răspunsul este JavaScript. Și acest lucru se întâmplă chiar acum. Deoarece dezvoltatorii Front-End sunt cei mai căutați, cei mai puțini ca număr și cu cele mai limitate cunoștințe. Mulți oameni cred că JavaScript a fost un limbaj de scriptare unic, care a fost un limbaj foarte ușor. JavaScript este acum un limbaj de programare utilizat în mod obișnuit, în care puteți scrie orice și a devenit complicat. A devenit un adevărat limbaj de programare. Și acum, dacă începeți să scrieți o interfață de utilizator JavaScript, aveți „n” lucruri pe care le puteți.

Cum să devii un bun dezvoltator Front-End?
Cea mai mare problemă, în opinia mea, este că un dezvoltator Front-End nu știe ce să înceapă să învețe. Și că oamenii se grăbesc să programeze aplicații web înainte de a putea programa. Acestea sunt observațiile mele, deoarece conduc toate interviurile din companie. Problema mai mare este că oamenii nu au elementele de bază, nu că nu cunosc tehnologia. Tehnologia este învățată. Puteți face două lucruri. Dacă sunteți o companie mare, puteți crea o academie și vă puteți instrui oamenii. Oamenii noștri au, de asemenea, întâlniri săptămânale pentru JavaScript și Clojure, unde se antrenează folosind prezentări care prezintă și rezolvă probleme reale.

Al doilea lucru este să începi să lucrezi cu academiile. O facem noi înșine. Pentru că, din păcate, persoanele dezvoltatoare de vârf înțeleg ca numărul de ani. Dezvoltatorul senior nu este un număr de ani, ci o experiență extinsă și relevantă astăzi. Poate că am avut o experiență teribilă ca dezvoltator C ++ acum 12 ani. Acum nu sunt dezvoltator senior C ++, probabil că sunt sub mijloc. Și există mulți dezvoltatori de front-end care știau jQuery și s-au oprit acolo. Și de aceea motto-ul companiei noastre este „Continuă să înveți”. Tehnologia se schimbă constant și nu are sfârșit. Provocarea noastră în acest moment este că există o lipsă de dezvoltatori front-end de care chiar avem nevoie. Iar cele pe care le găsim au lacune mari. Și când vin pentru un interviu, îi înregistrez. Apoi le dau (la fața locului) și le spun să plece acasă, să învețe toate aceste lucruri și apoi, dacă au curaj, vin pentru un al doilea interviu. Avem o astfel de persoană - i-a trebuit șapte luni pentru a completa golurile și acum este în companie.

Adică totul depinde de auto-inițiativă și auto-pregătire?
Totul depinde de persoană. Există nenumărate exemple de oameni care au început de la zero și au reușit. Voi da un exemplu cu un băiat care a venit la noi după 6 luni de pregătire la Academia Telerik, fără experiență anterioară în programare. În prezent, este unul dintre cei mai productivi dezvoltatori ai noștri. Și acum se află în echipa de bază a Glue42. Dar, spre deosebire de ceilalți, care erau mega-obosiți după ziua de lucru de 10 ore, el s-a întors acasă și a continuat. Pentru că știa că are ani de recuperat. Universitățile au o pregătire excelentă, oferă suficientă educație și condiții bune. Dar ele nu sunt suficiente pentru a vă începe. Ele sunt suficiente pentru a deveni interesat de muncă și de a-ți actualiza abilitățile. Și la Academia Telerik, ei sunt învățați nu numai abilități tehnice, ci și abilități ușoare și disciplină. La un moment dat am crezut că a fi tehnician este totul. Neadevarat. Acum, cu cât creștem mai mult, cu atât abilitățile soft încep să se evidențieze. Și persoanele cărora le lipsește sunt foarte dificil de reeducat. Chiar dacă știți totul, orice limbaje de programare, înscrieți-vă într-o academie doar pentru abilitățile ușoare.

Și matematica?
Matematica este, de asemenea, utilă, dar nu este necesară. Numai un software strict specific necesită să fii un foarte bun matematician. În majoritatea cazurilor, nu este nevoie. Cel mai important lucru este să vedeți întreaga imagine și să priviți din poziția clientului care va utiliza software-ul. Le spun oamenilor mei că nu există lucruri precum casete combinate, grile, casete text etc. Există o aplicație în care văd analiza creditului clientului, îi pot gestiona datoria de credit etc. Adică să înțeleagă ce fac clienții și să realizeze că aplicațiile pe care le creează vor fi folosite de ei pentru anii următori și le vor ușura munca. Aceasta este mentalitatea pe care o impunem în companie și care funcționează.

Ai angajat o persoană neexperimentată în companie și s-a dovedit a fi unul dintre cei mai buni programatori după aceea. Ce este important pentru dvs. în selectarea oamenilor, cum vedeți potențialul într-un programator?
În primul rând, ochii lui ar trebui să strălucească cel puțin la fel de mult ca ai mei. El trebuie să fie inspirat să programeze. Profesia noastră este o nebunie - este la fel de multă inginerie pe cât este artă. Vă voi da un exemplu - la prima sarcină pe care o dau în interviu, am văzut 15-20 de soluții. Pe al doilea - chiar mai mult. Această libertate și expresivitate a creierului este posedată de artist. El poate desena un om în tot felul de moduri, chiar și ca Picasso, adică. să nu semene cu un bărbat. La fel este și cu programarea. În același mod putem realiza software. În cele din urmă, programul pe care l-ați creat este ca și copilul dumneavoastră. Ești un creator, un mic Dumnezeu. Acest lucru nu este cazul în multe profesii. Il avem.

De aceea, primul lucru pe care îl vreau este ca o persoană să vină la interviu supărată. Nu-mi pasă dacă transpiră, tremură, se bâlbâie etc. Este important să cunoașteți elementele de bază ale programării, algoritmii de bază și structurile de date. Trebuie să existe o logică dezvoltată. Mulți oameni fac aplicații web ca și cum ar fi lipit imaginea de fundal. Aceasta nu este programare.

Programarea este să vă ofere orice sarcină și, așa cum vorbesc acum în bulgară, fără să mă gândesc, la fel gândirea programării curge. Ei trebuie să se gândească la cum să rezolve sarcina, nu cum să vorbească cu computerul pentru a rezolva sarcina. Căutăm astfel de oameni. Principalul lucru este să fii inteligent - în compania noastră sunt destepți și muncitori și deștepți și leneși. Dar prost și leneș și chiar mai rău - prost și muncitor, noi nu. Vreau să am entuziasm. Când am început să programăm, nu exista o profesie pentru un programator. Și am făcut-o din interes. Vreau să fie interesat. Și când aduni oameni deștepți într-un singur loc, se trag unul de celălalt. Nu trebuie să încetați să învățați și să vă dezvoltați, mai ales acasă.

Ce sfaturi le-ați da oamenilor care se gândesc la programare?
Să se gândească dacă vor să devină programatori. Acesta este cel mai important. Înțeleg că aceasta este una dintre cele mai bine plătite profesii. Dar dacă nu vor să fie programatori și o fac pentru bani, vicisitudinile prin care vor trece sunt nesfârșite. Va fi din ce în ce mai greu pentru ei pentru că vor învăța fără tragere de inimă. Dar dacă le place programarea, vor merge de bunăvoie înainte. Noi, ca manageri, tragem compania și oamenii ne atrag. De exemplu, Clojure, care se află acum în centrul Glue42, ne-a fost prezentat de unul dintre programatorii noștri. Și asta pentru că oamenii noștri nu încetează să învețe.

Avem programatori care au trecut de la dezvoltatori Back-End la dezvoltatori Front-End. Ei vin la mine și îmi spun că sunt interesați de JavaScript și vor să scrie lui Angular. Și mă întreabă dacă pot face ceva pentru ei. Dacă îi spun „nu”, probabil că va căuta un loc de muncă „mai bun”. Îi pot cere să aștepte câteva luni, dar nu-i pot spune că nu. Da, pierd un dezvoltator Back-End, dar am un alt Front-End. Nicio problemă să studiezi la locul de muncă. Lasă-i să învețe, trebuie să învețe. Un programator productiv în 3 ore poate face munca unui leneș în 8 zile.

Programarea nu este o profesie ușoară și duce adesea la oboseală și epuizare. Mulți profesioniști buni visează să scape la munte și să facă ceva radical diferit. Ați întâlnit astfel de oameni și cum faceți față momentelor de aglomerație?
Am întâlnit oameni care nu vor să meargă la munte, dar nu mai au puterea să programeze. Aceștia sunt oameni ca mine și Lubo, care au început ca consultanți și au lucrat ani de zile. Singura mântuire este să-ți placă atât de mult programarea încât să nu te obosească. Ce anvelope și ruine acești oameni nu programează. Pentru că atunci când vor merge la munte, vor deschide din nou laptopul și se vor distra. Codificarea nu este problema. Tensiunea, stresul și procesele proaste din companii sunt cele care distrug și distrug oamenii. Și să nu aibă libertate. Unul dintre lucrurile pe care le au programatorii noștri și care este motivul principal pentru a rămâne în companie este libertatea. Ei fac proiectarea, fac arhitectura și, dacă ceva nu merge bine, ne pot întreba și pot obține idei. Dar lucrează singuri și au libertate. Presiunea, supravegherea și nerăbdarea când se va întâmpla distrug oamenii. Nu sunetul tastelor.

Cum te odihnești?
Încă lucrez mult - atât la serviciu, cât și acasă. Tobele mă salvează. Deoarece necesită coordonare între patru membre, creierul se oprește complet. Nu se poate gândi la nimic - la probleme personale sau profesionale. Singurul lucru pe care încearcă să-l facă este să echilibreze corpul pe un scaun mic, iar cele patru membre să se miște în mod coordonat, dar într-un ritm diferit. Acest lucru funcționează excelent pentru mine. De asemenea, mă ajută fitness-ul. Merg de 5 ori pe săptămână. Fără fitness, mă scumpesc la serviciu. Dimineața după fitness, corpul meu se reîncarcă și mă simt minunat la locul de muncă. Și se plimbă afară. Oamenii au fost mult timp desprinși de natură. Trebuie să existe un echilibru sau, după cum se spune, „muncește din greu, joacă din greu”. Și ca sfat pentru toți programatorii: nu am auzit de nimeni pe patul de moarte care să spună „de ce nu am lucrat mai mult” sau „de ce nu mă duc la mai multe diete?.