Как стать хорошим программистом?

Что нужно изучить программисту, чтобы повысить свой уровень профессионализма? На этот вопрос отвечают пользователи сайта Quora.

 

Пья На, работает в компании Google

Почитайте о структуре и интерпретации компьютерных программ. (Например, «Структура и интерпретация компьютерных программ», Харольд Абельсон и Джеральд Джей Сассман). Если вы целеустремленный и действительно хотите изучить основы компьютерных наук, то никакая другая книга за настолько короткий промежуток времени не даст столь всесторонний и глубокий взгляд на информатику. 

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

Тщательно изучите среду разработки. Самые лучшие и успешные программисты используют подобные знания для работы с максимальной эффективностью.

Прочтите книгу Питера Норвига «Научитесь программировать за 10 лет».

 

Майк Каутермарш, работает в Product Hunt

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

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

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

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

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

Мне казалось, что я все делаю правильно. Как оказалось, это было не так. У меня была средняя производительность, а на отличные проекты ставили других разработчиков. Хоть я и писал достаточное количество «отличного» кода, моя работа приносила бизнесу не так уж и много пользы. Я тратил слишком много времени на мелкие технические детали вместо того, чтобы обращать внимание на всю картину в целом.

Однажды мой наставник дал мне классный совет: “Ты должен поднять свою пятую точку со стула и пойти поговорить со своими клиентами”. Именно после этого все поменялось для меня.

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

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

Начать – это совсем просто, и вы тоже так можете.

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

Начав общаться с другими людьми и пытаясь глубже вникнуть в бизнес, вы уже через некоторое время начнете немного по-другому воспринимать и понимать свои проекты. Прежде чем взяться за проект, я трачу около 30 минут на очень важную вещь.

Когда вас назначают на проект, вы делаете именно то, что вам приказано? Именно так поступают обычные разработчики. Отличный разработчик понимает, какую именно пользу должен принести этот проект. Изучите так называемое «правило 20/80» (принцип Парето) и обсудите с проект-менеджером, каким образом вы можете решить задачу при помощи минимального объема кода. Помните, что вы стремитесь меньшими усилиями добиться большего.

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

Итак, как же стать отличным программистом?

  1. Не закрывайтесь в «технической ракушке» и постарайтесь узнать, как работает бизнес.
  2. Изучите и применяйте принцип Парето 20/80!
  3. Используйте свои технические навыки для того, чтобы решить важные для компании задачи.

 

 

Пауль Колоцсвари, работает в компании Motorola

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

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

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

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

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

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 4
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

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

Если за неё платят - какое это имеет значение? (С)

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

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

Вот так на свете множатся неудобные, забагованные мелковатыми, мельчайшими багами, софтверные продукты, с которыми работают - куда же денешься то, но которые вызывают постоянное отвращения из этого вот принципа переноса шлифовки на  2.0 потом на 3.0 потом на 4.0 потом на  ... всё переписать и начнём с нового продукта 1.0. no

 

Изучите и применяйте принцип Парето 20/80!

Из-за этого принципа на верх пробираются те, кто уже на верху понимает  не более 20% из 100%, и на вершине будет тот, кто:

При́нцип Пи́тера — положение, выдвинутое и обоснованное в одноимённой книге Лоуренсом Питером. Формулировка: «В иерархической системе каждый индивидуум имеет тенденцию подняться до уровня своей некомпетентности».

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

Напомнило: 

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

Никогда не думал, что скажу: "согласен с Логиком"

Аватар пользователя Dmitry

Никогда не думал, что скажу: "согласен с Логиком"

... с Островским, наперекор ватникам, демонтирующим свое прошлое.

-3

Panzer1001 пишет:

Никогда не думал, что скажу: "согласен с Логиком"


Я слышал эту фразу уже от всех постоянных посетителей этого форума! smiley

+1

Норма - это 87+/-5 % (с)