Программист-фанатик - [65]

Шрифт
Интервал

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

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

Совет 47

Составь план

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

Но пока приложением пользуются, работу над ним считать законченной нельзя. Аналогичным образом можно выразиться о тебе и о твоей карьере. Если ты не собираешься уходить из отрасли, без плана развития не обойтись. Если бы в Microsoft в свое время решили, что Windows 3.1 полностью готова, мы бы до сих пор работали на Маках. Если бы разработчики сервера Apache сочли свой сервер законченным после выхода версии 1.0, вряд ли они господствовали бы на современном рынке.

Персональный план развития позволит тебе определить, двигаешься ли ты куда-нибудь или топчешься на месте. Когда ты день за днем приходишь в один и тот же офис, работая над практически одинаковыми вещами, обстановка вокруг тебя не меняется. Нужны видимые издалека маркеры, которые дадут тебе понять, что ты не стоишь на месте. Роль таких маркеров могут играть «подсистемы» твоего продукта.

Не продумав все как следует и не составив план, нельзя заглянуть за горизонт. В частях II и III мы говорили о том, насколько важно осознанно подходить к выбору карьеры и инвестициям в собственные профессиональные качества. Казалось бы, я веду речь об одноразовом выборе области инвестиций, но на самом деле любой вариант должен стать частью общей картины. Для лучшего понимания контекста представим каждый набор навыков или умений как функцию приложения. Согласитесь, что приложение с единственной функцией — это смешно.

Более того, приложение с набором не связанных друг с другом функций способно только запутать пользователей. Это записная книжка или приложение для обмена мгновенными сообщениями? Игра или браузер? Составленный заранее план не только поможет придерживаться выбранного курса, но и даст более общее представление о том, что ты можешь предложить. Станет понятно, что ни одна характеристика не должна стоять особняком. Каждая следующая инвестиция — это часть большого целого. Некоторые вещи потрясающе смотрятся вместе. Комбинации других вещей заставляют потенциального работодателя задуматься. Он системный администратор или специалист по компьютерной графике? Она занимается архитектурой приложений или эксперт по автоматизации контроля качества?

Хотя освоение разных навыков — это хорошо, поскольку они расширяют твои горизонты, имеет смысл поразмыслить, какое впечатление производит твой набор навыков. Без четкого плана твое резюме будет напоминать произведение Джека Керуака[21], а не единый набор логически связанных умений. Без хорошего плана очень легко и в самом деле заблудиться.

Действуй!

1. Перед тем как строить планы на будущее, стоит описать свое текущее положение. Составь хронологию своей карьеры. Покажи, с чего ты начал, какие навыки и рабочие обязанности требовались на каждом этапе. Обрати внимание, когда происходили постепенные улучшения, а когда совершался большой скачок вперед. Определи промежуток времени, за который произошло твое главное повышение. Используй эту информацию в качестве базиса и строй дальнейшую карьеру. Четкая картина пройденного пути позволяет ставить более реалистичные цели. Постоянно обновляй план. Это замечательный способ продемонстрировать собственные достижения по мере движения к новым намеченным целям.

Совет 48

Отслеживай состояние рынка

Глупо потратить деньги на акции, цена которых постоянно меняется, и забыть об этом. Даже если ты тщательно исследовал все возможности и осознанно выбрал область для инвестиций, не забывай о нестабильности рынка. Когда дело доходит до финансовых вложений, нельзя действовать по принципу «выстрелил и забыл». Даже если сегодня акции растут, завтра их котировка может резко измениться.

Кроме того, ты можешь упустить хорошую возможность. Представь, что ты нашел беспроигрышный вариант, дающий 10 % годового дохода. Это выглядит здорово, но только при условии, что доходность остального рынка не совершит скачок. Даже если рабочая лошадка, на которую ты поставил сегодня, не сойдет с дистанции, ее возможности могут оказаться совсем не впечатляющими по сравнению с открывающимися перспективами.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


SQL: быстрое погружение

Что общего между самыми востребованными профессиями и стремительным увеличением количества информации в мире? Ответ: язык структурированных запросов (SQL). SQL — рабочая лошадка среди языков программирования, основа основ для современного анализа и управления данными. Книга «SQL: быстрое погружение» идеальна для всех, кто ищет новые перспективы карьерного роста; для разработчиков, которые хотят расширить свои навыки и знания в программировании; для любого человека, даже без опыта, кто хочет воспользоваться возможностями будущего, в котором будут править данные.


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Изучаем Python

Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

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