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

lucho-49

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

 

В ходе переписки с Джастином он упомянул, что блоги, статьи и журналы, ориентированные на разработчиков, в основном делятся на 2 категории: материалы для начинающих (уроки в духе «Hello World») и материалы для экспертов (журнал MSDN Magazine). Это крайне ценная точка зрения. Лишь малая часть информации посвящена тому, как разработчику из новичка стать продвинутым специалистом. Перед вами 10 пунктов, которые необходимо выполнить, чтобы осуществить этот переход.

 

#1: Выучите еще один язык программирования

Не важно, какой это будет язык. Процесс изучения нового языка (независимо от того, сколько языков вы уже знаете) сделает вас лучшим разработчиком. В идеале стоит выучить язык, значительно отличающийся от того, что вы уже используете на повседневной основе. Другими словами, если пишете на C#, изучение VB.NET или Java будет не столь полезно, как изучение Ruby или Groovy.

И когда я говорю «выучите еще один язык», я имею в виду именно «выучите». Знание языка состоит из трех областей знаний: синтаксис, встроенные операторы и библиотеки, а также «техника их использования». Первые две довольно просты; думаю, опытному разработчику под силу освоить синтаксис, необходимый для поддержки кода, за срок от 30 минут до нескольких часов, в зависимости от языка. Операторы и библиотеки — лишь вопрос медленного накопления знаний и желания лезть в справочные материалы, пока не запомнишь то, что нужно знать. Но вот третья область — техника их использования — может быть освоена только спустя месяцы работы с языком, и вот здесь происходит настоящая магия. Я рекомендую вам сделать проект, который хорошо подходит для выбранного языка, и сделать его, соблюдая стиль этого языка.

 

Выучите язык «по-настоящему», и я обещаю, что ваши навыки разработки начнут раскрываться.

 

#2: Выучите технику, тактику и стратегии продвинутого поиска

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

 

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

 

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

 

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

#3: Помогайте другим

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

 

#4: Сохраняйте спокойствие и не прекращайте практиковаться

Исследования говорят, что человеку нужно «около десяти лет, или от десяти до двадцати тысяч часов практики», чтобы стать «экспертом». Это очень большой срок. К тому же, чтобы стать экспертом, не обязательно заниматься одним и тем же делом 10 лет; очень часто это означает выполнение широкого спектра задач в какой-то конкретной сфере в течение 10 лет. Чтобы стать «экспертом», придется потратить много времени и сил. Проработать разработчиком несколько лет недостаточно. Хотите стать старшим разработчиком до 35? Либо раньше начинайте учиться/заниматься, либо готовьтесь много работать, много читать и практиковаться в свободное время. Я начал заниматься программированием в старшей школе и посвятил много свободного от работы времени, чтобы идти в ногу с нашей индустрией, осваивая новые навыки и т.д. В итоге я получил место миддла, а затем и старшего разработчика гораздо раньше, чем большинство моих конкурентов, что со временем привело к огромному заработку.

 

#5: Оставьте свои убеждения на пороге

Вот вам немного жесткой правды: знаний начинающих разработчиков, скорее всего, будет недостаточно, чтобы заявить, что есть лишь Один Правильный Способ сделать что-либо. Нет ничего страшного в том, чтобы уважать мнение друга или известного авторитета, но пока вы не наберетесь опыта, не стоит выдавать их мнения за свои. На самом деле, если вы не знаете достаточно, чтобы самостоятельно разбираться в этих вещах, то откуда вы знаете, какой из «экспертов» прав? Знаю, это прозвучит довольно грубо, но прошу, поверьте мне. Я встречал слишком много начинающих разработчиков, которые годами тормозили свою карьеру либо профессиональный рост просто потому, что повелись на чей-то дурацкий совет или прислушались к какому-то «эксперту», который даже не знал, о чем говорит. Прекрасным примером этого может послужить избыток объекто-ориентированной архитектуры. Многим новичкам достаточно лишь поверхностно изучить ОО, и вот уже диаграммы их классов в простых приложениях выглядят, как Эйфелева башня.

 

#6: Тщательно изучите несколько продвинутых тем

Значительная часть процесса превращения в продвинутого разработчика заключается в изучении нескольких концепций, которые вы действительно хорошо знаете и используете в своем коде. В моем случае это многопоточность/паралеллизм, регулярные выражения, а также выгодное использование динамических языков (последними двумя я пользуюсь всё реже, поскольку всё меньше использую Perl). Как я дошел до этого? Я освоил многопоточность и параллельную обработку, потому что я читал о них много статей, эта тема казалась мне интересной, и я изучил ее самостоятельно. Я продолжаю писать приложения, которые используют эти методы. На одной из моих работ мне очень часто приходилось использовать регулярные выражения в Perl. Кроме того, я в итоге написал собственный движок для интернет-торговли, включавший движок для обработки шаблонов и встроенную систему баз данных. После этого я около двух лет провел за работой над ним.

 

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

 

#7: Изучите базовые теории, лежащие в основе вашей сферы деятельности

Одно дело написать «Hello World», но совсем другое — понять, как слова появляются на экране. Изучив тот «фундамент», что поддерживает вашу область, вы станете гораздо лучше разбираться в ней. Почему? Потому что вы поймете, почему вещи работают именно так, как работают; в чем может быть ошибка, когда что-то не работает, и т.д. Вы станете опытнее, поняв, что происходит на нижних уровнях вашей сферы деятельности.

 

Если вы занимаетесь веб-разработкой, прочтите описание протокола HTTP и спецификацию HTML. Если вы используете генератор кода, внимательно изучите создаваемый им код; если вы используете инструменты для работы с базой данных, взгляните на SQL-запросы, которые они создают, и т.д.

 

#8: Изучайте код старших разработчиков

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

 

#9: Изучайте хорошие приемы

Ничто так не выдает неопытного разработчика, как глупые имена переменных, беспорядочные отступы и прочие признаки неаккуратности. Очень часто можно встретить разработчиков, которые научились программированию, но никто не научил их таким гораздо менее интересным вещам как форматирование — и это бросается в глаза. И пусть даже изучение этих вещей не всегда сможет сделать ваш код лучше или сделать вас лучшим разработчиком, но ваши коллеги точно не будут смотреть на вас, как на новичка. Даже если кто-то дослужился до старшего разработчика, но он присваивает переменным имена своих 97 кошек, а его функции называются «doSomething()», это выглядит так, будто он не знает, чем занимается, и в дальнейшем такой код тяжелее поддерживать.

 

#10: Получайте удовольствие

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

 

Оригинал


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>