Найти в Дзене
Журнал «Код»

5 навыков, которые нужны хорошему программисту

Оглавление

Прокачай их все

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

Привычка экспериментировать

В программировании встречается мало ситуаций, когда что-то нельзя откатить или вернуть к предыдущему состоянию. Поэтому нет ничего страшного в том, чтобы пробовать запускать код и проверять, будет ли он работать. Хороший программист так и делает, вместо того чтобы искать специалиста уровнем постарше и спрашивать его, что будет, если он сделает то или иное. Главное — не рисковать реальным продуктом, а проводить эксперименты на тестовой площадке. И не деплоить в пятницу:-)

Что поможет вам научиться экспериментировать:

  • сторонние проекты;
  • увлечение другими языками программирования, особенно из другого семейства (процедурные, стековые, параллельные и другие);
  • рабочее место с гиковскими игрушками;
  • частое предложение дурацких и нереалистичных решений.

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

Эмоциональная отстранённость от кода

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

Как это выглядит на практике:

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

Стремление исправить то, что не сломано

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

Как это выглядит на практике:

  • поиск людей, которые будут пользоваться программой, и общение с ними;
  • склонность проверять, можно ли перепроектировать существующую функцию для выполнения ещё одной задачи, перед тем как добавлять новую функцию;
  • привычка сокращать количество строк проекта без добавления новой функциональности.

Очарованность непостижимым

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

Что может помочь развить в себе этот навык:

  • знание того, что такое АТФ-синтаза или опыт выделения ДНК из банана на своей кухне;
  • владение книгой с драконом на обложке;
  • стремление приблизиться на вечеринке к тому, кто произнёс слово «байесовский»;
  • привычка утомлять людей, объясняя что-то косвенно связанное с новостями, например компоновку кабины Airbus 330;
  • добрая зависть людям, у которых есть учёная степень в неизвестной вам области.

Храбрость учить других

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

Что может помочь:

  • блоги о своей работе;
  • активная учётная запись в википедии или другой базе знаний;
  • готовность вносить в код изменения, которые состоят только из комментариев;
  • готовность делиться книгами с другим человеком, если он не может купить себе свои.

О том, как развить эти навыки, читайте в полной статье в журнале «Код»: https://v.thecode.media/z62x9