Тест тапсырмаларының әзірлеуші ​​өміріндегі рөлі туралы

Сіздің өміріңізде қанша техникалық сұхбат болды?

Соңғы бес жыл ішінде мен барлық елестететін түрдегі және ерекшеліктегі 35 техникалық сұхбатқа қатыстым - қыста ет ұжымдық сатып алу үшін қазақстандық стартаптардан неміс және американдық финтех қызметтері мен банктеріне дейін; бағдарламалауға, жеткізуге және басқаруға назар аудара отырып; қашықтан және кеңседе; шектеулі және шектеусіз уақыт; стресстік және босаңсыған, әртүрлі тілдерде.

Бұл мен жұмыс беруші ретінде өткізген 20 сұхбатпен қоса, сұхбат патшасы болу үшін келесі байқауды (бастапқыда мүлдем түсініксіз) жасауға және оған өзімді дәлелдеуге жеткілікті сан: Мен көп жағдайда екеніне сенімдімін. көптеген сұхбаттардың арқасында бұл маргиналды әдетке ұқсай бастады, мен веб-әзірлеуде 10 жыл жұмыс істегеніме қарамастан, мен өз стекімді кәсіби деңгейде зерттедім және бәсекеге қабілетті маман болдым.

Бұл мақала өз саяхатының басында тұрған және әлі де терең білімдерін сарқып үлгермеген бағдарламашыларға арналған. Онда мен тест тапсырмалары мен сұхбатта қойылатын техникалық сұрақтардың үлкен білім беру артықшылықтары туралы диссертацияны кеңейткім келеді - және барлығын жаңадан жазылған телеграмма ботыма шақырғым келеді. ActualizeBot, мұнда, менің жоспарым бойынша, сіз кем дегенде күн сайын олар аяқталғанша техникалық сұхбат ала аласыз. Олар аяқталмауы үшін сіз қызықты техникалық тапсырманы, сұрақты немесе сұхбат кезінде болған пайдалы/қызықты жағдайды бөлісе аласыз.

Мен сізге төменде бот туралы толығырақ айтып беремін, алдымен осы техникалық сұрақтар мен тапсырмалардың жауаптарын білу және түсіну неліктен соншалықты маңызды екенін анықтап алайық, тіпті егер сіз жылдар бойы фрилансер жобаларды сәтті жүргізіп жатсаңыз да.

Неліктен біздің іргелі біліміміздің сапасы көп нәрсені қалаусыз қалдырады?

Техникалық сұхбат, егер сіз әлі сұхбаттардың патшасы болмасаңыз, бұл дене үшін ауыр стресс, жалпы жұмыс іздеу сияқты - сіз жаңадан келген маман, ауыстырғыш немесе бір жерде жұмыс істеген әзірлеуші ​​болсаңыз да. ұзақ уақыт бойы орын (және біздің уақытта «ұзақ» жыл деп санауға болады).

Көптеген сұхбаттарда бұл стрессті күшейтетін адам факторы бар. Сіздің сұхбат берушіңіз Алена Владимирская емес, қарапайым бағдарламашы болуы мүмкін, одан адекватты тапсырмалар мен олардың бағасын күту қиын немесе өзінің барлық ауырлығын түсіретін сәтті күтетін команданың жетекші жетекшісі. Оның көзі саған қарап, сұрақ қояды: Шапшаң сізге не керек!?

Бір күні бұл сұраққа қажетті, бірақ, өзіңіз түсінгендей, күтпеген жауап бермей, мен керемет қуанған ұсыныссыз қалдым.

Бұл күйзелістен және жалпы қажетсіз қозғалыстардан аулақ болуға тырысу арқылы біз өзімізді тілдің кейбір негізгі ерекшеліктерін білмеуіміздің қатты әсерінен ғана емес, сонымен бірге бұл надандықты аз да болса азайтамыз.

Мәселе мынада, іс жүзінде біз есептердің бұл класын алатын орындар аз.
Бірнеше жерде жұмыс істеуге тура келген кез-келген әзірлеуші ​​сұхбатта туындаған іргелі немесе шығармашылық мәселелердің бағдарламашының нақты өмірде айналысатын нәрселерімен сирек байланысы бар екенін растайды - планетада теріс әсер ететін рекурсиялар, графиктер және асинхронды лифт басқару жүйелері жоқ. галактиканың басқа қолындағы гравитация. Өкінішке орай.

Менің туған JavaScript-ке қатысты жақсы мысал бар - егер React.JS пайда болмаса, JavaScript бағдарламалаушыларының 98% -ы пайда болғаннан кейін 20 жылдан астам уақыт өтсе де, байланыстырудың не екенін білмей бақытты өмір сүруді жалғастырар еді. Сұхбат кезінде бұл туралы сұрақтарды алған кезде таң қалуға болады және тек осы абстрактілі кітапханаларды, құрылымдар мен модульдерді ойлап тапқандар ғана онымен жұмыс істей береді. Бүгінгі күні реакцияның арқасында бұл сан 97%-ға дейін төмендеді.

Әлбетте, бұл міндеттердің «шындықтан оқшаулануын» көре отырып, көптеген әзірлеушілер оларды елемейді немесе оларға шомылу үшін уақытты босқа кетіреді - және өздерінің күнделікті жұмысымен айналысуды жалғастырады, яғни бейнелеп айтқанда, өндірісті игерудің кен орнында жүруді жалғастырады. мина детекторынсыз, сонымен қатар олардың мина алаңында екенін білмей.

Тілдің іргелі білімінің болмауының салдары қандай?

Бұл сұрақтың жауабы қарапайым болып көрінеді, бірақ қандай да бір себептермен оның шешімін әрқашан алыс бұрышқа итермелейтін адам табиғаты - және бұл кіші және орта бағдарламашылардың өмірінде қайғылы рөл атқарады, олардың биіктерге (және тереңдіктерге) жолын ұзартады. ) тіл білімін екі жыл.

Күнделікті жазуға дағдыланған фреймворктар мен кітапханаларды пайдаланатын қолданба коды, егер олар оны орындаудың әртүрлі аспектілерін жеткілікті түсінбей жазса, сенімді деп санауға болмайды. JavaScript әлемінен мұның жақсы көрінісі - JQuery кітапханасының тағдыры, ол бір кездері прогрестің қозғалтқышы болған және бүгінде басқа тілден ажыраған, өздігінен жабық білім саласы бола отырып, өзінің табиғи орнын алады. нарық - қымбат емес фрилансерлерден жүктелетін бірдей жылдам орналасуға сыйлық ретінде асығыс жазылған және қажетінше жұмыс істейтін жартылай кәсіби сценарийлер.

Осындай жауапсыз көзқараспен жасалған жобалардың келешегі, білместіктен болса да, прозалық және қысқа мерзімді: күтпеген уақытта айтарлықтай жоғалтулар, сәтсіздіктер, қаржылық және беделді жоғалтулар және соның салдарынан жалғастыруға деген ынтаның төмендеуі. ынтымақтастық.

Екінші жағынан, бағдарламашы жолын таңдаған адам үшін оның не істеп жатқанын түсіну ләззатымен салыстыруға болмайды. Оның Барон Мюнхаузен сияқты атпен мина алаңында жүгіріп келе жатқанын түсінді. Айтпақшы, әдепті жұмыс беруші мина алаңы арқылы абайсызда өтіп бара жатқан адамдарды және ештеңені ойламай жүгіріп, секіретін жағдайда бір қадам жасауға шешім қабылдамай қатып қалған адамдарды анық көре алады?

ActualizeBot

Сұхбаттың пайдасын көріп, сонымен қатар бос сұхбатқа бару мүлдем этикалық емес екенін түсінгендіктен, мен жаңадан бастаған немесе басқа тілге трансплантациялаушы әзірлеушіге жүгінбей-ақ білім беру тренингтерімен айналыса алатын бот жасау керемет болар еді деп ойладым. Менімен болған осындай дәрежедегі нақты сұхбаттар. Бағдарламашылар шешуге тура келген мәселелерді талқылауды және салыстыруды қалай жақсы көретінін еске түсіре отырып, әсіресе бұл тривиальды емес нәрсе болса, мен бәрі сәйкес келетінін түсіндім, барлық күмән мен вуиладан бас тарттым.

Қазіргі уақытта боттың 3 қарапайым функциясы бар:

  • Жаңа тапсырмаларды алу үшін белгілі бір тілге/жақтауға жазылу. Сіз жазыласыз және тапсырмалар келгенде, сіз оларды күнделікті ақпараттық бюллетеньде аласыз
  • Тапсырманы немесе тест тапсырмасын жариялау - Менің кітабымда бөлісу - қамқорлық дейді
  • Сіз жариялаған тапсырманың мәтіні үшін оңтайлы қолтаңбаны таңдауға болатын тамаша атау генераторы, соның ішінде феминистерсіз емес, әйел сөздіктері

Қазіргі уақытта келесі тілдерді таңдауға болады: JavaScript, Java, Python, PHP, MySQL. Таңдау менің түсінігімнің шегіне байланысты біршама шектеулі. Мен хабра қауымдастығының көмегімен бұл тізімге қосыламын деп үміттенемін.

Бот тек рок-н-ролл пішімінде іске қосылған, ештеңе үшін төлем күтілмейді.
Оған мына сілтеме арқылы өтуге болады: ActualizeBot

Техникалық іске асыру туралы қысқаша

Бұл бот бірнеше шағын жобалардың бірі болып табылады, онда мен Hobot деп аталатын күрделі құрылымы бар боттарды әзірлеуге арналған ашық бастапқы шағын фреймнің алғашқы жалпыға қолжетімді нұсқасын әкеліп жатырмын және қатты адамдар үшін NPM жүйесінде қолжетімді.

Фреймворк Telegraf.JS және TypeScript негізінде құрастырылған, оның нөлге тең бірінші нұсқасын пайдалану үлгісімен жабдықталған мына жерден көруге болады. гитабе және оны бірден көріңіз. Жақында мен 0.0.2 нұсқасын жүктеймін, сырттан адамға арналған кеңейтілген және тарақталған және оған жеке мақала арнаймын (магистраль). Мен үшін сияқты біреу үшін маңызды болып шықса, мен қуанамын.

Сонымен, сіз қанша сұхбатқа қатысуыңыз керек еді?
Сізге айтатын нәрсе бар екеніне сенімдімін!

Ақпарат көзі: www.habr.com

пікір қалдыру