Уроки перехода на другую работу

Я не получил университетского образования по информатике, и я еще не уверен, что мне это нужно.

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

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

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

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

Посетите учебный лагерь

Альтернативой университетской степени является посещение учебного лагеря, организованного университетом или «школой программирования» (частной компанией, которая преподает разработку программного обеспечения). Популярный вариант, учебные лагеря часто дешевле, короче и гибче, чем получение традиционной степени. Эти учебные курсы включают в себя различные технические навыки и бывают разной продолжительности и разной стоимости. Изучение того, что вы хотите узнать, - важный первый шаг к определению, подходит ли вам посещение учебного лагеря.

Получите технические сертификаты

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

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

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

Два сертификата, которые я получил лично, включают:

  • Сертификация сертифицированного разработчика Amazon Web Services (AWS)

Согласно документации AWS по этому сертификату, экзамен AWS Certified Developer - Associate подтверждает технический опыт разработки и сопровождения приложений на платформе AWS. В сертификацию включены следующие сервисы AWS: S3, EC2, Route 53, VPC, Subnet, Security Groups, DynamoDB SQS, SNS, SWS, ELB и CloudFormation.

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

  • Программист Java SE 8 1 - сертификация Oracle

Эта сертификация Oracle охватывает основы, типы данных, операторы и конструкции решений, массивы, методы, обработку исключений, наследование, классы и инкапсуляцию. Примечание. Сертификация Java 9 должна выйти в ближайшее время - судя по тому, что я читал, она ожидается где-то в 2018 году.

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

Создавайте и храните приложения в общедоступном репозитории

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

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

Разработчики могут хранить и делиться своим кодом для совместной разработки в общедоступном репозитории. Я лично использую GitHub как инструмент для обучения, репозиторий для сохранения кода и портфолио. Вы можете использовать свой репозиторий GitHub и управлять им как своим техническим портфолио с первого дня. Таким образом, когда вы будете готовы устроиться на работу в области разработки программного обеспечения, вы сразу сможете выделиться среди других.

* Размещайте проекты, которые вы завершили по мере изучения языков. Эти проекты подтверждают, что вы пробовали и успешно использовали различные области разработки программного обеспечения (интерфейс, серверная часть, DevOps) и языки ( Java, JavaScript, Go, Python и т. Д.). Многие компании, ищущие инженеров полного цикла, наймут кого-нибудь на должность, которая активно использует один язык, даже если он не является основным языком кандидата. То есть до тех пор, пока кандидат может продемонстрировать, что он быстро учится и понимает основные принципы информатики. Разнообразие вашего репо помогает продемонстрировать вашу способность и готовность адаптироваться. Например, выполнение двух перечисленных выше руководств продемонстрирует ваше техническое понимание Unity и JavaScript с помощью игры «ролл-а-мяч», а также Python и AWS Lambda с помощью приложения Alexa.

* Продемонстрируйте целеустремленность. Как только вы найдете область, которая вам нравится, создайте в ней достаточно проектов, чтобы продемонстрировать свою компетентность и создать устойчивый личный бренд. Сегодня я работаю в основном на Java. Некоторые тактики для тех, кто строит свой бренд как Java-разработчик, включают:

  • Ваше репо - если вы создаете бренд как Java-разработчик, пусть 50% + проектов в вашем репозитории написаны на Java, а остальные проекты демонстрируют различные навыки, которые дополняют ваши навыки Java.
  • Ваш LinkedIn - убедитесь, что у вас есть одобрение Java в разделах о ваших навыках или ваших рекомендациях. Публикуйте статьи о своих Java-проектах. Включите в описание «Java Developer».

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

Участвуйте в сообществе

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

  • Говорите. Организаторы технических мероприятий жаждут выступлений и хорошего контента от людей, которые увлечены и выразительны в отношении того, что они создают. Подумайте о посещении мероприятий, знакомстве с людьми, а когда будете готовы - отправке выступлений. См. мою статью «Как начать выступать на технических мероприятиях», чтобы начать выступать на технических конференциях.
  • Поделиться: То же самое и с блогами. Начните с личного блога, возможно, просто объясняя проекты, над которыми вы работали для своего портфолио, и постепенно отправляйте статьи в другие технические публикации.
  • Волонтер: станьте помощником учителя (TA) или наставником в учебном лагере или хакатоне и помогите начинающим инженерам-программистам заработать себе репутацию. Ассистенты и наставники предлагают учащимся кого-то, с кем можно общаться и кого можно мотивировать; особенно если они мечтают когда-нибудь оказаться на вашем месте. Работа ТА или наставника также поможет вам продолжить практику и отточить свои технические и коммуникативные навыки, применяя их для решения различных технических проблем. Сейчас я работаю TA в Университете Ричмонда на учебном курсе по веб-разработке для продолжения обучения, и это был отличный способ улучшить свои навыки, при этом жертвуя!
  • Хакерство. Хакатоны могут стать прекрасной возможностью приобрести навыки, познакомиться с коллегами, создать проекты для своего портфолио и, возможно, забрать домой награду для включения в свое резюме.

Ресурсы

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

  • HackerRank - HackerRank публикует проблемы с кодом и стимулирует участие, позволяя пользователям набирать очки и создавать мини-портфолио на своем сайте. Кроме того, выполнение этих задач по кодированию помогает подготовиться к будущим собеседованиям, поскольку многие рабочие места распределяют эти задачи как часть процесса собеседования.
  • Облачный гуру - обучающие видео и интерактивные демонстрации для подготовки к сертификации AWS, включая сертификацию сертифицированного разработчика, которую я получил.
  • Учебники по Unity - Учебники для игровой платформы Unity. Ролл-а-шар, космические захватчики и т. Д. Вы будете создавать сценарии на основе JavaScript, чтобы управлять игровым процессом вашего пользователя.
  • Академия кода - Интернет-обучение с интерактивными учебными материалами по разным языкам и концепциям программирования. Я лично прошел курсы Git, Java, JavaScript, Ruby, SQL, HTML, AngularJS 1.X, ReactJS и веб-разработки с помощью этой платформы.
  • Alexa Skills Kit - Учебники по созданию различных приложений Alexa.

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

Этот пост изначально был опубликован в моем блоге lemonwater.io. Ознакомьтесь с дополнительными сведениями о том, как начать работу младшим инженером-программистом!

РАСКРЫТИЕ ИНФОРМАЦИИ: это мнение автора. Если в этом посте не указано иное, Capital One не является аффилированным лицом и не поддерживается ни одной из упомянутых компаний. Все используемые или отображаемые товарные знаки и другая интеллектуальная собственность являются собственностью соответствующих владельцев. Эта статья © Capital One 2018.