Найти тему
Roman Smirnov

8 Способов стать лучшим программистом

Оглавление

Пришло время серьезно заняться совершенствованием своих навыков программирования. Давайте сделаем это!

Это легкая цель для карьерного роста, но “стать крутым программистом” - не простая цель. Во-первых, высказывание “Я хочу стать лучше” предполагает, что вы понимаете, как выглядит “лучше”. Кроме того, слишком много людей стремятся к улучшению, не имея ни малейшего представления о том, как этого достичь.

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

1. Напомните себе, как многому вам еще предстоит научиться

Первый шаг в изучении чего-то-это осознание того, что вы этого не знаете. Это звучит очевидно, но опытные программисты помнят, сколько времени потребовалось, чтобы преодолеть это личное предположение. Слишком многие студенты-информатики заканчивают учебу с высокомерной бравадой “я знаю лучше всех”, твердой уверенностью в том, что они знают все, и острой потребностью доказать это каждому новому коллеге по работе. Другими словами: отношение “Я знаю, что я делаю!” может помешать изучению чего-либо нового.

2. Перестаньте пытаться доказать свою правоту

Чтобы стать великим—а не просто хорошим,—вы должны учиться на собственном опыте. Но будьте осторожны, опыт может научить нас повторять плохое поведение и создавать плохие привычки. Мы все сталкивались с программистами с восьмилетним опытом работы ... один и тот же год опыта, повторенный восемь раз. Чтобы избежать этого синдрома, посмотрите на все, что вы делаете, и спросите себя: “Как я могу сделать это лучше?”

Начинающие разработчики программного обеспечения (и слишком много опытных) смотрят на свой код, чтобы восхититься его чудесностью. Они пишут тесты, чтобы доказать, что их код работает, вместо того, чтобы пытаться заставить его потерпеть неудачу. По—настоящему великие программисты активно ищут, где они ошибаются, потому что они знают, что в конечном итоге пользователи найдут дефекты, которые они пропустили.

3. “Код работает” - это не то, на чем вы останавливаетесь; это то, с чего вы начинаете

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

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

Частью этого процесса является определение того, что означает “лучше”. Полезно ли сделать это быстрее? Легче документировать? Более многоразовые? Более надежный? Ответ зависит от каждого приложения, но процесс не меняется.

4. Напишите это три раза

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

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

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

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

5. Прочитайте код. Прочитал много кода

-2

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

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

  • Как бы я написал этот блок кода? Что бы вы сделали по-другому теперь, когда увидели другое решение?
  • Чему я научился? Как я могу применить эту технику к коду, который я написал в прошлом? (“Мне бы никогда не пришло в голову использовать рекурсивный спуск там...”).
  • Как бы я улучшил этот код? И если это проект с открытым исходным кодом, в котором вы уверены, что у вас есть лучшее решение, сделайте это!
  • Пишите код в авторском стиле. Практика этого поможет вам проникнуть в голову человека, написавшего программное обеспечение, что может улучшить вашу эмпатию.

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

Предупреждение: Легко прочитать много кода, не став великим программистом, точно так же, как начинающий писатель может читать великую литературу, не совершенствуя свою собственную прозу. Многие разработчики обращаются к открытому исходному коду или другому программному обеспечению, чтобы “найти ответ” и, скорее всего, скопировать и вставить код, который, по-видимому, решает аналогичную проблему. Поступая так, вы на самом деле можете стать хуже программист, поскольку вы слепо принимаете чужую мудрость, не исследуя ее. (Кроме того, это может быть сложнее, чем летний пикник, но из-за того, что вы не потратили время, чтобы понять это, вы никогда не поймете, что вы только что импортировали фабрику ошибок.)

6. Пишите код, а не просто как задания

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

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

Совет профессионала: Не выбирайте только личные проекты, в которых вы никогда не потерпите неудачу. Тебе нужно потерпеть неудачу! Но вы, вероятно, не хотите потерпеть неудачу на работе или когда у вас есть крайний срок.

7. Работайте один на один с другими разработчиками любым доступным вам способом

-3

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

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

8. Изучайте методы, а не инструменты

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

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