5 навыков, которыми должен обладать каждый программист

4 комментария

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

Технический английский на базовом уровне

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

Системы контроля версий

Каждый программист обязан понимать принцип и уметь работать хотя бы с одной системой контроля версий. Неплохой вводный материал — первые три главы книги Pro Git.

Слепой метод набора текста

Когда сидишь 8 часов на рабочем месте, мотать головой от клавиатуры к монитору — довольно утомительное занятие. Умение набирать вслепую помогает лучше сосредоточиться на решаемой задаче. Руки пишут код «на автомате» и мозг не тратит лишнего времени на переключение контекста между набором текста и обдумыванием алгоритма. Существуют хорошие клавиатурные тренажеры, которые помогут вам научиться печатать вслепую. Например, соло на клавиатуре или vse10.ru.

Математика

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

Умение отделять главное от второстепенного

Представьте, что вы создаете сайт для продажи авиабилетов. В процессе разработки продукта, возникает желание добавить какие-то новые функции. Будь то 10 дополнительных систем оплаты, навороченный личный кабинет или уведомления о новых билетах. Чем дальше продвигаешься в создании чего-либо, тем больше возникает подобных желаний по улучшению функционала. Изначально вы запланировали потратить на разработку 4 месяца, после чего выкатить сайт в боевой режим. Из-за возникновения новых требований сроки легко могут сдвинуться в два или три раза, и вы просто погрязнете в стопке незавершенных и задач и полу рабочего кода.

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

А вы в это время будете программировать функционал, который, возможно, не будет так востребован, как вы ожидали.

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

Комментарии к статье: 4

Подождите, загружаются комментарии...

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

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