На встрече, посвященной Javascript, я услышал, как мой друг, технический предприниматель, выкупивший две компании, начал свою тираду о курсах для начинающих по кодированию и о термине «младший разработчик».

Избавляя вас от капельного сарказма, мы сделали следующие выводы:

  1. Младший разработчик не решает настоящих инженерных задач; они выполняют работу css и html, которую инженеры среднего и высшего звена хотят избежать.
  2. Младший разработчик означает веб-инженера, которому недоплачивают.
  3. Компания, которой нужен младший разработчик, который на самом деле «сдвинет иголку», просто хочет, чтобы разработчик не понимал своей рыночной стоимости или не имел уверенности, чтобы требовать ее.
  4. Младший разработчик означает, что вам нужно немного держать руку на пульсе… и в этом нет ничего плохого. Но если вы самостоятельно решаете проблемы, то вы не младший разработчик.

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

Здесь должен быть пробел ...

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

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

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

Дорожная карта:

  1. Знайте, что есть разница между способностью выполнять работу и возможностью пройти собеседование. Нравится вам это или нет, но многие собеседования на высшем уровне сводятся к вопросам, касающимся алгоритмов и системного проектирования. Практикуйте общие алгоритмы CS, сортировки, полиномиальные вопросы и т. Д. Я большой поклонник торта для собеседования. Изучите дизайн системы, пока не составите мнение об общих проблемах, возникающих в масштабе. Я бы обратился к таким блогам, как WalMartLabs и The Netflix Tech Blog.
  2. Знайте основы вашего данного языка. В Javascript понимайте замыкания и обратные вызовы на очень личном уровне. Позиции высшего среднего и высшего звена будут проверять эту область с самого начала. Для этого обратитесь к источникам подготовки для начинающих, таким как Codesmith’s CSX. У них довольно много проблем, которые гарантируют, что вы можете отслеживать объем и контекст выполнения. Лучшие буткемпы заботятся об этом еще до того, как вас впустят.
  3. Сделайте чистый гитхаб. Идея запаха кода вполне реальна. Убедитесь, что ваш github чистый, а журналы коммитов очищены и полезны для всех, кто собирает информацию.
  4. Создайте github, полный проектов, которыми вы увлечены и с которыми можете поговорить.
  5. Постоянно смотрим на набирающие обороты технологии и ныряем в документацию. Попробуйте создать самую маленькую жизнеспособную вещь с помощью чего-то вроде GraphQL или Websockets… что-то важное, но, возможно, второстепенное. Таким образом вы можете попасть в начало многих строчек.
  6. Вносите свой вклад в развитие открытого исходного кода, даже если это просто написание документации.
  7. Узнайте, как облететь установленную кодовую базу и как можно быстрее получить понимание. Изучите git blame, git diff и git log, чтобы стать детективом кода. Научитесь использовать тест кодовой базы, чтобы получить представление о приложении.
  8. Посетите лучший буткемп с проверенной репутацией. Избегайте тех, в которых все студенты пишут одни и те же приложения. Рекрутеры очень хорошо знакомы с этими github и резюме. Codesmith из Лос-Анджелеса и Нью-Йорка заставляет своих студентов придумывать свои собственные флагманские проекты. Студентов специально отводят от традиционных ориентированных на пользователя приложений crud и заставляют работать над инструментами и библиотеками разработчика. Уверенность в том, что нырнул на такой глубокий уровень за такой короткий промежуток времени, часто неоценима.

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