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

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

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

МАТЕРИАЛЬНАЯ СТАТЬЯ
Источник: https://newrelic.com/blog/nerd-life/8-ways-become-a-better-coder
Автор: Эстер Шиндлер

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

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

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

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

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

3. «Код работает» — это не то, на чем вы останавливаетесь; это то, с чего вы начинаете

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

Но остановиться после того, как это «сделано», — это все равно, что сделать снимок и ожидать, что он станет произведением искусства. Великие программисты знают, что первая итерация — это всего лишь первая итерация. Работает — поздравляю! — но ты еще не закончил. Теперь улучшите.

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

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

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

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

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

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

5. Читать код. Читать много кода

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

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

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

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

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

6. Пишите код, а не только как задания

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

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

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

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

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

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

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

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

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

Это сообщение было обновлено по сравнению с предыдущей версией, опубликованной в феврале 2016 года. Изображения код, обучение, чтение и совместная работа предоставлены Shutterstock.com.