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




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

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

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

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

1. Напомните себе, как много вам нужно узнать.

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Прочтите код. Читать много кода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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