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

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

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

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

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

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

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

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

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

Математика

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

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

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

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

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

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

После регистрации реклама на сайте отображаться не будет.
Обсудите статью на форуме.

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

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

Оставить комментарий

Если не хотите больше вводить капчу — создайте аккаунт.

Предпросмотр комментария

Ваш комментарий пуст.