Итак, вы только что закончили университетский курс, или учебный курс по программированию, или серию уроков на CodeCademy и готовы расправить крылья в качестве веб-разработчика.
Вы можете спросить себя: что теперь?
Первый год профессионального пути веб-разработчика часто бывает одним из самых сложных, но он может стать решающим в формировании всей ранней фазы карьеры молодого программиста.
В этой статье мы рассмотрим, как вам следует подходить к этому первому году, а также о том, что можно и чего нельзя делать младшим разработчикам на этом раннем этапе. Это не статья о том, как найти работу или как пройти собеседование — это темы, которые мы рассмотрели в специальных статьях.
Вместо этого мы будем использовать более общий подход, который будет рассматривать первые 12 месяцев карьеры веб-разработчика с точки зрения их возможностей и их стратегий, как на работе, так и вне ее, а также давать некоторые советы, которые могут помочь вам получить преимущество. .
Тогда давайте начнем, или, точнее, давайте начнем!
Часть 1. Планирование карьеры
Есть несколько путей в мир веб-разработки, и ни один из них не будет оптимальным для всех. Имейте в виду, однако, что каждый день, который вы тратите на кодирование, поможет вам накопить опыт, поэтому, пока ваша работа позволяет вам это делать, поверьте, что вы не ошиблись!
Сказав это, вы должны принять сознательное решение о том, какую карьеру вы хотите, и искать работу соответственно. Для младшего веб-разработчика выбор обычно сводится к трем широким вариантам, а именно:
Медленный путь: найдите большую команду
Хотя ни один тип компании не может гарантировать условия с низким уровнем стресса, тем, кто любит мягкие посадки, следует стремиться присоединиться либо к относительно крупному бизнесу, либо к компании, специализирующейся на программных услугах. Причина этого в том, что на вашей первой работе в качестве веб-разработчика вы будете часто просить о помощи, даже после завершения этапа адаптации.
Самая сложная часть первой работы младшего разработчика часто связана с тем, что он не получает необходимой помощи и поддержки. Присоединение к более крупной команде помогает предотвратить это — всегда должен быть кто-то, к кому вы можете обратиться к за помощью. Более того, вы можете найти себе наставника, человека, который предоставит вам сокровищницу советов и советов, которые будут служить вам годами (подробнее об этом позже!).
Как новичок, вы хотите окружить себя старшими разработчиками программного обеспечения, которые научат вас правильной методологии решения проблем и выхода из затруднительного положения. Это позволит вам учиться и продуктивно провести первый год, идя в своем темпе.
Быстрый путь: разработка небольшого проекта
Альтернативой вышеизложенному является поиск относительно небольшого проекта, в котором у вас есть свобода делать все по-своему, а также следовать и развивать свои собственные методологии. Под небольшим проектом я подразумеваю что-то, что может быть завершено в течение 6 месяцев, такого типа, который обычно (хотя и не всегда) встречается в форме внештатной работы.
Этот вариант значительно сложнее, и вы должны быть готовы справиться с разочарованием. Однако это также один из способов ускорить вашу карьеру: всего за один год вы поработаете над двумя или даже тремя проектами, и ярлык младшего разработчика будет далеко позади вас. Ваша зарплата будет подскакивать примерно на 30–50% каждый раз, когда вы меняете работу.
Делать что-то без поддержки и искать новую работу несколько раз в год может быть утомительно. Но для тех, кто решил пойти куда-то, этот подход лучше всего подходит для того, чтобы доставить их туда, куда они хотят.
Супербыстрый путь: стартапы на ранней стадии
Возьмите стресс и карьерный рост, которые вы получаете от самостоятельной работы над небольшими проектами, утроите их, и вы работаете в стартапе на его ранних стадиях.
Мы рассмотрели дилемму между работой на большие компании и работой на стартапы более подробно в другом месте, но для целей этой статьи достаточно сказать, что работа на стартапы подобна игре на очень сложном уровне сложности.
У вас будет мало наставничества или его совсем не будет, вас попросят сделать все, что никогда не входило в ваши должностные инструкции, вы будете сталкиваться с одной чрезвычайной ситуацией за другой, вас будут преследовать сроки, и вам повезет с работой. 40 часов в неделю. Кроме того, ваша компания, вероятно, потерпит неудачу.
На самом деле, причина, по которой вас, вероятно, возьмут на работу, в первую очередь заключается в том, что стартап не может позволить себе нанять старшего веб-разработчика, и им приходится довольствоваться неквалифицированным новичком, таким как вы! Опыт будет несправедливым практически по замыслу.
Тем не менее, для тех, кто готов пройти через это, нет ничего в мире, что могло бы помочь вам расти так же быстро, как работа в стартапе. Вы приобретете огромный спектр навыков и сможете легко пройти путь от младшего разработчика до менеджера небольшой команды менее чем за год.
Работа в стартапе может быть полезной на всех уровнях, но имейте в виду, что это не для слабонервных, и это удваивается, если это ваша первая работа. Кроме того, позвольте мне еще раз подчеркнуть, что я говорю о стартапе на его относительно ранней стадии — если вы присоединяетесь к «стартапу», в котором уже есть 40 сотрудников, вы, по сути, только что присоединились к компании.
Дополнительный совет: подавите ядовитый росток в зародыше
Это относится не только к веб-разработчикам или техническим работникам, но все равно стоит отметить: если вам не повезло оказаться в команде с токсичной культурой работы, не совершайте ошибку, принимая это во имя приспособления!
У вас может не хватить сил все исправить самостоятельно, но вы должны установить четкие границы и сообщать людям обо всем, что вас не устраивает, начиная немедленно. Поверьте мне, чем дольше вы будете ждать, чтобы бросить вызов токсичному поведению, тем сложнее будет этот вызов и тем больше вероятность того, что он потерпит неудачу.
Часть 2. Приближение к вашей первой работе
В этом разделе предполагается, что вы уже выбрали тип карьеры, который хотите, и получили эту волшебную первую работу в сфере технологий. Поздравляем! Вот несколько рекомендаций, чтобы убедиться, что вы начинаете с правильной ноги.
Исследуйте экосистему
Если это ваша первая работа в качестве веб-разработчика, вам следует избегать попадания в «пузырь технической команды», а вместо этого обращаться к представителям различных отделов, чтобы получить более широкое представление о том, как работает ваша компания. Сделайте это с самого начала.
По общему признанию, раньше это было проще, пока работа из дома не стала стандартом — тогда можно было просто носить коробку шоколадных конфет по разным офисам и представляться.
Все равно можно запланировать звонки и узнать, скажем, чем именно занимается отдел маркетинга. Получить представление о структуре бизнеса. Такая информация станет ценной в долгосрочной перспективе, не в последнюю очередь, когда дело доходит до выбора следующей компании.
Вы также должны провести расследование внутри своей команды, особенно с одной целью: найти наставника. В начале своей работы вы будете много задавать вопросы, и будет очень полезно, если у вас будет кто-то, кто предложит помощь.
Независимо от того, найдете ли вы наставника или нет (или назначен ли кто-то, чтобы направлять вас), познакомьтесь со своей командой и узнайте, кто обладает компетенцией и приветливостью, чтобы помочь вам, когда вам это нужно. Ваш наставник или непосредственный руководитель не всегда может быть лучшим человеком, чтобы ответить на ваши вопросы, поэтому убедитесь, что вы знаете, к кому обратиться.
Правильно обращаться за помощью
Как я уже говорил выше, у вас будет много вопросов. Это нормально, и вы не должны стесняться просить о помощи — но вы также не хотите засыпать всех вокруг по 600 вопросов в день.
Итак, прежде чем обращаться за помощью, всегда спрашивайте себя: сделал ли я все, что мог, чтобы решить эту проблему самостоятельно? Если ответ отрицательный, попробуйте сначала решить проблему самостоятельно. Спросите Google, спросите Stack Overflow и спросите свою резиновую утку. Это должно быть вашей стандартной процедурой, прежде чем вы спросите любого из ваших коллег.
Когда вы решили, что вам нужно задать вопрос, обратитесь к нужным людям — тем, кто обладает соответствующими компетенциями и не прочь отвлечься от своих задач, чтобы помочь новичку. Вы уже должны знать, кто они — об этом был предыдущий совет.
Не недооценивайте свои первые задания
Ваша команда будет знать, что вы джуниор, поэтому сначала будут давать вам максимально простые задания. Некоторые из них могут показаться элементарными, особенно если вы только что прошли последний и самый сложный этап буткемпа по программированию.
Не попадайтесь в ловушку легкомысленного отношения к этим задачам. Во-первых, многие из них будут более сложными, чем вы думали изначально, и вы должны быть готовы к тому, что они разочаруют вас. С другой стороны, эти задачи представляют собой возможность ознакомиться с методологиями вашей команды.
Если вам назначена очень простая задача, которая требует, например, импорта определенной библиотеки, то это признак того, что вам нужно начать изучать и практиковаться с этой библиотекой — независимо от того, необходимы ли дополнительные исследования для решения вашей конкретной проблемы в данный момент. момент. Таким образом, когда задачи станут более сложными (и поверьте мне, они будут), у вас будет прочная основа.
Не откусывайте больше, чем сможете прожевать
Учитывая простоту ваших первоначальных задач и естественное желание большинства людей проявить себя при входе в новую рабочую среду, у вас может возникнуть соблазн высказаться при планировании следующего спринта и предложить взять на себя больше (или более амбициозную) работу, чем то, что вы хотите. были назначены.
Проактивный подход всегда похвален, и в некоторых областях работы такой подход может действительно завести вас очень далеко. Однако в такой технической области, как веб-разработка, вы можете сопротивляться искушению.
Я не говорю, что у вас не должно быть амбиций, но то, что делает в команде, зависит от мастера схватки, у которого обычно есть веская причина для своих решений. Кроме того, планирование спринта имеет встроенную систему обратной связи: время, необходимое для выполнения задач, относительно того, сколько времени было дано разработчику, сообщает скрам-мастеру, назначили ли они что-то слишком легкое или слишком сложное. Пусть эта система обратной связи говорит за вас.
Опять же, дело здесь не в том, что вы никогда не должны проявлять инициативу или выходить за рамки служебного долга. Только дайте ему некоторое время, прежде чем сделать шаг вперед, и убедитесь, что вы понимаете, как каждая задача служит команде в целом. Привлечение внимания и повышение голоса творит чудеса, если вы хотите быть певцом — для младшего веб-разработчика есть другие приоритеты, о которых нужно беспокоиться.
Часть 3. Образ мышления и философия
Если вы научились программировать, то вы уже знаете кое-что о том, какой ментальный подход необходим для этой работы. Здесь мы рассмотрим, где этот подход должен измениться — и, что немаловажно, где он не должен измениться — когда вы выйдете на профессиональную арену.
Сосредоточьтесь на чистоте кода
Люди, которые все еще учатся программировать, часто являются большими поклонниками подхода к программированию «все работает». Пока это решает проблему в учебнике, кого волнует, дал ли я своей переменной глупое имя или не расставил все правильно, верно?
Мертвая ошибка. Одно из больших изменений при входе в профессиональный мир заключается в том, что чистый, разборчивый и (в идеале) элегантный код имеет значение. Любые привычки, которые вы приобрели, которые, по вашему мнению, заставляли вас работать лучше за счет вышеперечисленных качеств, должны быть отброшены.
Теперь вы должны сосредоточиться на написании кода, который будет приятно читать другим, и четко и последовательно комментировать код, чтобы он оставался разборчивым, даже если незнакомец возьмет его в руки через 10 лет.
Не существует универсального руководства о том, как писать чистый код, но одна из хороших практик состоит в том, чтобы выполнять довольно много парного программирования и проверки кода, что даст вам лучшее понимание того, как другие пишут код. Если это не вариант на вашей работе, то потратьте немного больше времени и поработайте с открытым исходным кодом.
К счастью, существует множество ресурсов с открытым исходным кодом специально для начинающих. Естественно, на GitHub уже есть некоторые варианты, но вы также можете взглянуть на Up For Grabs, Code Triage и Pull Request Roulette.
Кроме того, вот несколько советов по чтению, которые помогут в пути: Чистый код: руководство по гибкому программному мастерству Роберта С. Мартина и старая, но вечно актуальная Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения, написаны несколькими авторами.
Сохраняйте образ мышления
Некоторым из вас может показаться, что я констатирую очевидное, поскольку общеизвестно, что вы никогда не должны прекращать учиться, если хотите оставаться конкурентоспособными как разработчик. Но поскольку эта статья предназначена для людей, плохо знакомых с профессией, об этом стоит сказать вслух.
Вы никогда не сможете перестать учиться. Никогда.
Окончание курса не означает, что время учиться закончилось и пришло время работать. Это означает только то, что вы должны изменить методологию того, как вы учитесь. У вас больше нет профессора или инструктора буткемпа, который присматривал бы за вами и говорил, что изучать дальше.
Вместо этого вы должны запланировать время для практики. Ваши рабочие часы обычно должны учитывать это — умный скрам-мастер назначит новичкам крайние сроки, которые учитывают время, необходимое им для того, чтобы освоить свои инструменты. Если вы настроены на изучение чего-то, что имеет лишь косвенное отношение к вашим непосредственным задачам, занимайтесь этим в свободное время.
Я не пытаюсь продвигать культуру суеты, когда вы не спите каждую секунду, но я хочу подчеркнуть, что одна из самых впечатляющих вещей, которую вы можете сделать, будучи новым сотрудником, – научиться чему-то новому за пределами работу, познакомьте с ней остальных членов вашей команды и используйте ее в проекте вашей компании. Это не обязательно, но любой дополнительный час, потраченный на изучение чего-то нового, очень вознаградит вас в долгосрочной перспективе.
Пара дополнительных советов по обучению — во-первых, сеть. Присоединяйтесь к Meetup, Twitter, Reddit или чему угодно, но окружите себя людьми, которые заинтересованы в изучении подобных вещей.
Во-вторых, если вы не проводите никаких дополнительных исследований, то, по крайней мере, носите с собой книгу Дэвида Фланагана Learning JavaScript: The Definitive Guide и прочитайте немного — хотя бы абзац — каждый день. Вы будете удивлены, насколько это поможет.
Не смотрите на часы
Задача, на выполнение которой у вас уйдет одна неделя, может быть выполнена менее чем за 4 часа старшим разработчиком в вашей команде и даже лучше. Осознание того, насколько быстрее работают ваши более опытные коллеги, может сильно утомлять, но к этому нужно быть готовым.
Поймите, что это нормально. Тот факт, что кто-то на порядок быстрее, не означает, что он на порядок умнее — это просто способ масштабирования навыков программирования. Небольшие различия в опыте могут привести к огромным различиям в производительности.
Установите свои собственные критерии и не сравнивайте себя с другими. Кроме того, примите во внимание, что ваш первый год работы веб-разработчиком все еще является частью фазы обучения (см. выше). Поначалу вы не будете очень продуктивны. И это нормально. Будьте хладнокровны с этим.
Уйти до окончания второго года
Я закончу этот блог несколькими словами о том, что происходит после вашего первого года работы веб-разработчиком, потому что именно тогда вы должны начать думать о смене работы. Какой бы тип карьеры вы ни выбрали, вам не следует заканчивать второй год работы веб-разработчиком в той же компании, в которой вы начали.
Во-первых, да, вы напрасно наносите ущерб своему кошельку. Даже если вы договариваетесь о повышении, маловероятно, что базовая зарплата на вашей начальной работе сможет конкурировать с тем, что вы будете получать на второй и третьей работе.
Но что еще более важно, если вы так долго удерживали эту работу, это означает, что вы освоились в ней. Для веб-разработчика — и для программиста в целом — это нехорошо, особенно в начале карьеры!
Быть удобным означает, что вам не бросают вызов, вы не узнаете ничего нового. Вам может казаться, что вы «добились успеха», потому что вы счастливы там, где вы есть, но в долгосрочной перспективе вы вредите своей карьере.
Сфера веб-разработки чрезвычайно динамична, и большинство людей, работающих в ней, относительно часто меняют работу. Те, кто остается в одной компании на долгое время, обычно делают это после того, как накопили значительный опыт и/или когда их нанимают действительно элитные компании.
Если работа, которую вы получили в первый год работы веб-разработчиком, такая же, как и в середине второго года, то пришло время начать искать новую. Возможно, это не самый «удобный» вариант, но в долгосрочной перспективе он лучший.
Иди вперед и побеждай
Ваш первый год в качестве веб-разработчика, вероятно, будет сложным. Хорошая новость заключается в том, что если вы сделаете этот год удачным, ваши возможности резко возрастут. Вы сможете работать над намного большим количеством проектов — и гораздо большим количеством типов проектов — чем вы могли бы, когда вы только начинали, и ваш доход вырастет соразмерно.
Желаем всем удачи в этом новом путешествии! И если вы еще не начали этот путь, что ж — что вам мешает стать веб-разработчиком?