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

Разработчик программного обеспечения против инженера-программиста

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

Вообще говоря, термины «разработчик», «программист» и «кодер» могут использоваться как синонимы. Иногда компания будет использовать эти термины для дифференциации должностей, но по большей части они означают одно и то же.

Таким образом JAXenter объясняет восприятие и коннотацию терминов. Кодеры справляются со своей задачей. Продукт их работы функционален и эффективен, но редко красив или элегантен. Разработчики — лучшие универсалы, знакомые с несколькими разными языками и богатым опытом. Тем временем программисты пишут отличный код. Сделать его чистым, хорошо продуманным и безошибочным — очень важная задача, но не за счет выполнения работы, — говорит JAXenter.

JAXenter также проводит различие между этими тремя терминами и званием «инженер-программист», что подразумевает знание передового опыта и методический подход к программированию, аналогичный тому, как инженер-строитель подходит к проектированию опор для моста.

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

Передняя часть против задней части

Термины «интерфейс» и «бэкэнд» довольно часто используются в программировании и разработке. Для тех, кто только начинает работать в этой области, эти термины могут показаться немного загадочными. Что отличает фронтенд-программирование от бэкенд-программирования?

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

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

Распространенные вакансии в программировании

Быстрый запрос в вашей любимой системе поиска работы покажет, что есть много разных должностей, которые нужно просмотреть тем, кто заинтересован в карьере программиста. Вот несколько общих названий и пояснений того, какое место они занимают в иерархии гиков, каковы их обязанности и так далее. Информация поступает от Indeed.com, Monster.com и Бюро статистики труда, если не указано иное.

Младший разработчик программного обеспечения

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

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

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

Старший разработчик программного обеспечения

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

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

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

Архитектор программного обеспечения

Архитекторы программного обеспечения — это стратеги, стоящие за данным программным проектом. Архитекторы должны не только уметь преобразовывать бизнес-требования в требования к кодированию и помогать писать этот код, они должны уметь правильно выбирать технологию и выявлять нефункциональные требования, которые часто упускаются из виду в жизненном цикле разработки программного обеспечения, такие как требования к скорости или стабильность. Они должны быть в состоянии измерить их объективным образом и оценить программное обеспечение, чтобы обеспечить соблюдение требований. Разработчики программного обеспечения должны знать, как часть программного обеспечения может взаимодействовать с другими частями программного обеспечения, чтобы обеспечить совместимость.

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

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

Главный технический директор

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

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

CTO часто являются высокообразованными и высокопоставленными членами своих организаций; некоторым организациям требуется 15-летний опыт работы или более, прежде чем рассматривать сотрудника на должность технического директора. Требуется степень бакалавра, и может потребоваться ученая степень, такая как магистр информационных технологий или MBA.

Движение вверх по иерархии гиков

Если вы хотите подняться по иерархии гиков, буткемп по кодированию может стать отправной точкой. На учебном курсе по кодированию The Software Guild вы можете изучать Java или C#/.NET. Гильдия предлагает 12-недельную программу полного дня или 10-месячную онлайн-программу в качестве варианта неполного рабочего дня, поэтому вы можете выучить свой первый язык программирования с помощью мастер-инструкторов в темпе, который подходит для вашей жизни. По завершении вы будете готовы к позиции младшего разработчика. Подайте заявку на учебный курс по кодированию уже сегодня.