Перевод статьи Ника Карника «How to Improve Your Development Experience».
Чтобы работать быстрее, нужно думать не только о программировании самом по себе. Нужно улучшать не только навыки написания кода, но и физическое окружение, инструментарий и подходы к решению проблем.
Если вы начинающий разработчик, постарайтесь не увязнуть в деталях. У меня все так хорошо организовано, потому что я, во-первых, работаю дома, а во-вторых, занимаюсь разработкой уже больше 25 лет!
Со временем вы наберетесь опыта и сможете более тщательно все настроить в соответствии с собственными предпочтениями. Я лишь расскажу, на что стоит обращать внимание.
Удобное рабочее окружение
Я даже передать не могу, насколько важен рабочий стол подходящей высоты. Вам нужно достаточно пространства для вашей машины (машин) и место для рисования каракулей. Вам надо где-то разместить ваш блокнот, планшет, лампу и т. п. – и после этого вам должно хватить места для комфортной работы.
Кроме удобного стола вам нужен супер удобный стул с подлокотниками. Я настоятельно советую купить также и подголовник. Если вы собираетесь проводить по 10-20 часов в день за написанием кода, хороший стул вам просто необходим. Имеют значение даже мелочи вроде подгонки подлокотников и подголовника под ваш рост.
Выберите хорошее оборудование
Важно, чтобы ваша машина была быстрой и подходила для разработки. Так вам не придется слишком долго ждать компиляции кода или рендеринга приложения. То же самое касается хорошей клавиатуры, мыши и монитора. Если эти вещи подобрать неверно, они могут утомлять вас. Я помню, что при работе с Java 1.0 реализация моего исследовательского проекта заняла 6 месяцев, причем 3 из них в общей сложности ушли на ожидание компиляции.
Очень важна настройка нескольких мониторов. Я пользуюсь 43″ 4K монитором в качестве основного, а по бокам от него установлены два монитора 24″ HD. Это прекрасно подходит для большинства сложных приложений. Вам нужен хороший обзор таких вещей как редактор кода, отладчик для сервисов, отладчик для UI, браузер, email, stackoverflow/форумы, панели управления, SSH-сессии, Spotify, dev.to 🙂 и т. п. Нет ничего плохого в работе на ноутбуке, однако я заметил, что работаю более эффективно, когда мне не приходится переключаться между окнами.
Подберите подходящий язык программирования
Безотносительно к тому, над чем вы работаете, постарайтесь подобрать язык с хорошим инструментарием и поддержкой сообщества. Например, в настоящее время для большинства проектов часто выбирают Javascript, Python или Ruby. Мне нравится работать с С++ и С#, но для выбора компилируемого языка должна быть веская причина.
Найдите правильные инструменты
Раньше я находил вполне приемлемым использование текстового редактора, но теперь это точно не продуктивно. Вам необходимо найти правильные программные инструменты. Нужна очень хорошая интегрированная среда разработки (IDE), поскольку именно в ней вы будете проводить большую часть времени. Хорошие варианты – Visual Studio Code, Webstorm, Pycharm.
Изучите основы информатики и главные концепции
- Структуры данных
- Алгоритмы
- Шаблоны проектирования
- Математика
- Решение проблем
По всем этим темам можно найти учебные пособия на YouTube, Udemy, Coursera, Udacity и других сайтах. Также не слудет забывать о практике. Начинайте программировать с использованием этих алгоритмов и структур данных – это поможет вам углубить понимание их работы и усвоить хорошие подходы к написанию кода.
Подумайте, над чем вам нужно поработать, чтобы решить собственные задачи и одновременно отточить навыки программирования. Это отличная комбинация, помогающая сохранять мотивацию.
Высокоуровневое мышление / архитектура
Нужно уметь не только писать код, но и мыслить абстрактно. Для начала нужно обдумать решение «на бумаге». Часто это бывает полезным для заблаговременного выявления фундаментальных проблем в реализации. Попробуйте разбивать каждую большую проблему на отдельные части с пространством между ними (на белой доске, к примеру, или в блокноте). Создание хороших программ требует обдумывания процесса работы и разделения проблем на модули, которые затем можно использовать повторно.
Soft skills
Важно научиться передавать и правильно интерпретировать получаемую информацию. Если вы сумеете понять запрос клиента или команды относительно какой-то проблемы, а затем перевести его в соответствующие требования с поэтапным планом модуляризации решения, это сохранит вам много времени при разработке.
Вообще, большую часть времени у белой доски я провожу за обдумыванием решения проблемы и координированием действий с другими членами команды. Я бы сказал, что само написание кода составляет примерно 60% работы.
В заключение
Большую часть времени программисты проводят перед монитором, создавая код. Вы должны овладеть горячими клавишами. Это очень экономит время. Я обращаю внимание на этот момент, когда провожу собеседования с кандидатами.
Нужно автоматизировать все, что только можно. Прежде всего, вы инженер, и должны применять свои навыки для облегчения собственной работы. Если вы обнаруживаете, что повторяете какие-то действия, – поищите способ это дело автоматизировать.
Каждый написанный вами кусочек кода должен быть доступен для повторного использования.
Также стоит автоматизировать тестирование, чтобы уменьшить вероятность поломок и снизить количество времени на последующий поиск и исправление проблемных мест.
Ознакомьтесь со множеством библиотек, фреймворков и SaaS-продуктов, которые могут облегчить вам жизнь. Хорошенько разберитесь хотя бы в одном из них. Уделяйте время изучению работы разнообразных технологий и избегайте использовать их вслепую.
Наконец, прежде чем начать писать код, выделите достаточно времени на то, чтобы понять требования и начертить высокоуровневые диаграммы на листе. Если вы сможете сначала решить вашу проблему на бумаге, то дальнейшее будет просто делом времени.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
«Я помню, что при работе с Java 1.0 реализация моего исследовательского проекта заняла полгода, причем 3 из них в общей сложности ушли на ожидание компиляции.»
— В оригинале не «полгода», а «6 месяцев».
Спасибо, сейчас исправим!