Koji je vrag zagovornik programera?

TL; DR: Zagovornik programera je najbolji prijatelj programera!

U posljednje tri godine ili tako nekako, posvećujem svoje profesionalno vrijeme i ogromnu količinu svog osobnog vremena kako bih pomogao kolegama programerima da budu uspješni i produktivni s alatima koje vole i koriste. Ti alati uključuju web platforme, kao što su JavaScript, PWA i Angular, Google Cloud Platform, Actions on Google i chatbotovi općenito. To sam radio kao zagovornik za programere.

Ovaj post na blogu temelji se na mom osobnom iskustvu kao zagovornika za programere. Stvari koje sam naučio osobno, ali i od drugih programera iz drugih tvrtki s kojima sam radio.

Moja priča…

Prije trinaest godina, kada sam studirao elektroniku, a zatim računalstvo, studirao sam elektroniku, učili su nas svim teorijama o računalnim i programskim paradigmama, strukturama podataka, dizajnerskim uzorcima, kompajlerima i jezicima, i tako dalje. U osnovi, naučeni smo svemu što mlađi softverski inženjeri moraju znati da bi započeli svoju karijeru.

Međutim, vjerojatno sam bio previše strastven u ovome jer sam uvijek radio više od potrebnih predavanja. Mislim, naginjanje Jave na fakultetu bilo je u redu, ali postajalo mi je dosadno. Većinu svog slobodnog vremena provodio sam učeći nove programske paradigme na jezicima kao što su Python, PHP, Assembly 8086, oCaml i JavaScript. Tada sam otkrio i zavolio JavaScript i od tada odlučio da se uvijek kladim na JavaScript i nikada nisam požalio.

Morao sam učiti nove jezike gradeći alate, skripte, aplikacije, sve što bi mi moglo pomoći u razumijevanju unutrašnjosti jezika - nadilazeći sintaksu. Naravno, tada sam još bio student i pokušavao sam shvatiti kako stvari funkcioniraju i kako ispraviti sve greške koje sam stvarao.

Tada je došla zajednica programera. Zahvaljujući Webu, mogao bih zatražiti i dobiti pomoć od drugih ljudskih bića - zajednice profesionalnih i iskusnih programera. Bio sam zadivljen! Tonu sam naučio od programera čitajući njihove uvide na njihovim postovima na blogu, gledajući njihove tutorijale na Youtubeu i raspravljajući o različitim temama na mnogim tehničkim forumima i IRC-u (da, još uvijek postoji!).

Mnogo sam naučio iz onoga što su drugi programeri dijelili besplatno, samo da bi pomogli drugima. Zbog toga sam se jednostavno odlučio pridružiti zajednici i dati sve od sebe da podijelim ono što učim. Za mene je ovo bilo ispravno: drugi ljudi pomogli su mi da postanem dobar programer, sada je na mene red da vratim i pomognem drugim programerima. I tada sam počeo brinuti o produktivnosti drugih programera - i mojoj, naravno. Svi smo u istom čamcu, zar ne?

Kako sam profesionalno rastao, počeo sam razmišljati o novim načinima kako pomoći kolegama programerima. Mislim, pisanje članaka (ovdje za Medium i za časopise) sjajan je početak, ali nisam uspio izmjeriti utjecaj mojih postova na moju ciljanu publiku. Tada sam odlučio izaći i upoznati one programere i nadao sam se da ću s njima podijeliti i učiti od njih u stvarnom životu. Nije iznenađujuće da su susreti, konferencije i događaji za programere tamo gdje možete pronaći sve ove strastvene programere.

Napomena: Ako ste strastveni u pomaganju drugim programerima, možete (nadamo se) dobiti i nominaciju za program Google Developers Experts (ili slične programe). Imao sam tu sreću da sam se pridružio GDE programu prije tri godine i mogao sam pomoći i utjecati na još više kolega programera! Hvala ti, Google!

Duga priča ...

Evo me danas, još uvijek uživam u pomaganju kolegama programerima. I, vjerovali ili ne, ovo mi je postalo puno radno vrijeme u SFEIR-u kao viši advokat za razvojne programere.

Pa, koji je zapravo vrag Developer Advocate? Što čini izvrsnog zagovornika programera? I zašto angažiranje strastvenih programera zagovara ispravnu odluku koju treba donijeti kao organizaciju? Dopustite mi da pokušam odgovoriti na ova pitanja.

Što je Developer Advocate?

Prvo najprije, razjasnimo svima: Zagovornici programera također su inženjeri. Imaju snažnu tehničku pozadinu u svojim poljima, izgradili su i poslali aplikacije za prod. Neki od njih čak su prekinuli proizvodnju ili slučajno izbrisali baze podataka kupaca (istinita priča)!

S obzirom na ovaj zahtjev, zagovornici programera ne bi trebali biti ljudi iz marketinga ili prodaje - postoje uloge koje su prikladnije za te zaposlenike. Međutim, zagovornici programera trebali bi moći dati povratne informacije marketingu ili prodaji. Još važnije - barem meni - dati povratne informacije o upravljanju proizvodima, utjecati na putokaz proizvoda koji se, naravno, temelji na potrebama programera.

Povijesno gledano, mnoge su tehnološke tvrtke angažirale zagovornike programera da se zalažu za njihove platforme pomažući krajnjim programerima da koriste njihove proizvode, a to i dalje čine. Dakle, pravo značenje programera je netko čiji je posao pomagati programerima da budu uspješni s platformom ili tehnologijom . Uloga programera također je da djeluje kao most između inženjerskog tima i zajednice programera. Njihov posao je da daju povratne informacije objema stranama, podjednako, na oba načina.

Zastupnik programera je netko tko se istinski zalaže za programere, a ne samo platforma. Programeri bi trebali biti glavni prioritet programera.

Što čini izvrsnog zagovornika programera?

Vjerujem da se inženjeri ne mogu tek tako pretvoriti u zagovornike programera jer su to tražili njihovi menadžeri. Također mislim da su zastupnici programera sami po sebi strastveni i altruistički ljudi. Ove se karakteristike ne mogu jednostavno naučiti ili naučiti.

Osobno sam pokušao uvjeriti nekoliko programera da počnu dijeliti svoje znanje, ali pogriješio sam! Otkrio sam da su neki inženjeri samo ugodnije pisati kod (tko ne bi bio?) I posvećeni rješavanju problema ili stvaranju proizvoda. Dijeljenje znanja s drugim programerima nije glavni prioritet svakog inženjera. To je potpuno u redu i mora se poštivati. Ako ste menadžer, nemojte prisiljavati svoje inženjere da se pretvaraju da su ono što nisu i neka im bude u neugodnim situacijama. Nitko ne želi biti u ovom položaju.

Dakle, što čini sjajnog zagovornika programera? Saznao sam da mnogi, ako ne i svi, zastupnici programera dijele sljedeće karakteristike.

Neprekidno učenje

Kao inženjeri, nikada ne prestajemo učiti, čak i nakon završetka studija. Nesumnjivo je da postoji istinsko znanje. Zastupnici programera, kao i svaki drugi inženjer, strastveni su učenici. Svuda traže znanje. Koriste svaki medij za koji znaju kako bi ostali u toku. Zastupnici programera koje poznajem zalažu se za platformu ili proizvod, a također pokušavaju koristiti i druge proizvode - čak i one proizvedene od konkurenata. Zašto? Budući da krajnji programeri obično moraju koristiti različite proizvode i alate za izgradnju svojih aplikacija. Zastupnik programera to zna!

Razmišljanje izvan okvira

Učenje novih stvari ne vrijedi ako ih ne izazivate. Nikada ne uzimam nešto što sam upravo naučio zdravo za gotovo. Uvijek se pitam za ista pitanja: "Zašto ...?", "Što ako ...?", "Kako se ova značajka može poboljšati?", "Kako ovo funkcionira ispod haube?" Naravno, svaki znatiželjni inženjer prirodno bi postavljao ova pitanja.

Zastupnici programera nisu iznimka. Morali bi pružiti objašnjenje na visokoj razini o tome kako neka značajka radi ispod haube ili jednostavno pružiti neke tehničke uvide o proizvodu ili platformi za koju se zalažu. Mnogi će krajnji programeri prije ili kasnije pitati o tome, zato budite spremni.

Izgradnja stvarnih aplikacija

Učiti nove stvari i znati teoriju koja stoji iza njih ne vrijedi ako ne izrađujete aplikacije pomoću njih. Ako ćete zagovarati programere, najmanje što možete učiniti je da se stavite na kraj programera pokušavajući svladati proizvod i platformu za koju se zalažete. Ovo je trenutak u kojem će vaše inženjerske vještine biti korisne.

Izgradnja stvarnih aplikacija pomoću alata za koje se zalažete također će vam pomoći da bolje razumijete njihova ograničenja i nadamo se da ćete predložiti neka poboljšanja inženjerskom timu. Posao odvjetnika za programere je također osigurati da platforma i alati koje zagovarate pružaju najbolje iskustvo za programere.

Dijeljenje i briga

Sposobnost "dijeljenja" informacija sa zajednicom programera važan je dio uloge programera. Ne možete biti u ovoj ulozi ako mrzite dijeljenje ili pomaganje drugima. I to je u redu, nismo svi altruisti! Ali onda će pretvaranje da zagovaram programere biti stvarno - pričekajte - stvarno izazovno!

Također, većina tvrtki u opisima poslova zahtijeva dobre usmene i pisane komunikacijske vještine za ulogu programera. Iako se slažem s tim zahtjevom, također vjerujem da "komunikacijske vještine" ne bi trebale zamijeniti ili miješati sa vještinom "dijeljenja i brige". Da preformuliramo ovo, unajmljivanje razvojnog zagovornika koji istinski voli dijeliti i pomagati drugima puno je važnije od nekoga tko je razvio dobre komunikacijske vještine. Zapravo, prvo je teže razviti!

Dakle, ukratko: želite li angažirati sjajnog Zastupnika za programere? Zatim unajmite znatiželjnog i strastvenog učenika koji može razmišljati izvan okvira, s dobrim inženjerskim vještinama i istinskim vještinama „dijeljenja i empatije“.

Molimo vas dajte ovom članku nekoliko pljeska i javite mi koliko vam se svidio na Twitteru @manekinekko i pobrinite se da me pratite za više sadržaja ?