O roli testovacích úloh v životě vývojáře

Kolik technických pohovorů jste v životě absolvovali?

Za posledních pět let jsem absolvoval 35 technických pohovorů všech představitelných typů a specifik – od kazašských startupů pro kolektivní nákup masa na zimu až po německé a americké fintech služby a banky; se zaměřením na programování, poskytování a řízení; na dálku a v kanceláři; časově omezené a neomezené; stresující a uvolněné, v různých jazycích.

To ve spojení s přibližně 20 pohovory, které jsem sám vedl jako zaměstnavatel - dostatečný počet na to, abych se stal králem pohovorů, abych učinil následující postřeh (zpočátku zcela nezřejmý) a utvrdil se v něm: Jsem přesvědčen, že z velké části díky tolika rozhovorům to začíná vypadat jako okrajový zvyk, vystudoval jsem svůj stack na profesionální úrovni a stal se ze mě konkurenční specialista, přestože jsem již 10 let pracoval ve vývoji webu.

Tento článek je určen programátorům, kteří jsou na začátku své cesty a ještě nevyčerpali hloubku svých znalostí. V něm chci rozšířit tezi o kolosálních vzdělávacích přínosech testovacích úloh a technických otázek kladených v rozhovorech - a pozvat všechny na můj nově napsaný telegram bot ActualizeBot, kde podle mého plánu můžete absolvovat technický pohovor minimálně každý den, dokud neskončí. A aby nekončily, můžete se také podělit o zajímavý technický úkol, otázku nebo užitečnou/zábavnou situaci, kterou jste během pohovoru zažili.

Níže vám řeknu více o robotovi, pojďme nejprve zjistit, proč je tak důležité znát a chápat odpovědi na tyto technické otázky a úkoly, i když roky úspěšně provozujete projekty na volné noze.

Proč kvalita našich základních znalostí zanechává mnoho přání?

Technické pohovory, pokud jste se ještě nestali králem pohovorů, jsou pro tělo vážným stresem, stejně jako hledání práce obecně – ať už jste začínající specialista, switcher nebo vývojář, který v jednom pracoval místo na dlouhou dobu (a v naší době za „dlouho“ lze považovat rok).

V mnoha rozhovorech je tento stres spojen s lidským faktorem. Vaším tazatelem nemusí být Alena Vladimirskaya, ale obyčejný programátor, od kterého lze jen těžko očekávat adekvátní úkoly a jejich hodnocení, nebo tvrdý týmový šéf, který si počká na okamžik, kdy srazí všechnu svou přísnost. jeho oči na vás, s otázkou: Co je pro vás agilní!?

Jednoho dne, aniž bych dal potřebnou, ale, jak chápete, nepředvídatelnou odpověď na tuto otázku, jsem zůstal bez nabídky, za což jsem byl neuvěřitelně rád.

Tím, že se snažíme tomuto stresu a obecně zbytečným pohybům vyhýbat, se distancujeme nejen od hlasitého odhalování naší neznalosti některých základních rysů jazyka, ale také od toho, abychom tuto neznalost alespoň trochu omezili.

Problém je v tom, že v praxi existuje jen málo míst, kde můžeme získat tuto třídu problémů.
Každý vývojář, který musel pracovat na několika místech, potvrdí, že zásadní nebo kreativní problémy uváděné v rozhovorech mají jen zřídka něco společného s tím, s čím se programátor zabývá v reálném životě – žádné rekurze, grafy a asynchronní systémy řízení výtahů na planetě s negativním gravitace v jiném rameni galaxie. Bohužel.

Ve vztahu k mému nativnímu JavaScriptu je dobrý příklad – kdyby se neobjevil React.JS, 98 % programátorů JavaScriptu by úspěšně pokračovalo v blažené nevědomosti o tom, co je bind – více než 20 let po jeho objevení – a pokračovalo by být zmatený, dostávat na něj otázky při pohovorech a dál by s ním pracovali jen ti, kteří vymysleli všechny tyto vysoce abstraktní knihovny, rámce a moduly. Dnes se díky reakci toto číslo snížilo na pocitově 97 %.

Je zřejmé, že když vidí „izolaci od reality“ těchto úkolů, mnoho vývojářů je ignoruje nebo ztrácí čas tím, že se do nich ponoří – a nadále pokračují ve své každodenní rutině, tedy obrazně řečeno, procházejí se minovým polem vývoje nejen pro výrobu bez detektoru min, ale také aniž by věděli, že jsou v minovém poli.

Jaké jsou důsledky nedostatečné základní znalosti jazyka?

Odpověď na tuto otázku se zdá banální, ale z nějakého důvodu je lidská přirozenost vždy odsouvat její řešení do nejzazšího kouta – a to hraje smutnou roli v životech mladších a středních programátorů a prodlužuje jejich cestu k výšinám (a hloubkám ) jazykových znalostí o několik let.

Aplikační kód využívající frameworky a knihovny, které jsou zvyklí psát každý den, nelze považovat za spolehlivý, pokud jej píší bez dostatečného porozumění různým aspektům jeho provádění. Dobrým příkladem toho ze světa JavaScriptu je osud knihovny JQuery, která byla kdysi motorem pokroku a dnes, jako uzavřené pole znalostí, oddělené od zbytku jazyka, zaujímá své přirozené místo v trh - poloprofesionální skripty narychlo napsané a fungující podle potřeby jako dárek ke stejně rychlému rozložení na bootstrapu od levných nezávislých pracovníků.

Budoucnost projektů vyvíjených tímto nezodpovědným přístupem, byť z neznalosti, je prozaická a krátkodobá: výrazné ztráty času z ničeho nic, neúspěchy, finanční a reputační ztráty a v důsledku toho pokles nadšení pro pokračování spolupráce.

Na druhou stranu pro člověka, který si zvolil cestu programátora, se jen máloco srovná s potěšením z pochopení toho, co dělá. Pochopení, že se stejně jako baron Munchausen prohání minovým polem na koni. Netřeba dodávat, že slušný zaměstnavatel jasně vidí lidi, kteří se bezohledně procházejí minovým polem, a lidi, kteří zamrzli v nerozhodnosti udělat krok v situaci, kdy mohou běhat a skákat, aniž by o čemkoli přemýšleli?

ActualizeBot

Když jsem viděl výhody pohovorů a také jsem si uvědomil, že chodit na prázdné pohovory není úplně etické, řekl jsem si, že by bylo skvělé vytvořit robota, kde by se začátečník nebo vývojář, který přechází do jiného jazyka, mohl zapojit do vzdělávacího školení, aniž by se skutečné rozhovory do té míry, ve kterých se mi to stalo. A při vzpomínce na to, jak programátoři rádi diskutují a porovnávají problémy, které museli vyřešit – zvláště pokud to bylo něco netriviálního – jsem si uvědomil, že všechno sedí, odmítl jsem všechny pochybnosti a voila.

Robot má v současné době 3 jednoduché funkce:

  • Předplatné konkrétního jazyka/rámce, abyste pro něj mohli přijímat nové úkoly. Přihlásíte se k odběru a jakmile přijdou úkoly, obdržíte je v denním zpravodaji
  • Publikování úkolu nebo testovacího úkolu – V mé knize se říká, že sdílení je starost
  • Vynikající generátor jmen, pomocí kterého si můžete vybrat optimální podpis pro text vámi publikovaného úkolu, včetně ženských slovníků, ne bez feministek

V současné době jsou k dispozici na výběr následující jazyky: JavaScript, Java, Python, PHP, MySQL. Výběr je poněkud omezený kvůli limitům mého chápání. Doufám, že tento seznam doplním s pomocí komunity habra.

Bot je spuštěn v čistě rock and roll formátu, platba za cokoliv se neočekává.
Můžete na něj přejít pomocí tohoto odkazu: ActualizeBot

Stručně o technické realizaci

Tento bot je jedním z několika malých projektů, kde přináším první veřejnou verzi mého open source minirámce pro vývoj robotů se složitou strukturou, láskyplně pojmenované Hobot a dostupné v NPM pro hardcore lidi.

Framework je postaven na bázi Telegraf.JS a TypeScript, jeho nula-nula-první verze, vybavená příkladem použití, je k nahlédnutí na githabe a hned to zkus. Brzy nahraju verzi 0.0.2, rozšířenou a učesanou pro člověka zvenčí a budu jí věnovat samostatný článek (chobot). Budu rád, když to pro někoho dopadne stejně relevantní jako pro mě.

Kolika pohovorů jste se tedy museli zúčastnit?
Jsem si jistý, že máte co říct!

Zdroj: www.habr.com

Přidat komentář