У студентов во время учёбы может возникнуть такой вопрос: кем мне работать в будущем?


Если вы изучаете информатику и в будущем хотите попасть в индустрию программного обеспечения и интернета, поздравляю. Это хорошая отрасль с высокими зарплатами. Вам не нужно полагаться на связи; всё решают способности, и вам не нужен отец с хорошими связями.


Минус в том, что эта отрасль требует чрезвычайно тяжёлого умственного и физического труда, а сверхурочная работа — обычное дело.


Следующий вопрос: какие направления существуют сегодня в программном обеспечении и интернете? См. объяснение ниже:


1. Для начала: откуда берутся требования?


1.1 Клиентские проекты


Если вы работаете над клиентским проектом, требования, естественно, исходят от клиента. Конечно, клиенты обычно полные новички в разработке ПО (хотя это не абсолютная истина — я видел очень небольшое число клиентов, которые были превосходными специалистами по программному обеспечению). Им часто трудно чётко описать свои реальные бизнес-требования. В этот момент должен эффектно появиться кое-кто: бизнес-аналитик. В крупных компаниях бизнес-аналитик — отдельная роль; в маленьких компаниях менеджер проекта или ключевой разработчик вынужден стиснуть зубы и взять это на себя. Бизнес-аналитик должен ясно разобрать требования и передать их архитекторам для проектирования.


Если бизнес-аналитик долго работает в определённой отрасли, он становится экспертом по бизнесу. Например, если вы работали над проектами по ключевым системам для всех крупных отечественных банков, ваше знание банковского бизнеса может даже превзойти знания некоторых сотрудников банка. Тогда вы становитесь чрезвычайно ценным специалистом — вы можете не только анализировать бизнес, но и помогать банкам оптимизировать их бизнес. Разве это не круто?


Вопрос: должен ли бизнес-аналитик разбираться в технологиях?


Ответ: Лучше немного разбираться. То, что вы анализируете, должны будут реализовать кодеры. Если не учитывать существующие технологии и просто слепо потакать пользователям, кодеры точно проклянут вас насмерть.


Если вы бизнес-эксперт, который вырос из программиста и обладает превосходными техническими навыками, то можете просто расслабиться и считать деньги.


1.2 Продукты компании


Если вы работаете над продуктом, таким как WeChat, QQ, Taobao, World of Warcraft, ZT Online или Fantasy Westward Journey, требования фактически определяются людьми внутри вашей собственной компании.


Сейчас появилась модная профессия для определения этих требований: продакт-менеджер. Например, Чжан Сяолун — суперпродакт-менеджер WeChat, а Ши Юйчжу — опытный продакт-менеджер ZT Online.


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


Вопрос: Нужно ли продакт-менеджеру разбираться в технологиях?


Ответ: Да. Лучше всего самому вырасти из программиста и знать, насколько сложны проектирование и реализация продукта. Иначе, если вы будете заботиться только о собственном удовольствии, программисты тоже проклянут вас на чём свет стоит.


2. Проектирование и разработка


2.1 Архитектор


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


Проектирование элегантных, гибких и масштабируемых архитектур — главная работа архитектора.


Нельзя просто гнаться за самыми новыми или самыми модными технологиями; нужно также учитывать возможности существующей команды и зрелость технологий.


Потребность в кадрах: ★
Индекс сложности: ★★★★★


2.2 Веб-бэкенд-программист


Бэкенд-программисты в основном реализуют бизнес-логику и предоставляют API для использования фронтендом.


Java, безусловно, используется чаще всего, но есть и относительно нишевые варианты, такие как Python, Ruby on Rails и т. д. Есть также PHP — простой и понятный, обычно используемый небольшими и средними сайтами. Какой бы из них вы ни выбрали, научиться ему не слишком сложно.


Потребность в кадрах в этой области относительно велика.


Потребность в кадрах: ★★★★★
Индекс сложности: ★★★


2.3 Веб-фронтенд-программист


В основном JavaScript, CSS, jQuery и т. д. В последние годы люди стали уделять больше внимания пользовательскому опыту на стороне браузера, и браузерная часть становится всё более навороченной, поэтому это тоже очень популярно.


Потребность в кадрах: ★★★★★
Индекс сложности: ★★★


2.4 Мобильный программист


В основном Android и iOS. Благодаря развитию мобильного интернета эта область сейчас очень востребована, и спрос огромен. Относительно говоря, у iOS выше порог входа, программистов меньше, но зарплаты немного выше.


Потребность в кадрах: ★★★★
Индекс сложности: ★★★★


2.5 Системный программист


Некоторые требования просты; некоторые очень сложны и требуют поддержки огромного числа пользователей и массовой конкурентности, например Double 11 у Taobao и захват красных конвертов в WeChat на Весенний фестиваль.


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


Для массивных данных также необходимо выполнять анализ больших данных, чтобы извлекать ценную информацию, например с помощью Hadoop.


Поскольку он требует заказной разработки операционных систем, баз данных и серверных систем и даже создания собственного стека, небольшие компании, как правило, не обладают такими техническими возможностями. В основном этим занимаются такие компании, как BAT.


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


Потребность в персонале: ★★
Индекс сложности: ★★★★★


2.6 Безопасность


В эпоху Интернета ваша информация может быть украдена, если не быть осторожным, поэтому безопасность становится всё важнее.
Поэтому недостаточно просто реализовать функции и удовлетворить требования к производительности. Многие компании, особенно BAT, придают большое значение безопасности.
Это направление также требует глубокого изучения технологий.


Потребность в персонале: ★★
Индекс сложности: ★★★★★


3. Тестирование


Это не требует очень высокой технической квалификации, но всё же нужны знания, связанные с тестированием, умение проектировать тест-кейсы, готовить тестовые данные и выполнять тесты.


Теперь, когда agile-разработка популярна, от тестировщиков также ожидают понимания знаний о разработке или, по крайней мере, умения писать некоторые автоматизированные скрипты.


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


В IBM я видела очень выдающуюся тестировщицу: она не только блестяще выполняла вышеупомянутую работу, но и участвовала в обсуждениях проектирования и разработки. Она часто поднимала вопросы с точки зрения тестирования, о которых не задумывались даже разработчики, что значительно помогало повысить качество программного обеспечения.


4. Администратор базы данных


Почти все проекты требуют поддержки базы данных. Для крупных или сверхкрупных проектов существует должность под названием DBA. Этот человек чрезвычайно хорошо разбирается в базах данных, ежедневно управляет базой данных, помогает команде разработчиков проектировать базы данных во время разработки, выявляет узкие места производительности и выполняет настройку производительности.


5. Графический дизайн / Документация


Графический дизайнер:Это означает улучшение внешнего вида интерфейса. Обычно графический дизайнер сначала создаёт прототипы интерфейса, все обсуждают и дорабатывают их, а после утверждения графический дизайнер создаёт различные элементы UI, такие как значки, кнопки и т. д.


Сейчас к графическим дизайнерам предъявляются определённые технические требования. Они не только проектируют интерфейсы, но и создают HTML-шаблоны. Поэтому графическим дизайнерам нужно знать HTML, CSS и даже немного JavaScript.


После того как программисты получают HTML-шаблон, они просто добавляют поверх него бизнес-код.


Технический писатель:В небольших проектах этим обычно занимается кто-то по совместительству; в крупных проектах или продуктах для написания документации выделяется отдельный человек на полную ставку. В 2003 году я участвовал в проекте для Шанхайской фондовой биржи и видел документ Word, написанный специальным техническим писателем. Он был настолько профессиональным, настолько изысканным, что полностью соответствовал стандартам публикации.


Я скопировал его и хотел сделать собственную подделку, но не смог даже воспроизвести его по примеру.


6. Управление проектами


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


Но как могут сотрудничать столько людей? Как ими управлять? Можно ли выполнить график в срок? Вот тут на сцену выходит руководитель проекта.


Руководитель проекта, проще говоря, ведёт всех за собой в работе над проектом. В основном это связано с работой с людьми, координацией отношений по всем направлениям и обеспечением того, чтобы проект шёл гладко.


Вопрос: Нужно ли руководителю проекта разбираться в технологиях?


Ответ: Конечно. Лучше иметь опыт разработки; иначе вы не будете понимать, о чём говорят эти программисты. Вы останетесь только на поверхности, не сможете глубоко вникнуть в проект, и другие не будут вас уважать. Вы точно не сможете хорошо руководить командой.


7. Операционная деятельность


Если вы разрабатываете собственный продукт, сразу после завершения разработки вы немедленно столкнётесь с проблемой: как его продвигать?


В эпоху Интернета мир справедлив, а конкуренция чрезвычайно жестока. Хорошее программное обеспечение, приложение или сайт без операционной деятельности — какой бы хорошей ни была ваша технология — работать не будут.


Операционная деятельность — это по сути поиск способов сделать ваш продукт известным и используемым людьми. В ней много глубины. Например, как написать рекламную статью? Как продвигать продукт в социальных сетях, WeChat и Weibo? Как проводить статистику, анализ и точное таргетирование?


В этом отношении Xiaomi до 2014 года определённо была образцом. Формула из семи иероглифов Лэй Цзюня — фокус, крайность, сарафанное радио, скорость — и «Участие» Ли Ваньцяна — всё это классика.


Хороших специалистов по интернет-операциям крайне мало, и они, естественно, очень востребованы.
Если вам неинтересно программирование, возможно, стоит присмотреться к этому направлению.


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


Источник: Code Farmer Rising (WeChat ID: coderising)
Автор: Лю Синь