Как стать более хорошим программистом не программируя

Вольный перевод статьи, взятой отсюда. 

Однажды Билла Гейтса спросили: помогают ли в программировании долгие годы практики? Вот что он ответил:
Нет. Я думаю, что после трех-четырех лет можно уже сказать, хороший вы программист или нет. Долгие годы помогут вам в управлении большими проектами и вообще в управлении людьми, но после трех-четырех лет должно быть ясно кем вы станете. В Microsoft нет никого, кто был бы посредственным после двух лет работы. Я могу поговорить с любым человеком о программе, которую он написал и точно сказать, хороший ли он программист.

Правда в том, что хорошие программисты отличаются от  посредственных программистов. Получается, что сколько вы ни старайтесь, вы не станете хорошим программистом, если вы посредственный программист. Если опыт не дает вам стать хорошим программистом, тогда что?
Открою вам секрет, единственный путь стать более хорошим программистом состоит не в программировании. Выйдите на свежий воздух, забудьте на некоторое время о коде. Код важен, но это лишь малая часть общего процесса программирования. Вот что пишет дизайнер Michael Bierut.
За годы я осознал, что моя лучшая работа всегда включает предметы, которые интересуют меня. Даже больше: которые увлекают меня и вдохновляют в течение всего процесса моей дизайнерской работы. Я люблю дизайн сам по себе, но есть другие важные вещи, которые стоят вне его. Это может быть профессиональный футбол, искусство, политика. И если я не увлекаюсь чем-то еще, то у меня возникают проблемы при выполнении своей работы. В заключение могу сказать, что чем больше вещей вас интересует в работе, тем лучше вы делаете работу.
Увлечение программированием - это прекрасно, но это слишком просто закреплять свой навык все глубже и глубже. Чтобы стать действительно стать хорошим программистом, вы должны культивировать увлечение всем, что связано с программированием.

Еще одна цитата из интервью с Биллом Гейтсом:
Природа этой работы не только в том, чтобы закрыть вашу дверь и кодировать и кодировать. Это было бы слишком просто. Самые важные навыки, которые отсутствуют у инженеров - это понимание других инженеров, налаживание связей с крутыми инженерами, умение работать с клиентами, маркетинговые навыки. Такова природа карьеры инженера. И среди тех людей, которых мы имеем не можем найти тех, кто хотел бы так работать, поэтому часто мы должны подталкивать людей к этому. Мне нравятся люди, которые на работе хотят получать навыки управления людьми вместе с инженерными навыками. И мы можем обещать, что такие люди после двух лет своей карьеры будут очень мало программировать, потому что есть множество путей для карьеры. Например в группе разработки Microsoft Office, где вы часть команды, создающей потрясающий продукт, вы увидите как люди используют его, создадите новую версию, реально измените производительность, возьмете на себя большие риски и сделаете новые функции, которые нужны людям (прим: у Билла довольно сложный для перевода английский).
Вы не будете, даже лучше сказать вы не сможете стать более хорошим программистом создавая что-то в одиночку. Вы сможете только дополнить или усилить ваши существующие навыки. Изучайте ваших пользователей, изучайте область применения программ, изучайте бизнес.
Чем больше вещей вас будет интересовать, тем лучше вы будете делать вашу работу.

Комментарии