23 алтернативни кариерни пътеки, в които разработчиците на софтуер могат да нараснат

През последните пет години изнесох десетки лекции за гости в много от лагерите за кодиране в Чикаго.

Няколко въпроса не пропускат да се появят: „Кой език да науча по-нататък?“, „Как мога да се подготвя за технически интервюта?“, „Наемате ли?“

Но един въпрос, който ме отблъсна, беше: "Ами ако не искам да бъда разработчик на софтуер?"

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

Какво друго могат да правят разработчиците на софтуер?

Това осъзнаване ме накара да се замисля: „Какви други задачи могат да правят софтуерните инженери освен да пишат софтуер?“

Списъкът е изненадващо дълъг.

Тази публикация ще премине през много от кариерните пътеки, достъпни за разработчиците на софтуер, особено скорошни възпитаници на bootcamp. Ще обясня какво прави всяка работа, как можете да стъпите на вратата и дългосрочните перспективи.

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

Алтернативни кариерни пътеки за разработчици на софтуер

Роли, насочени към клиента

Докато софтуерните инженери се възползват от уменията на хората, някои завършили bootcamp, с които съм говорил, не очакват да седят тихо и да пишат код по цял ден. Ако искате кариера, която предоставя повече възможности за взаимодействие с хора, тези работни места може да ви подхождат.

1. Връзки с разработчици, застъпничество или евангелизация

Тъй като все повече компании се стремят да изграждат взаимоотношения с разработчици, които са техни клиенти, потребители или защитници, сферата на връзките с разработчиците бързо се разраства.

Професионалистите за връзки с разработчици (някои компании ги наричат ​​защитници на разработчици, евангелисти на разработчици, мениджъри на общности или „DevRels“) помагат за създаването и изграждането на общност около софтуера на тяхната компания.

Те често участват в създаването на демонстрационни приложения, писане на публикации в блогове, изказване на конференции и управление на акаунти в социалните медии за компании, фокусирани върху технологиите. Много от големите технологични компании (Facebook, Google, Amazon и др.) Наемат екипи от професионалисти за връзки с разработчици.

Ако се интересувате от това поле, прочетете какво правят Mary Thengvall и PJ Hagerty. Те са двама от любимите ми влиятелни лица в космоса и заедно пуснаха подкаста на Community Pulse.

2. Маркетинг за разработчици

Въпреки че има известно припокриване с отношенията с разработчиците, маркетингът за разработчици е по-фокусиран навън.

Маркетингът за разработчици е особено труден, защото не обичаме да ни продават, затова много от по-агресивните маркетингови тактики, които работят за други пазари, са табу тук. Като човек с технически опит, вие естествено ще разберете начина, по който мислят разработчиците, и ще имате повече влияние, отколкото би могъл традиционният маркетолог.

SlashData издава много страхотно съдържание за Developer Marketing, включително книга по темата през 2018 г. Ако искате да започнете в тази област, научете онлайн маркетинг: SEO, социални медии, маркетинг на съдържание, маркетинг на влиянието и т.н. Можете да практикувате много от тези умения в своя блог, за да демонстрирате знанията си, преди да кандидатствате за работа.

3. Инженер по продажбите

Много инженери са изключени от всяка работа с "продажби" в заглавието, но това е само защото всички сме се сблъсквали с лоши търговци.

Истината е, че всички продават. Независимо дали се "продавате" като кандидат за работа по време на процеса на интервю или се застъпвате за нова рамка на вашия инженерен екип, продажбите означава да съобразите нуждите на клиента с правилното решение.

Инженерите по продажби са уникални с това, че имат някакво ниво на техническа експертиза. Това може да бъде отличен мач за разработчици, които не искат да пишат код по цял ден, но разбират софтуерното инженерство.

Другата хубава част за продажбите е, че не се нуждаете от специални сертификати, за да го направите. Hubspot предлага чудесно въведение в някои умения и ресурси, с които можете да започнете. Тъй като все повече компании изграждат софтуерни инструменти и услуги за инженери, инженерите по продажбите вероятно ще станат още по-търсени през следващото десетилетие.

4. Технически рекрутер

Друга професия, която получава лош резултат сред софтуерните инженери, е техническото набиране.

Срещнах някои честни, истински технологични работници (Тейлър Дорсет и Мат Хофман от родния ми град Чикаго, например), но също така срещнах и някои ужасни, безсмислени специалисти по подбор на персонал, които са съсредоточени изцяло върху избирането на кандидати, за да постигнат своята квота .

Добрата новина е, че с опит в разработването на софтуер ще имате повече съпричастност и доверие, отколкото много други технически специалисти по подбор на персонал. Подобно на продажбите, това поле изисква по-изходяща личност, фокусирана върху отношенията, но не изисква специализирани сертификати или курсове.

За съжаление, много от началните работни места в технологичното набиране са във фирми с ниско качество, така че не забравяйте да проверите репутацията им в Glassdoor, преди да кандидатствате.

Продуктови роли

Ако искате да останете в продуктовия екип, но не сте сигурни, че искате да станете разработчик на софтуер, има много полета, в които можете да преминете. Тези роли работят в тясно сътрудничество с инженерите, така че вашите познания за кодиране ще ви помогнат, но те изискват и други специализирани знания.

5. Инженер по осигуряване на качеството или тест

Въпреки че има фини разлики между инженерите за осигуряване на качеството и тестовете, и двамата се занимават със софтуер за тестване, преди той да започне да работи.

Ако имате нужда от детайли и искате да измисляте креативни начини за автоматизиране на повтарящи се задачи, това може да е чудесен път за кариера. Вероятно ще е необходимо кодиране, както и ръчна работа по тестване.

По-малките компании имат своите софтуерни инженери да тестват кода на другия, така че специалните роли за тестване и QA са най-често срещани в големите организации. Има много различия между начина, по който компаниите правят тестване, така че не забравяйте да попитате за инструментите, които използват, колко автоматизирани са тестовете им и доколко вашата роля ще включва ръчни и автоматизирани тестове.

6. Бизнес анализатор

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

Ако имате опит в бизнеса, разработването на продукт или дизайн и някои умения за кодиране, може да се класирате за роля на бизнес анализатор от първо ниво. В противен случай бих препоръчал да разгледате някои онлайн курсове, които да ви помогнат да развиете основно разбиране за ролята и какво включва тя.

7. Ръководител на проекти

Подобно на бизнес анализаторите, ръководителите на проекти трябва да разбират бизнес изискванията и техническите ограничения на своя продукт.

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

По-малките компании могат да комбинират по различен начин ролите на бизнес анализатор, ръководител на проекти, scrum master и продуктов мениджър, но по-големите компании могат да определят отделни отговорности.

Отличните организационни умения, разбирането на бизнеса и уменията на хората са от решаващо значение за успеха като ръководител на проекти. Тази роля зависи от способността ви да управлявате очакванията и да мотивирате хора, които може да са по-възрастни или опитни от вас, така че трябва бързо да изградите доверие. Многостранният характер на тази роля го прави подходящ за аналитични, технически хора, които вече не искат да пишат код.

8. Scrum Master

В Agile екипите Scrum Master помага да се гарантира, че всички познават и купуват Scrum теория, най-добри практики и правила.

Това в крайна сметка прилича много на управление на проекти, но със специален акцент върху обслужването на другите екипи, участващи в изграждането на продукта. Отново това не винаги е негова собствена работа, но в по-големите организации може и да е така.

Способността да управлявате очакванията и ограниченията е от решаващо значение за вашия успех като Scrum Master. Също така ще трябва да знаете най-добрите практики на Agile, така че бих препоръчал да намерите подходящ курс или книга по темата. Agile наблюдава широко разпространение в организации от всякакъв мащаб, така че тази кариера вероятно ще продължи да расте през следващото десетилетие.

9. Продуктов мениджър

Прекарах много време през 2019 г., учейки за управление на продукти, за да подобрим процеса ни на доставка на продукти в The Graide Network.

Продуктовите мениджъри гледат цялостно на продуктите на компанията, за да се уверят, че са желани (клиентите го искат), жизнеспособни (има смисъл в бизнеса) и осъществими (можем да го изградим). Способността да мислите на високо ниво като това е рядкост, така че ако имате такава и има някакъв технически опит, може да се справите добре като продуктов мениджър.

Продуктовите мениджъри на начално ниво могат да започнат с по-малки части от продукта или като ръководители на проекти в някои организации. Това може да ви даде вкус към разработването на продукта и да ви помогне да изградите взаимоотношения с всички необходими заинтересовани страни, преди да бъдете назначени за управление на вашия собствен продукт.

10. Дизайнер

Ако идвате от дизайн или артистичен произход, ставането на UI или UX дизайнер с някои кодиращи котлети е чудесен начин да се откроите във вашата област. Тази комбинация от умения ще ви позволи да говорите по-ефективно с инженери и да създавате интерактивни макети в HTML / CSS, а не само със статични файлове с изображения.

Ако нямате много опит в дизайна, вземете курс и започнете да изграждате портфолио. Много компании ще наемат хора без диплома, ако могат да покажат своите знания и умения. Dribbble е най-често срещаната портфолио платформа, която съм виждал, но можете да използвате и собствения си уебсайт.

11. Без или с нисък код разработчик

Взривът на инструменти за разработка без код и нисък код през последните няколко години отвори възможности за компаниите, които искат бързо да изграждат софтуер, без да наемат екип за разработка. Тези инструменти ви позволяват да създадете мобилно или уеб приложение за часове, вместо за седмици и тъй като те се подобряват всяка година, повече компании приемат приложения без код.

Makerpad и No Code Jobs са добри места да започнете да търсите такива видове работа. Тъй като това е ново поле, ще откриете широк спектър от необходими умения и размери, но несъмнено вашият код за писане ще се окаже актив.

Подкрепящи роли

Много нови софтуерни инженери не са наясно с много служители зад кадър, които помагат сървърите, уебсайтовете и операциите да работят гладко. Някои от тези роли изискват от вас да пишете скриптове за автоматизация или да имате задълбочени познания за администриране на сървъри, но ако търсите нещо извън традиционния цикъл на разработка на продукта, но с технически наклон, това може да е чудесно.

12. Sysadmin или DevOps Engineer

Големите софтуерни компании разполагат със стотици или хиляди сървъри, които трябва да бъдат поправени, надградени и ротирани през цялата година. Въпреки че широкото разпространение на облачните изчисления промени тази работа от физическо включване на сървъри в работа със софтуер като Terraform и Kubernetes, няма недостиг на работни места в тази област.

Традиционно системните администратори са отговорни за поддържането и администрирането на сървъри, както е необходимо от инженерните екипи. Тъй като организациите са се разраснали и са преминали към облачен хостинг, много от тях са приели заглавието DevOps инженер, за да отразят увеличената автоматизация, използвана в този процес. На практика има много припокриване между тези роли.

Така или иначе ще ви е необходимо основно разбиране на операционните системи, хостинг платформите, инструментите за автоматизация, bash скриптове и системната архитектура. Може да е трудно да се намерят работни места на начално ниво в тази област, защото това изисква толкова широк спектър от технически познания, но това е страхотна роля, в която да преминете, ако харесвате аспектите на инженеринга за решаване на проблеми без UI / UX изискванията, които повечето продуктите, ориентирани към клиентите, изискват.

13. Администратор на база данни

Някои компании свързват администраторите на бази данни със системни администратори, но това може да е различна роля.

Администраторите на бази данни се занимават със сигурност, осигуряване, мащабиране и оптимизиране на системи за съхранение на данни на ниско ниво. Ще ви трябват познания за бази данни на SQL и NoSQL, най-добрите практики за сигурност и някои основни умения за скриптове, но вероятно няма да пишете код цял ден. Ще се притеснявате и за наистина малки проблеми с оптимизацията като фиксиране на индекси и кешове.

Ако сте нов в разработването на софтуер, започнете, като научите всичко, което можете за базите данни. Ще трябва да знаете коя база данни е подходяща за кое приложение и как да оптимизирате всяка от тях в мащаб, така че може да е трудно да практикувате това сами. Ако искате да намерите някои големи масиви от данни, с които да работите, разгледайте Kaggle.

14. Инженер за надеждност на сайта

Инженерите за надеждност на сайта са отговорни за реагирането и решаването на критични проблеми, които възникват в производството. Често това означава, че те се въртят в списък „на повикване“, така че може да работите в странни часове. Положителното е, че ще получите наистина добри умения за решаване на широк спектър от необичайни проблеми, изграждане на автоматизирани сигнали и четене на регистрационни файлове на сървъра.

Поради силно реактивния характер на тази работа може да е трудно да задържите опитни софтуерни инженери в ролята за надеждност на сайта за дълго време. Въпреки това може да е чудесно място да влезете във вратата, ако имате проблеми с намирането на първата си роля за разработване на софтуер. Познавам двама завършили bootcamp, които са започнали в SRE роли, преди да преминат към разработване на софтуер. Може дори да откриете, че харесвате предизвикателството и вълнението от бързото темпо за решаване на проблеми.

15. Техническа или клиентска поддръжка

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

Недостатъкът на работата в подкрепа е, че може да се наложи да общувате с хората в най-лошия им случай. Незадоволените или разочарованите потребители вероятно не са доволни да говорят с екипа за техническа поддръжка, така че ще ви трябва много търпение и дебела кожа, за да останете дълго в тази роля.

Преподаване и писане на роли

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

Преподавателски роли за разработчици на софтуер

16. Технически писател

Третият ми стаж в колежа беше като технически писател в огромна корпорация. Беше доста сухо писане, но с удоволствие научавах нови неща всеки ден.

Оттогава открих, че техническото писане не означава само документация. Можете да се занимавате с технически блогове или копирайтинг; можете да създадете вътрешна или външна документация; можете да създавате демонстрационни приложения и уроци. Това е едно от най-добре платените полета за писатели, така че си струва да се обмисли.

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

Можете да започнете да пишете за някои от платените програми за писане в общността и да ги превърнете в работа на пълно работно време, докато изграждате мрежа и портфолио.

17. Учител

Има няколко начина, по които можете да се превърнете от кариера в разработването на софтуер в такава като учител. Можете да получите работа като преподавател в лагер за кодиране, можете да преподавате в колеж или гимназия, можете да се присъедините към платформа като egghead.io или да създадете свой собствен уебсайт за курсове с Teachable или Educative. Пътят, по който ще поемете, зависи от вашия произход и толерантност към риска.

Във всеки случай учителите трябва бързо да научат нова информация и да я представят в смилаем формат на своите ученици. Трябва да се срещнете с аудиторията на тяхно ниво и да изградите доверие с нея, за да успеете. Преподаването може да плаща по-малко от разработването на софтуер, но може да бъде и много изпълняваща кариерна пътека.

18. Треньор

Корпоративното обучение е друга форма на обучение, но също така си струва да се обмисли. Обучителите могат да работят като независими консултанти или служители в големи компании, където обикновено пътуват до офисите на своите клиенти, за да осигурят практическо обучение за специализиран софтуер.

Обучителите може да имат дълбоки технически познания, но някои от тях са просто технически интелигентни комуникатори. Корпоративното обучение обикновено се изплаща по-добре от преподаването, но може да бъде и по-насочено към продажбите. Обучителите често говорят на конференции, провеждат общи работни срещи или пътуват до групи за срещи между тренировъчните сесии.

Ако обичате да сте на сцената и да представяте технически концепции, това може да е идеална кариерна пътека.

Аналитични роли

Много роли в технологичните компании изискват аналитични умения. Въпреки че много от тези области изискват специализирано образование, струва си да ги обмислите, ако правите кариера, която се отдалечава от софтуерното инженерство. Ще започнете да работите с различно темпо от повечето инженери, фокусирани върху продуктите, и подобно на някои от горните роли по-горе, може да стигнете до взаимодействие с други части на бизнеса.

19. Учен или инженер по данни

Тези две роли (някои компании ги комбинират) включват използването на големи масиви от данни, за да помогнат на бизнеса или техните клиенти да вземат по-добри решения.

Инженерите на данни обикновено работят върху поглъщането на данни и организационната тръба, докато учените по данни разработват експерименти и алгоритми, които разбиват тези данни в полезни резултати. Науката за данните (AI, машинно обучение и др.) Е огромно поле с корени в математиката, софтуерното инженерство и статистиката.

Има курсове, bootcamps и колежни степени за наука за данни и инженерство, но може да успеете да научите някои от основите сами, ако имате силен математически опит. В противен случай помислете първо за числен анализ, матрична алгебра и статистика.

Тъй като тези умения отнемат много време и учените по данни се търсят много, тази роля се плаща добре и е малко вероятно да изчезне скоро.

20. Анализатор на сигурността

Ролите на информационната сигурност обикновено летят под радара, докато нещо не се обърка. Въпреки че всеки разработчик трябва да е наясно с уязвимостите и рисковете в сигурността, анализаторите на сигурността се наемат изрично, за да намерят, каталогизират и предлагат поправки за проблеми със сигурността.

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

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

21. НИРД

Работата в научноизследователска и развойна дейност може да бъде уникално преживяване за някой, който има умения за софтуерно инженерство. Големи компании като Google и Amazon отделят част от печалбата си за високорискови, потенциално експерименти с високо възнаграждение, проведени от екипи за изследвания и разработки. Тези междудисциплинарни екипи могат да включват разработчици на софтуер, изследователи на данни, бизнес анализатори и ръководители на проекти.

Влизането в добър екип за НИРД е трудно. Тези роли обикновено са конкурентни и изискват високоспециализирани познания по теми, които вероятно няма да научите в кодиращ bootcamp. Въпреки това, някои компании наемат етични хакери, основатели или полиглоти, които да помогнат да закръглят екипа и да внесат в сместа малко творческо мислене.

Независимост и гъвкавост

Докато нашата професия често позволява отдалечена работа и понякога дори почивни дни, може да искате още по-голяма гъвкавост в живота си. Ако имате желание да стартирате собствен бизнес, може да можете да работите 4 часа седмично, да прекарате шест месеца в годината в пътуване или да прекарате половината от времето си в проекти с отворен код. Не е лесно, но като разработчик на софтуер имате огромна крачка към повечето хора.

22. На свободна практика или консултант

Един от начините да уловите повече свобода е да напуснете работата си от 9 до 5 и да станете на свободна практика. Като свободна професия ще се наемете на един или повече клиенти, които ще ви плащат на час, за да им пишете код. Компаниите често наемат фрийлансъри, за да работят по конкретни краткосрочни проекти, да изчистят технически дълг или да попълнят пропуски, когато служителят си почива.

Консултантите са на свободна практика от висок клас, които решават специфични проблеми на своите клиенти. Въпреки че могат да пишат код, те често са привлечени поради техния опит или уникален опит. Границата между фрийлансъри и консултанти е доста размита, така че не се забърквайте твърде много в семантиката.

Да започнете като свободна професия или консултант е най-трудната част. Ако нямате огромна мрежа, вероятно ще разчитате на платформи като Upwork или Toptal, за да намерите клиенти. Тези платформи отнемат значително намаляване на приходите ви и ви принуждават да се конкурирате директно с много други фрийлансъри по целия свят.

Докато изграждате репутация и списък с клиенти, ще можете да получите повече работа от реферали. Препратките са страхотни, защото клиентът идва при вас въз основа на доверителна връзка, а не на анонимността на интернет. Ако наистина се справите добре с фрийланс или консултации, можете да натиснете тарифата си достатъчно високо, за да можете да отделите малко време между всеки ангажимент.

23. Основател на стартиране

Интернет е пълен с истории на софтуерни инженери, които стартират бизнес (1, 2, 3), така че може да създадете впечатлението, че е лесно или дори добра идея.

Истината е, че зависи.

Стартиращите компании обикновено отнемат много време, за да генерират приходи, така че ще трябва да живеете без заплата в продължение на няколко месеца или години, за да успеете. Въпреки това, ако искате да изградите свой собствен софтуерен бизнес, възходът е почти неограничен.

Възможно е също така да можете да създадете компания извън редовното работно време. Въпреки че това е трудно да се направи (и може да има правни последици), това не е необичайно. Ако можете да намерите един или двама други основатели, с които да споделите товара, това може да увеличи шансовете ви за успех.

Финални мисли

Софтуерното инженерство е вълнуващо поле, но не е за всеки. Дори и да си тръгнете, придобитите от вас умения няма да загубят, ако решите да направите нещо друго.

Много възпитаници на bootcamp се страхуват да търсят работа извън областта на разработването на софтуер, но бих ви препоръчал да следвате своя собствен път. Балансирайте практичността (печелене на достатъчно пари за живот) с вашите интереси и, надяваме се, можете да намерите път за кариера, където работата не се чувства като "работа".

Ще се радвам да чуя мислите ти. Ако сте поели по нетрадиционен път или сте променили кариерата си, кажете ми какво мислите в Twitter.