Какво да направя, за да си намеря работа като [C++] [intern] developer?

Сигурно има купища статии, които са писани по този въпрос. Откакто огромният глад за програмисти вдигна нивото на заплащане, много хора решиха да започнат нелек път към преквалификация в [С++] разработчик.

Аз, имайки около 15 години опит с езика, виждам навсякъде обяви за (опитни) кадри. Включително и на С++.

И днес, водейки C++ Fundamentals, ми зададоха отново подобен въпрос, но с малко по-специфична насоченост: “Какво трябва да овладея, за да стана game developer [предполагам, че на С++]?”

Отговорът на този въпрос, със специфика на самата индустрия, е много труден. Най-вече защото в гейм индустрията се търсят повече опитни програмисти и по-малко на стажантско ниво. Та аз отговорих с каквото се сетих, но реших и тук да напиша от какво има нужда по принцип един новозапочващ програмист, за да си осигури така желаната първа работа. Далеч съм от мисълта, че списъкът ще е изчерпателен, но е по-добре от нищо. Чувствайте се свободни да допълвате, само не коментирайте във Facebook и след това да се чудите защо не виждам коментарите. Коментирайте директно тук, ако искате да допринесете с дискусия (и да, знам, че във Facebook е по-лесно).

На първо място: знания за езика, с който кандидатстваме.

Ясно е, че стажантът няма да има много трудов стаж зад гърба си, но поне теоретични знания за езика, както и практически упражнение на езика трябва да е правил много. Къде би могъл да получи това? Ами точно курсове като тези в СофтУни са идеалното място за започване със самият език. След това сайтове като freeCodeCamp могат да дадат едно постоянно увеличаване на нивото, като тестовете на freeCodeCamp също така идват със сертификат (онлайн, разбира се), който даже тук-таме би могъл да бъде приет и да има някаква атестация.

Вземам за пример колега от курса, който идва, учи основите на С++, решава си домашните, научава се как сам да си поставя проблеми, които сам да решава. freeCodeCamp или подобен сайт би дал допълнителни задачи и би подтикнал към решаване на повече проблеми, съответно по-добро овладяване на знанията за С++.

На второ място: знания за базови алгоритми и структури от данни

Навремето имаше една страхотна книга: “Алгоритми + структури от данни = програми”. Спомням си, когато за пръв път ми попадна. Мисля, че беше на руски. На български тогава не се намираше много литература, защото демокрацията беше много млада и все още не бяха издали българска версия, а английските книги бяха много скъпи за стандарта. Тогава пазех това книжле като зеницата на очите си и го изгълтах с такъв кеф и скорост, че накрая ме беше яд колко бързо е свършило. Издадоха я на български през 1998.

Знам, че има подобрено издание на книгата на Уирт, но сега така и не успях да я намеря. За сметка на това намерих Алгоритми for Dummies, която може да се окаже подходяща за абсолютно начинаещи “програмисти – занаятчии”. Защото, ако погледнете лекциите на СУ в курса по темата, ще ви се завие свят. Надявам се тази for Dummies поредица да дава нещата значително опростено.

На трето място: покажете им код

Ако отивате на интервю за intern, ако въобще кандидатствате за intern, може би е добре да покажете код, който сте писали. Още по-добре, ако е завършен проект, който може да сте си направили за кеф или за решение на конкретен проблем. Ако е имал и практическо приложение, това ще е само бонус. Отворете си един акаунт в GitHub и слагайте там вашите проекти. Хем ще се научите и да работите с git, което ще е плюс за вашето CV.

Идеята да покажете ваш код е проста: така интервюиращите, ако въобще решат да погледнат, ще могат да видят с какво сте се занимавал и какво ви е нивото. Това означава, че ще получите предимство пред кандидати, които нямат никакъв код. Разбира се, има го риска вашият код да не се хареса, но тогава пък ще спечелите това, че няма да се губи вашето време за интервю, което така или иначе не може да вземете.

Джакпотът: ваше участие в open source проект

Да, това наистина е джакпот. Гледайте опън-сорс проектите. Гледайте им кода. Учете се от тях. Ако намерите по-малък проект, който да може да свалите, компилирате и изучавате вкъщи – правете го. Много малко начинаещи се мъчат точно с това, защото е трудно и изисква усилия. Но това е “sweet spot-a” на подготовката за чирак по програмиране, а защо не и направо младши програмист?

Ако на интервю един младши програмист покаже негов contribution към някой опън-сорс проект, това директно го изстрелва в short-list-а на кандидати, защото е доказателство, че някой, някъде по света му се е доверил, включвайки му кода в продукт, който се използва.

Естествено, това, последното, хич не е лесно. Защото то дефакто дава признание на този младши програмист, че той или тя могат да пишат код. Вероятно много от стажантите, които са наемани от компании, не са могли да го покажат това. Точно защото не е лесно и иска време: време да намерите проект, време да навлезете в кода, време да започнете да модифицирате кода (примерно – да оправяте рапортуван бъг), време да създадете доверие вашия принос да бъде реално включен във версия. Или разучете как работи автоматизацията (ако имат такива) и пишете автоматизирани или unit tests. Важното е да бъдете полезен за проекта, защото тогава ще получите и признание.

Но точно затова е като “джакпот”. С едно изключение: случва се хиляди пъти по-често от джакпот, който както знаем, се “удря” от един на милиони.

Една молба обаче: недейте пита “абе ще ми вземете ли този код във вашия проект, защото много ми трябва да покажа, че някой проект ми е взел кода“. Отговорът няма да ви хареса, а старшите програмисти могат да ви разплачат с тяхната откровеност. Буквално. Случвало ми се е. Когато аз бях начинаещ.

В заключение

Ами това е. Не ми хрумна нищо друго така, на бързо! Но и това може да използвате като база, от която да тръгнете по пътя към бъдеща кариера в програмирането.

Успех! И питайте!

Title Photo by Pervez Joarder from Pexels

Leave a Reply

Theme: Overlay by Kaira Extra Text
%d bloggers like this: