23 альтернативні шляхи кар’єри, на які можуть розростатись розробники програмного забезпечення

За останні п’ять років я прочитав десятки запрошених лекцій у багатьох завантажувальних таборах кодування в Чикаго.

Постійно виникає кілька питань: "Яку мову мені слід вивчати далі?", "Як я можу підготуватися до технічних співбесід?", "Ви наймаєте?"

Але одне питання, яке мене відкинуло: "Що робити, якщо я не хочу бути розробником програмного забезпечення?"

Останнім часом я багато про це думаю. Після майже десятиліття провідних команд з виробництва та інжинірингу я зрозумів, що готовий до нового виклику, тому цього літа почав займатися технічним написанням. Я не знав цього, коли отримав свого першого клієнта, але швидко зрозумів, що написання технічних документів є одним із багатьох дійсних шляхів кар’єри для колишніх інженерів програмного забезпечення .

Що ще можуть робити розробники програмного забезпечення?

Це усвідомлення змусило мене задуматися: "Якими ще робочими місцями можуть займатися інженери-програмісти, крім написання програмного забезпечення?"

Список напрочуд довгий.

Ця публікація пройде через багато кар’єрних шляхів, доступних розробникам програмного забезпечення, особливо недавнім випускникам bootcamp. Я поясню, чим займається кожна робота, як можна загнати ногу у двері та довгострокові перспективи.

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

Альтернативні шляхи кар’єри для розробників програмного забезпечення

Ролі, що стоять перед клієнтами

Хоча інженерам програмного забезпечення вигідно мати навички людей, деякі випускники буткемпів, з якими я спілкувався, не з нетерпінням чекають спокійного сидіння та написання коду цілими днями. Якщо ви хочете кар’єрний шлях, який надає більше можливостей для взаємодії з людьми, ці роботи можуть вам підійти.

1. Відносини з розробниками, адвокатура чи євангелізація

Оскільки все більше компаній прагнуть налагодити стосунки з розробниками, які є їхніми клієнтами, користувачами чи адвокатами, сфера відносин з розробниками швидко зростає.

Фахівці у зв’язках із розробниками (деякі компанії називають їх адвокатами розробників, євангелістами розробників, менеджерами спільнот або «DevRels») допомагають створити та побудувати спільноту навколо програмного забезпечення своєї компанії.

Вони часто беруть участь у створенні демонстраційних додатків, написанні публікацій у блогах, виступах на конференціях та керуванні акаунтами в соціальних мережах для компаній, орієнтованих на технології. Багато відомих технологічних компаній (Facebook, Google, Amazon та ін.) Наймають команди професіоналів у відносинах з розробниками.

Якщо ви зацікавлені в цій галузі, прочитайте, чим займаються Мері Тенгвалл та П. Дж. Хагерті. Вони двоє моїх улюблених впливових людей у ​​космосі, і вони разом видають подкаст Community Pulse.

2. Розробник маркетингу

Незважаючи на те, що існує певне перекриття відносин з розробниками, маркетинг розробників є більш зосередженим зовні.

Маркетинг для розробників особливо складний, тому що ми не любимо продаватись, тому багато агресивніших тактик маркетингу, які працюють на інших ринках, тут є табу. Як людина з технічним досвідом, ви природно зрозумієте, як думають розробники, і матимете більше можливостей, ніж традиційний маркетолог.

SlashData публікує багато чудового контенту про розробницький маркетинг, включаючи книгу на цю тему у 2018 році. Якщо ви хочете розпочати роботу в цій галузі, вивчіть Інтернет-маркетинг: SEO, соціальні медіа, контент-маркетинг, маркетинг впливу тощо Ви можете практикувати багато з цих навичок у своєму блозі, щоб продемонструвати свої знання перед тим, як подати заявку на роботу.

3. Інженер з продажу

Багатьох інженерів відключає будь-яка робота із заголовком "продажі", але це лише тому, що ми всі стикалися з поганими продавцями.

Правда в тому, що всі продають. Незалежно від того, продаєте ви себе кандидатом на роботу під час співбесіди чи виступаєте за нову структуру інженерної команди, продаж означає відповідність потребам замовника правильному рішенню.

Інженери з продажу унікальні тим, що мають певний рівень технічної кваліфікації. Це може бути чудовим варіантом для розробників, які не хочуть писати код цілими днями, але розуміються на програмній інженерії.

Інша приємна частина продажів полягає в тому, що для цього вам не потрібні спеціальні сертифікати. Hubspot пропонує чудове ознайомлення з деякими навичками та ресурсами, з яких можна почати. Оскільки все більше компаній будують програмні засоби та послуги для інженерів, інженери з продажу, ймовірно, стануть ще більш затребуваними в найближче десятиліття.

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

Ще однією професією, яка отримує поганий реп серед інженерів програмного забезпечення, є технічний набір.

Я зустрічав кількох чесних, справжніх рекрутерів (наприклад, Тейлор Дорсетт і Метт Хоффман з мого рідного міста Чикаго), але я також зустрічав деяких жахливих, безглуздих рекрутерів, які зосереджені виключно на просуванні кандидатів, щоб досягти своєї квоти .

Хороша новина полягає в тому, що, маючи досвід розробки програмного забезпечення, ви матимете більше емпатії та довіри, ніж багато інших технічних рекрутерів. Як і продаж, ця сфера вимагає більш вихідної, орієнтованої на стосунки особистості, але вона не вимагає спеціалізованих сертифікацій або курсів.

На жаль, багато робочих місць початкового рівня в галузі технічного рекрутингу працюють у неякісних фірмах, тому перед тим, як подавати заявку, обов’язково перевіряйте їх репутацію на Glassdoor.

Ролі продукту

Якщо ви хочете залишатися в команді продуктів, але не впевнені, що хочете стати розробником програмного забезпечення, є багато полів, у які можна перейти. Ці ролі тісно співпрацюють з інженерами, тому ваші знання кодування допоможуть вам, але вони також потребують інших спеціалізованих знань.

5. Інженер із забезпечення якості або випробування

Незважаючи на незначні відмінності між інженерами з контролю якості та тестуваннями, обидва займаються тестуванням програмного забезпечення до його запуску в експлуатацію.

Якщо у вас є око для деталей і вам подобається придумувати креативні способи автоматизації повторюваних завдань, це може бути чудовим кар’єрним шляхом. Ймовірно, для цього знадобиться деяке кодування, а також деякі роботи з ручного тестування.

У менших компаній інженери-програмісти тестують код один одного, тому спеціальні функції тестування та контролю якості найчастіше зустрічаються у великих організаціях. Існує велика різниця між тим, як компанії проводять тестування, тому обов’язково запитайте про інструменти, якими вони користуються, наскільки автоматизованими є їх тести та скільки ваша роль передбачатиме ручні та автоматизовані тести.

6. Бізнес-аналітик

На іншому кінці життєвого циклу розробки продукту є бізнес-аналітики. Зазвичай вони працюють як міст між бізнесом та технічними командами, щоб забезпечити розуміння вимог, обмежень та термінів. Вони також можуть зайти та допомогти у тестуванні та забезпеченні якості, залежно від структури команди, тому вони повинні мати широкий спектр знань про продукцію.

Якщо у вас є досвід у бізнесі, розробці продукту чи дизайні та певні навички кодування, ви можете претендувати на роль бізнес-аналітика початкового рівня. Якщо ні, я рекомендую ознайомитися з деякими онлайн-курсами, які допоможуть вам сформувати базове розуміння ролі та її наслідків.

7. Керівник проекту

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

Ключова відмінність полягає в тому, що менеджери проектів зазвичай заглиблюються в один проект. Вони часто визначають завдання та ресурси для команд, що працюють над проектом, і відстежують прогрес проекту по мірі наближення випуску.

Менші компанії можуть по-різному поєднувати ролі бізнес-аналітика, керівника проектів, керівника scrum та менеджера по продуктам, але більші компанії можуть визначати окремі обов'язки.

Відмінні організаційні навички, розуміння бізнесу та навички людей є критично важливими для досягнення успіху в якості менеджера проекту. Ця роль залежить від вашої здатності керувати очікуваннями та мотивувати людей, які можуть бути старшими або досвідченішими за вас, тому вам доведеться швидко побудувати довіру. Багатогранна природа цієї ролі добре підходить для аналітичних, технічних людей, які більше не хочуть писати код.

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. Вчений або інженер даних

Ці дві ролі (деякі компанії поєднують їх) передбачають використання великих наборів даних, щоб допомогти бізнесу або їх клієнтам приймати кращі рішення.

Інженери даних зазвичай працюють над конвеєром даних та організацією, тоді як вчені-розробники розробляють експерименти та алгоритми, які дають ці дані на корисні результати. Наука про дані (ШІ, машинне навчання тощо) - це величезна галузь, коріння якої - математика, програмна інженерія та статистика.

Існують курси, завантажувальні табори та вищі ступені для науки про дані та техніки, але ви, можливо, зможете вивчити деякі основи самостійно, якщо у вас є сильний математичний досвід. Якщо ні, спершу подумайте про чисельний аналіз, матричну алгебру та статистику.

Оскільки вивчення цих навичок займає багато часу, а науковці з даних користуються великим попитом, ця роль добре платить і, швидше за все, не скоро зникне найближчим часом.

20. Аналітик з питань безпеки

Ролі інформаційної безпеки зазвичай летять під радаром, поки щось не піде не так. Хоча кожен розробник повинен знати про вразливості та ризики безпеки, аналітики безпеки наймаються явно для пошуку, каталогізації та пропонування виправлень для проблем безпеки.

Деякі працюють як незалежні консультанти, але у великих компаніях можуть бути внутрішні команди. Ця роль цікава, оскільки вимагає поєднання технічних навичок, навичок відповідності, бізнесу та оцінки ризиків.

Вакансії в галузі безпеки також є одними з найважчих для заповнення технологічними лідерами, тому у вас тут буде безпека роботи. Інформаційна безпека - це широке поле, тому ознайомтеся з багатьма шляхами, якими ви можете піти, якщо ви зацікавлені в цьому.

21. НДДКР

Робота в дослідженнях і розробках може стати унікальним досвідом для тих, хто має навички програмної інженерії. Великі компанії, такі як Google та Amazon, присвячують частину свого прибутку експериментам з високим ризиком та потенційно високою винагородою, які проводяться науково-дослідними групами. До складу цих міждисциплінарних команд можуть входити розробники програмного забезпечення, науковці з даних, бізнес-аналітики та менеджери проектів.

Потрапити в хорошу команду з досліджень і розробок важко. Ці ролі, як правило, конкурентоспроможні і вимагають вузькоспеціалізованих знань з тем, які ви, швидше за все, не вивчите в завантажувальному таборі кодування. Тим не менш, деякі компанії наймають етичних хакерів, засновників або поліглотів, щоб допомогти округлити команду та внести в суміш творче мислення.

Незалежність та гнучкість

Хоча наша професія, яка часто дозволяє віддалену роботу, а іноді навіть відпочинок, вам може знадобитися ще більша гнучкість у вашому житті. Якщо у вас є бажання відкрити власний бізнес, ви можете працювати 4 години на тиждень, проводити подорожі шість місяців у році або витрачати половину часу на проекти з відкритим кодом. Це непросто, але як розробник програмного забезпечення ви маєте величезну увагу до більшості людей.

22. Фрілансер або консультант

Один із способів захопити більше свободи - залишити роботу з 9-5 і стати фрілансером. Як фрілансер, ви наймаєте одного або кількох клієнтів, які платять вам за годину, щоб написати для них код. Компанії часто наймають фрілансерів для роботи над конкретними короткостроковими проектами, очищення технічної заборгованості або заповнення прогалин, коли працівник робить перерву.

Консультанти - це фрілансери вищого класу, які вирішують конкретні проблеми для своїх клієнтів. Хоча вони можуть писати код, їх часто залучають через їх досвід чи унікальний досвід. Межа між фрілансерами та консультантами досить розмита, тому не варто занадто захоплюватися семантикою.

Почати роботу фрілансером або консультантом - це найскладніше. Якщо у вас немає величезної мережі, ви, мабуть, будете покладатися на такі платформи, як Upwork або Toptal, щоб знайти клієнтів. Ці платформи значно зменшують ваш дохід і змушують вас конкурувати безпосередньо з багатьма іншими фрілансерами по всьому світу.

Створюючи репутацію та список клієнтів, ви зможете отримувати більше роботи від рефералів. Перенаправлення чудові, оскільки клієнт звертається до вас на основі довірених стосунків, а не анонімності Інтернету. Якщо ви справді добре вмієте займатися фрілансом або консультуватись, ви можете підняти свою ставку на достатньо високий рівень, щоб можна було зробити перерву між кожною заручиною.

23. Засновник стартапу

Інтернет наповнений історіями програмних інженерів, які відкривають бізнес (1, 2, 3), тож у вас може скластися враження, що це просто чи навіть гарна ідея.

Правда в тому, що це залежить.

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

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

Заключні думки

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

Багато випускників bootcamp бояться шукати роботу поза сферою розробки програмного забезпечення, але я закликаю вас піти своїм шляхом. Збалансуйте практичність (заробляючи достатньо грошей, щоб жити) зі своїми інтересами, і, сподіваємось, ви зможете знайти кар’єрний шлях, де робота не схожа на „роботу”.

Я хотів би почути ваші думки. Якщо ви пішли нетрадиційним шляхом або змінили кар’єру, дайте мені знати, що ви думаєте в Twitter.