Хороший программист Пишет идеальный высокопроизводительный чистый код и не существует

Oct

31

2014

Пять качеств хорошего программиста

Не так давно, Я просматривал видео Джона Кармака, гениального программиста и создателя серии игр Quake и Doom. Он был разработчиком более 20 лет и всегда находился на передовой в разработке игр, но каждый раз говорил что узнавал много нового, постоянно обучался. Обучался ? Казалось, он знал уже все наперед и знал лучше всех. По сути он является отцом всех 3d-игр. Так кто или что могли его учить, когда он уже был профессионалом ?

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

Продолжайте учиться

Вообще это не качество именно разработчика, это качество любого человека. Вы должны постоянно изучать алгоритмы, новые возможности языка, паттерны проектирования и программы. Если вы этого не будете делать, вы не сможете определить что будет лучше, а что хуже. Как вы определите какой инструмент будет удобнее ? Это как художник, который использует только толстую кисть на протяжении всей жизни. Или фотограф имеющий только один объектив. Вы хотите застрять в дебрях одного языка на следующие 8 лет ? Хотите быть "человеком для поддержки", а не "тем парнем, что на передовой" ? Я так не думаю. Продолжайте учиться, чтобы ваши знания и навыки были постоянно востребованы.

Бросайте себе вызов

Часть обучения - это вызов самому себе, борьба со своей, так называемой, зоной комфорта. Когда Apple выпустила Swift, я начал читать и изучать буквально все что попадалось мне под руки. Иногда мне казалось, что мой мозг вот вот взорвется. До тех пор, пока я не начал писать приложения на swift, мне казалось что все это безнадежно или просто не имеет смысла. Так я выпустил свой FizzBuzz и после продолжал наращивать и наращивать функционал своей игры. Это можно сравнить только с плотником, который пытается овладеть инструментом и стать мастером только читая документацию.

Пересматривайте свой код

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

Учите

Лучший способ научиться это начать объяснять вашу точку зрения и знания другому человеку. Вам не обязательно выбирать большую аудиторию или создать свой канал на YouTube. Это может быть ваш друг или коллега. Преподавать можно вообще по-разному: написав сообщение в блоге, отправив заведя проект на github, посетя местный meetup или отвечая на вопросы на форуме.

Тренды не друзья

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

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

Автор: Amit Bijlani
Оригинал: blog.teamtreehouse.com/5-virtues-good-software-developer
Перевод и дополнения: Андрей Николаев


фотография Андрея Николаев Меня зовут Андрей Николаев, я разработчик-фрилансер с более чем четырехлетним опытом работы в сфере веб-технологий. Последнее время занимаюсь разработкой и поддержкой lowload и midload проектов, разработкой веб-сайтов на платформе 1С-Битрикс, Yii, Laravel. Предоставляю услуги как разработчика сайта, так и консультанта, а при необходимости и менеджера проекта со стороны заказчика.

Обо мне