Производительность программиста

Один из самых популярных вопросов, который меня спрашивают – как я так много успеваю – у меня есть работа, на которую я хожу 5 дней в неделю, у меня есть текстовый блог www.flenov.info, с прошлого года появился youtube канал Програмысли, пишу свои игры для iOS (www.enthunder.com), пишу книги, и еще и успевал левачить, работая на другие компании. И вот в очередном письме меня спросили: «Как? Тут после 8-ми часового рабочего дня приходишь домой и хочется забить на компьютер и даже учить ничего не хочется, а тут столько всего». 

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

В этой статье я решил поговорить о производительности программиста, что может повлиять на то, как много мы делаем за день. 

 

Деньги

Деньги. Их никто не отменял и работать за еду мало кто хочет, хочется все же еще купить машину, поехать в отпуск и т.д. До определенного уровня дохода зарплата реально может влиять на производительность. Когда человек начинает зарабатывать достаточно, чтобы не думать о том, сколько стоит хлеб в магазине или взвешивать колбасу в граммах так, чтобы не купить лишнего, тогда зарплата уже перестает быть таким уж и серьезным двигателем. 

Я уже как-то говорил, что высокая зарплата может привлечь внимание, может подтолкнуть на свершение серьезных дел, но этот толчок будет временным. Если работа не приносит удовольствие, такой программист все равно будет халявить через какое-то время и при этом хотеть еще больше денег. 

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

Зарплата и вендели могут действовать не на всех. На меня деньги влияют положительно и каждый год после повышение зарплаты производительность просто сама растет. Я это уже несколько раз замечал за собой. 

А вот пендели на меня действуют отрицательно. Если в компании начинаются разносы за что-то, то сразу же руки опускаются работать и хочется тут же свалить из компании. 

 

Интересные проекты

В свое время это была одна из причин переезда в Канаду. Хотелось попробовать что-то новое, поработать над чем-то интересным. И мне повезло, удалось поработать над очень хорошими проектами для Sony, которыми можно гордиться. Это опыт, о котором можно говорить долго и пускать слюну во время рассказов. 

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

Но даже сейчас, когда я работаю над интересным багом или интересным проектом, работа идет как по маслу. Как раз сейчас у меня интересный PBI, который мне дали доделать за другим программистом (он ушел в отпуск) и я заканчиваю работу за него и покрываю все тестами и это интересно. Есть моменты, в которых код вызывает раздражение, но есть возможность справить и улучшить, и я это делаю, и работа движется очень даже хорошо. 

Когда я работаю над своими проектами, то очень часто экспериментирую, делаю что-то новое и/или делаю это именно так, как хочу и снова все идет как по маслу. 

Когда-то я решил сделать свой сайт blo.moe на Web Forms, чтобы посмотреть, как этот фреймворк ведет себя на реальном проекте. Да, проект небольшой, но все же интересный. Результат – раздражение и ненависть к Web Forms, мне этот подход не зашел. 

За счет того, что я изучал что-то новое, я сделал блог и попробовал что-то для себя, но поддерживать не захотелось и я переписал этот код на Symfony. И вот это зашло. Мне понравился этот фреймворк на столько, что я перевел на него почти все свои сайты. 

С точки зрения HTML и JS я так же часто экспериментирую и пока я делаю что-то новое, изучаю, это идет как по маслу, потому что это интересно. Интересные проекты дают энергию и интерес к работе. Надоело? Переделал на другом фреймворке, изменил дизайн. Я люблю учить что-то новое и поэтому личные проекты так развиваются. Да, я их никак не продвигаю и совершенно не вкладываю в них, но если посмотреть на размер моего блога – по количеству контента сайт растет и на момент написания этих строк у меня почти 4 тысячи заметок. 

Что-то новое, что-то интересное помогает моей производительности. 

 

Хорошая архитектура и чистый код

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

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

В таких случаях ощущаешь, как будто пытаешься совершить кругосветное путешествие на роликовых коньках. Вроде бы по асфальту еще едешь, но стоит добраться до леса или пустыни, как ролики совершенно не хотят ехать. 

 

Хорошее железо

Однажды мне пришлось работать в компании, где хозяин экономил на всем. Он не очень-то хотел платить хорошую зарплату и ясно было, что роста не планируется. Еще хуже было то, что еще и железо было откровенным дерьмом и компиляция проекта происходила минут 20, хотя проект был не таким уж и большим. Тогда еще не было SSD дисков, но 7200 HDD уже были и хотя бы их можно было поставить вместе с 32 гигабайтами памяти. 

Сколько стоит хороший диск и дополнительные 16 гигабайт памяти? В наше время за 300 баксов можно купить и то и другое и это позволит сократить время компиляции раза в два минимум. Если на простом HDD и при недостатке памяти компиляция и запуска сайта будут занимать 10 минут, то с хорошим SSD и достаточным количеством памяти как минимум в два раза быстрее. 

Если ждать завершения компиляции минут 10, то программисты будут переключаться на другие задачи, а точнее на социальные сети, новости и что-то еще, а возвращаться в рабочее состояние будут минут через 20 и более. 

Медленная компиляция очень сильно влияет на настроение и производительность. Зарплата программистов слишком высокая, чтобы экономить 300 долларов на железе, в результате чего программисты тратят больше времени на ожидание завершения запуска сайта, а не на сам кодинг. 

Трудно оценить, на сколько важным является хорошее железо. Лично я уже лет 10 не экономлю на железе, потому что это мое время, это моя производительность. 

 

Для того, чтобы больше выполнять, необходимо, чтобы работа нравилась. Если нравится то, что делаешь, то будешь это делать даже на медленном железе, даже с плохой архитектурой и даже бесплатно. Сколько великолепных Open Source проектов стали популярными и изменили наш ИТ мир потому, что их авторы любили свою работу и делали ее не ради денег. 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

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

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне