Tungkol sa papel ng mga pagsubok na gawain sa buhay ng isang developer

Ilang mga teknikal na panayam ang mayroon ka sa iyong buhay?

Sa nakalipas na limang taon, dumalo ako sa 35 teknikal na panayam ng bawat maiisip na uri at partikularidad - mula sa Kazakh na mga startup para sa kolektibong pagbili ng karne para sa taglamig hanggang sa mga serbisyo at bangko ng German at American fintech; na may pagtuon sa programming, paghahatid at pamamahala; remote at sa opisina; limitado at walang limitasyon sa oras; nakaka-stress at nakakarelaks, sa iba't ibang wika.

Ito, kasama ang ~20 mga panayam na ginawa ko sa aking sarili bilang isang tagapag-empleyo - isang sapat na bilang para sa akin na maging hari ng mga panayam upang gawin ang sumusunod na obserbasyon (sa una ay ganap na hindi halata) at itatag ang aking sarili dito: Kumbinsido ako na sa malaking bahagi salamat sa napakaraming panayam, nagsisimula itong magmukhang marginal na ugali, pinag-aralan ko ang aking stack sa isang propesyonal na antas at naging isang mapagkumpitensyang espesyalista, sa kabila ng katotohanan na nagtrabaho na ako sa web development sa loob ng 10 taon.

Ang artikulong ito ay para sa mga programmer na nasa simula ng kanilang paglalakbay at hindi pa nauubos ang lalim ng kanilang kaalaman. Dito, gusto kong palawakin ang thesis tungkol sa napakalaking benepisyong pang-edukasyon ng mga gawain sa pagsubok at mga teknikal na tanong na itinanong sa mga panayam - at anyayahan ang lahat sa aking bagong nakasulat na telegram bot ActualizeBot, kung saan, ayon sa aking plano, maaari kang kumuha ng isang teknikal na panayam kahit araw-araw hanggang sa matapos sila. At para hindi matapos ang mga ito, maaari ka ring magbahagi ng isang kawili-wiling teknikal na gawain, tanong, o isang kapaki-pakinabang/nakakatuwang sitwasyon na naranasan sa panahon ng isang panayam.

Sasabihin ko sa iyo ang higit pa tungkol sa bot sa ibaba, alamin muna natin kung bakit napakahalagang malaman at maunawaan ang mga sagot sa mga teknikal na tanong at gawaing ito, kahit na matagumpay kang nagpapatakbo ng mga freelance na proyekto sa loob ng maraming taon.

Bakit ang kalidad ng ating pangunahing kaalaman ay nag-iiwan ng maraming bagay na naisin?

Ang mga teknikal na panayam, kung hindi ka pa naging hari ng mga panayam, ay isang malubhang stress para sa katawan, tulad ng paghahanap ng trabaho sa pangkalahatan - kung ikaw ay isang baguhan na espesyalista, isang switcher, o isang developer na nagtrabaho sa isang lugar para sa isang mahabang panahon (at sa ating panahon "mahaba" ay maaaring ituring na isang taon).

Sa maraming mga panayam, mayroong isang kadahilanan ng tao na pinagsama ang stress na ito. Ang iyong tagapanayam ay maaaring hindi si Alena Vladimirskaya, ngunit isang ordinaryong programmer-as-you-found, kung saan mahirap umasa ng sapat na mga gawain at ang kanilang pagsusuri, o isang hardcore team lead na maghihintay sa sandaling ibagsak ang lahat ng kanyang kalubhaan sa ang kanyang mga mata sa iyo, nagtatanong ng tanong: Ano ang para sa iyo maliksi!?

Isang araw, nang hindi nagbibigay ng kinakailangan, ngunit, tulad ng naiintindihan mo, hindi mahuhulaan na sagot sa tanong na ito, naiwan akong walang alok, na labis kong ikinatuwa.

Sa pamamagitan ng pagsisikap na maiwasan ang stress na ito at ang mga hindi kinakailangang paggalaw sa pangkalahatan, inilalayo natin ang ating sarili hindi lamang sa malakas na pagkakalantad ng ating kamangmangan sa ilang mga pangunahing katangian ng wika, kundi pati na rin sa pagbabawas ng kamangmangan na ito kahit kaunti.

Ang problema ay na sa pagsasanay ay may ilang mga lugar kung saan maaari naming makuha ang klase ng mga problema.
Ang sinumang developer na kailangang magtrabaho sa maraming lugar ay kukumpirmahin na ang mga pangunahing o malikhaing problema na idinulot sa mga panayam ay bihirang may kinalaman sa kung ano ang tinatalakay ng isang programmer sa totoong buhay - walang mga recursion, mga graph at asynchronous na elevator control system sa planeta na may negatibong gravity sa isa pang braso ng kalawakan. Sa kasamaang palad.

Kaugnay ng aking katutubong JavaScript, mayroong isang magandang halimbawa - kung hindi lumitaw ang React.JS, 98% ng mga programmer ng JavaScript ay matagumpay na magpapatuloy na mamuhay sa napakasayang kamangmangan sa kung ano ang bind - higit sa 20 taon pagkatapos ng paglitaw nito - at magpapatuloy upang mataranta , makatanggap ng mga tanong tungkol dito sa mga panayam, at tanging ang mga nag-imbento ng lahat ng napaka-abstract na mga aklatan, mga balangkas, at mga module ang patuloy na gagana dito. Ngayon, salamat sa reaksyon, ang bilang na ito ay nabawasan sa kung ano ang nararamdaman tulad ng 97%.

Malinaw, na nakikita ang "paghihiwalay mula sa katotohanan" ng mga gawaing ito, maraming mga developer ang binabalewala ang mga ito o nag-aaksaya ng oras sa paglubog ng kanilang sarili sa mga ito - at patuloy na nagpapatuloy sa kanilang pang-araw-araw na gawain, iyon ay, sa makasagisag na pagsasalita, naglalakad sa mina ng pag-unlad para sa produksyon hindi lamang walang mine detector, ngunit hindi rin alam na sila ay nasa isang minefield.

Ano ang mga kahihinatnan ng kakulangan ng pangunahing kaalaman sa isang wika?

Ang sagot sa tanong na ito ay tila bawal, ngunit sa ilang kadahilanan ay likas na katangian ng tao na palaging itulak ang solusyon nito sa malayong sulok - at ito ay gumaganap ng isang malungkot na papel sa buhay ng mga junior at middle programmer, na nagpapahaba ng kanilang landas sa taas (at kalaliman. ) ng kaalaman sa wika sa loob ng ilang taon.

Ang application code na gumagamit ng mga framework at library na nakasanayan nilang isulat araw-araw ay hindi maituturing na maaasahan kung isusulat nila ito nang walang sapat na pag-unawa sa iba't ibang aspeto ng pagpapatupad nito. Ang isang magandang paglalarawan nito mula sa mundo ng JavaScript ay ang kapalaran ng JQuery library, na dating makina ng pag-unlad at ngayon, bilang isang self-enclosed na larangan ng kaalaman, na diborsiyado mula sa iba pang wika, ay tumatagal ng natural na lugar sa ang market - semi-propesyonal na mga script na mabilis na nagsulat at gumagana kung kinakailangan bilang regalo sa parehong mabilis na layout sa bootstrap mula sa mga murang freelancer.

Ang kinabukasan ng mga proyekto na binuo na may tulad na isang iresponsableng diskarte, kahit na dahil sa kamangmangan, ay prosaic at panandalian: makabuluhang pagkalugi ng oras sa labas ng asul, pagkabigo, pinansiyal at reputasyon pagkalugi at, bilang isang resulta, ang pagbaba ng sigasig para sa patuloy na pagtutulungan.

Sa kabilang banda, para sa isang taong pumili ng landas ng isang programmer, kakaunti ang maihahambing sa kasiyahan ng pag-unawa sa kanyang ginagawa. Ang pag-unawa na siya, tulad ni Baron Munchausen, ay tumatakbo sa isang minahan na nakasakay sa kabayo. Hindi na kailangang sabihin, ang isang disenteng tagapag-empleyo ay malinaw na nakikita ang mga taong naglalakad nang walang ingat sa isang minefield at ang mga taong nagyelo sa pag-aalinlangan na gumawa ng isang hakbang sa isang sitwasyon kung saan maaari silang tumakbo at tumalon nang hindi iniisip ang anumang bagay?

ActualizeBot

Nang makita ang mga benepisyo ng mga panayam, at napagtanto din na ang pagpunta sa mga blangkong panayam ay hindi ganap na etikal, naisip ko na magiging mahusay na gumawa ng isang bot kung saan ang isang baguhan o isang developer na lumipat sa ibang wika ay maaaring makisali sa pang-edukasyon na pagsasanay nang hindi gumagamit ng totoong mga panayam sa lawak na iyon, kung saan nangyari ito sa akin. At ang pag-alala kung paano gustong talakayin at paghambingin ng mga programmer ang mga problema na kailangan nilang lutasin - lalo na kung ito ay isang bagay na hindi mahalaga - napagtanto ko na ang lahat ay angkop, tinanggihan ang lahat ng mga pagdududa at voila.

Ang bot ay kasalukuyang may 3 simpleng function:

  • Subscription sa isang partikular na wika/balangkas upang makatanggap ng mga bagong gawain para dito. Nag-subscribe ka at pagdating ng mga gawain, matatanggap mo ang mga ito sa pang-araw-araw na newsletter
  • Pag-publish ng isang gawain o pagsubok na gawain - Sa aking libro sinasabi nila ang pagbabahagi ay pagmamalasakit
  • Isang mahusay na generator ng pangalan kung saan maaari mong piliin ang pinakamainam na lagda para sa teksto ng gawain na iyong nai-publish, kabilang ang mga diksyonaryo ng pambabae, hindi nang walang mga feminist

Sa kasalukuyan ang mga sumusunod na wika ay magagamit upang pumili mula sa: JavaScript, Java, Python, PHP, MySQL. Ang pagpili ay medyo limitado dahil sa limitasyon ng aking pang-unawa. Umaasa akong magdagdag sa listahang ito sa tulong ng komunidad ng habra.

Ang bot ay inilunsad sa isang purong rock and roll na format; ang pagbabayad para sa anumang bagay ay hindi inaasahan.
Maaari kang pumunta dito gamit ang link na ito: ActualizeBot

Maikling tungkol sa teknikal na pagpapatupad

Ang bot na ito ay isa sa ilang maliliit na proyekto kung saan dinadala ko ang unang pampublikong bersyon ng aking open source na miniframework para sa pagbuo ng mga bot na may kumplikadong istraktura, na may pagmamahal na pinangalanang Hobot at available sa NPM para sa mga hardcore na tao.

Ang balangkas ay binuo batay sa Telegraf.JS at TypeScript, ang zero-zero-first na bersyon nito, na nilagyan ng halimbawa ng paggamit, ay maaaring matingnan sa github at subukan ito kaagad. Malapit na akong mag-upload ng bersyon 0.0.2, pinalawak at sinusuklay para sa isang tao mula sa labas, at maglalaan ng isang hiwalay na artikulo dito (ang puno ng kahoy). Matutuwa ako kung ito ay magiging kasing-katuturan para sa isang tao tulad ng para sa akin.

Kaya, ilang panayam ang kailangan mong dumalo?
Sigurado akong may sasabihin ka!

Pinagmulan: www.habr.com

Magdagdag ng komento