Любой программист, рано или поздно, задается вопросами: “Как стать более эффективным? Как писать код быстрее и лучше? Как стать профессионалом топ-уровня?”. Это правильные вопросы. Какое-то время назад, и я начал себе их задавать. До топ-уровня мне пока далеко, однако могу поделиться с вами некоторыми простыми советами, которые помогли мне поднять производительность и качество кода на ступень, а то и на две ступени выше. Сразу разочарую, под катом, нет секретных супер-стратегий, разработанных специалистами АНБ, просто несколько банальных, но полезных советов из личного опыта.
Концентрация.
Как ни крути, а в программировании, концентрация очень важна. Лично я начинаю совершать глупые ошибки, как только отвлекаюсь от задачи. К сожалению, наша жизнь не сказка, и часто полна проблем, которые никак не хотят покидать голову. Во время кодинга, я просто не разрешаю себе думать о чем бы то ни было, кроме алгоритма в голове. Важно правильно настроиться. Кому-то помогает чашка чая, кому-то сигарета, кому-то любимая музыка. Настройтесь на работу, сядьте за компьютер, абстрагируйтесь от всего, и творите. Сбегайте от проблем повседневной жизни, в мир чистой и честной логики.
Еще один враг эффективности — мессенджеры. Кажется, что общение с другом или с любимой девушкой, в общем-то не мешает. Но это не так. Невозможно кодить максимально эффективно, и при этом вести беседу. Может, конечно, это я такой однозадачный, но моя производительность действительно падает, когда открыта вкладка ВКонтактика. Я не говорю, что надо сутра до вечера напряженно стучать по клавишам. Я делаю несколько небольших перерывчиков в день, что бы почитать новости и оставить пару “остроумных” комментов под новой фоткой подруги. Нужно остудить
Инструменты.
Почему-то, многие программисты, пренебрегают своими инструментами. Например, современные IDE предоставляют уйму возможностей, облегчить жизнь программистам, но большинство моих знакомых, используют свои IDE как текстовые редакторы, с подсветкой кода и автодополнением. Наверняка у вас давно есть набор инструментов, которыми вы пользуетесь, но знаете ли вы все их возможности? Потратьте немного времени, почитайте обзоры и мануалы, посмотрите чем и как пользуются другие люди, изучите свои инструменты и откройте для себя новые. Поверьте, сколько бы вы не потратили времени на этот ресерч — оно того стоит.
Тоже самое касается и языка программирования. Это ваш главный инструмент, и знать его вы должны на твердую пятерку. Да, вы можете не помнить синтаксис какой-то функции, но вы должны знать что такая функция есть. Вы должны знать весь функционал языка. Читайте книги и статьи, следите за комьюнити, копайте исходники (благо есть Github), изучайте язык, даже если вам кажется, что изучать уже нечего.
Всегда в теме.
Самое сложное для программиста — держать руку на пульсе. Такая уж у нас специфичная отрасль — все развивается с невероятной скоростью. Вчера мы сидели под SVN, а сегодня без знания GIT нет смысла публиковать резюме. Вчера мы радовались бесплатным хостингам, с рекламными баннерами на пол страницы, сегодня все сидим в облаках, и распределяем нагрузки между инстансами. Наверно я немного утрирую.
Для того, что бы быть действительно эффективным программистом — нужно быть в теме. Нужно интересоваться новинками в мире программирования. Я не зря начал этот абзац со слов “Самое сложное...”. Это действительно для меня самое сложное. Надо находить время, на то, что бы постоянно читать, просматривать rss ленту, твиттер, сообщества в google+, читать комментарии. Однако, это того стоит. Постоянный мониторинг новостей дает мне уйму полезной информации, я узнаю о новых инструментах и сервисах, о книгах, которые стоит почитать, о людях, на которых стоит подписаться, об интересных решениях, на которые стоит посмотреть, я перенимаю опыт и полезные идеи, и ради всего этого, я готов находить время. Кстати, не так давно, открыл для себя подкасты. Очень советую, действительно удобный формат.
Вывод.
Я понимаю. что перечислил далеко не все. Я не претендую на гайд по эффективному программированию, я лишь поделился своим опытом. Это те правила, которых я придерживаюсь сейчас. Далее, в планах: поднять уровень английского, начать активно участвовать в Open Source, выбираться на конференции и кодить кодить кодить.
P.S.
Было бы интересно, увидеть в комментариях описание вашего опыта, по поднятию своей эффективности.
Автор: voff