Как стать автором
Обновить
0
Directum
Цифровизация процессов и документов

Как быть хорошим программистом

Время на прочтение4 мин
Количество просмотров4.9K
image
Бывает, что новичкам сложно понять, куда двигаться дальше, что делать. Бывает, что такие проблемы возникают не только у новичков.

Многим понимание того, куда двигаться, что делать, приходит по наитию. А на это уходит много времени. Время – самый важный ресурс человека, который нужно беречь и не разбрасываться им. И чтобы это время не терять, хочется поделиться некоторыми мыслями, советами.
Перечисленные советы многим покажутся «капитанскими» и очевидными, особенно опытным программистам, но это не должно отменять их правильности.

Конструктивная критика приветствуется.


Будь честен, не бойся задавать вопросы и выглядеть глупо.
Изучай!

  • Устройство операционных систем, компиляторов, интерпретаторов, архитектуру признанных программных комплексов и систем.
    Любой исполняемый код создается и выполняется в каком-то окружении. Не зная этого окружения, тяжело создать хороший продукт.
  • Алгоритмы, структуры данных, дискретную математику.
    В нашей реальной жизни есть программисты, которые прекрасно чувствуют себя не обладая перечисленными знаниями в деталях. К примеру, для решения многих прикладных задач enterprise-приложений этого бывает вполне достаточно. Реализация многих алгоритмов уже встроена в платформу. Например, сортировка, поиск и т.д.
    Но когда становится нужно решить более сложные задачи, может начаться изобретение велосипеда. Знания алгоритмов могут значительно упростить задачу.
  • Другие языки, инструменты разработки и взаимодействия.
    Разные языки решают разные задачи. Например, R, MathLab отлично справятся с математическими задачами. Без языков разметки HTML, XML не разработать web-приложение.
    А знание, к примеру, С или ассемблера позволит разработать продукт, который будет максимально эффективно работать с «железом».
    Изучение новых языков, понимание их философии, а не просто синтаксиса, расширит масштаб мышления и понимания принципов программирования. Знание всего нескольких «базовых» языков позволит в дальнейшем без особого труда изучить новые.
  • Чужой код, документацию и описание.
    Изучая чужой код, можно открыть много интересного. Другие подходы и способы программирования, которые можно взять на вооружение. Любой новичок должен этим заняться для быстрого вливания в команду разработки.
    А если перед тем, как начать искать причину ошибки в чужом коде, прочитать документацию или описание, то можно значительно сократить время на поиск.
  • Фидбэк по ревью своего кода.
    Можно рассматривать это, как получение советов по улучшению кода и, притом, бесплатное.
    Также это хороший способ «общения» между программистами. Особенно, если команда разработки распределенная или в команде есть сильно выраженные интроверты.
    Еще это похоже на изучение чужого кода, но с другой стороны медали. Когда оба: рецензент и рецензируемый, получают опыт и узнают что-то новое.
  • Методологии разработки.
    Методологии являются ключевым моментом в управлении разработкой ПО.
    Выбор конкретной методологии зависит от множества факторов: размера команды, от специфики и сложности проекта, от стабильности и зрелости процессов в компании, от личных качеств сотрудников и многих других. От этого выбора во многом зависит успех проекта.
  • Предметную область, с которой работаешь.
    Не зная принципов работы процесса, что и как в этом процессе делают люди, будущие пользователи продукта, почти невозможно автоматизировать его и тем более улучшить.
    Нужно стараться понять, в чем «варится» конечный пользователь.


Можно прочитать кучу книг, сделать тысячу заданий, но без практики хороших результатов не добиться.
Действуй!

  • Презентуй свои идеи.
    Чтобы будущий продукт не был разработан сам для себя, а приносил пользу, нужно уметь презентовать свои идеи. При этом думая о целях и ожидаемых результатах, которые преследует бизнес-заказчик, конечный пользователь. Иначе идею не продать.
    При хорошей презентации идеи можно получить хорошие советы еще до её реализации. Даже если идею не получится продать с первого раза.
  • Пиши читабельный, понятный, структурируемый и расширяемый код.
    При необходимости развивать функционал, осуществлять поддержку продукта, некоторое время спустя может понадобиться быстро разобраться в коде самому или кому-то еще.
  • Разрабатывай код с ожидаемым поведением.
    Выпущенный продукт должен быть надежным и ремонтопригодным.
  • Тестируй свой код сам.
    Данный пункт не говорит о том, что тестировать нужно вместо тестировщика. Этот пункт говорит о том, что разработчик должен передавать код на тестирование имея уверенность, что он сделал всё необходимое, чтобы тестировщик отловил как можно меньше багов.
    При разработке кода можно предположить, что конечным продуктом будет система управления самолетом, во время испытательных полетов которого на борту обязан находиться разработчик системы.
  • Больше практикуйся.
    Как и в любом другом деле опыт приходит только с практикой. Освоение программирования – это не окончание университета или какого-то курса. Это путь длинной в жизнь. И важно не останавливаться на достигнутом.


Без общения, коммуникаций, ты как хорошая книга на «мертвом» языке. Она есть, а пользы никакой.
Делись!

  • Помогай, делись знаниями.
    Здесь есть важное «Но!»: не делай за другого.
    Необходимо подавлять желание «проще сделать самому, чем объяснить».
    Чем чаще объяснять, а не делать за другого, тем больше людей вокруг смогут научиться чему-то новому.
  • Найди себе падавана/наставника и стань его наставником/падаваном.
    Нужное подчеркнуть.
    Несмотря на кажущееся противоречие фраз, суть заключается в одном – наставник и падаван растут и развиваются вместе. В этом основное и существенное отличие от усвоенного со школы взаимодействия ролей «учитель – ученик». Когда в большинстве случаев это взаимодействие сводится к формуле «я начальник, ты дурак».
  • Участвуй в чемпионатах по программированию.
    Это позволит провести срез знаний, выявить пробелы, сильные и слабые стороны, взглянуть на себя со стороны.
  • Общайся, работай в команде таких же гуру, как и ты.
    При этом можно выделить две составляющие:
    — первая — оттачивание технических навыков;
    — вторая — оттачивание коммуникаций, навыков общения.
    Обе составляющие являются необходимыми для становления профессионала. И обе нужно оттачивать.


Литература и ссылки


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

Теги:
Хабы:
-9
Комментарии8

Публикации

Изменить настройки темы

Информация

Сайт
www.directum.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия

Истории