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

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

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

Развитие мышления, направленного на решение проблем

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

Если у вас есть сомнения по поводу продолжения карьеры в этой сфере, вам нужно ответить на несколько важных вопросов.

Готовы ли вы учиться новому на протяжении большей части своей карьеры? Сможете ли вы справиться с давлением и разочарованием? Вам нравится решать проблемы или вы считаете это обузой? Готовы ли вы дисциплинированно относиться к своей работе и способам работы? Вы создатель и в целом увлечены созданием вещей?

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

Некоторые люди просто не могут вынести трудностей инженера.

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

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

Ну, я собираюсь поговорить о списке вещей ... так что, пожалуйста, продолжайте читать.

Ставьте себе карьерные цели

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

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

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

Узнайте секреты магии

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

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

Выберите подходящий набор технологий для ваших целей

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

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

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

Прибей это собеседование

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

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

Вы плохо справляетесь с тестами по кодированию? Практикуйтесь онлайн на таких сайтах, как HackerRank, пока не освоитесь с ними. Вы действительно нервничаете во время интервью? Просто пройдите кучу из них, пока не приобретете необходимую уверенность. Есть ли у вас пробелы в какой-то определенной области, и это часто всплывает на собеседованиях? Работайте над заполнением этих пробелов!

Если вы не желаете делать все это, это сделают другие кандидаты.

Включайся в работу

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

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

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

Мозг отключается…

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

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

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

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

Будьте в долгосрочной перспективе

Дайте себе понять, что для того, чтобы по-настоящему хорошо что-то сделать, нужно время и усилия. Чем больше времени вы посвятите чему-то, тем быстрее вы станете лучше. Если вы программируете и учитесь 12 часов в день вместо 8, вы довольно быстро опередите своих конкурентов. С годами это время складывается и имеет реальное значение.

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

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

Вы не просто кодирующая машина

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

Убедитесь, что вы взаимодействуете с людьми и учитесь эффективно общаться. Попробуйте решить более серьезные проблемы, а не только те, которые связаны с вашим кодом. Научитесь разблокировать себя и перестаньте спрашивать своих менеджеров: «Вы можете пойти и выяснить это?». Стройте прочные отношения с людьми, которые вас вдохновляют, и задавайте им множество вопросов.

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

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

Старайтесь быть правильным умным

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