Уверен, каждый из нас не один раз задумывался над тем, что нас ждет в будущем. Я не собираюсь тратить ваше время на бесполезные, большей частью, размышления. Скорее наоборот, хотел бы поднять вам настроение (пост ведь пятничный) и обратить ваше внимание на важность стратегического планирования своей жизни используя хороший пример.
![](https://habrastorage.org/r/w1560/storage3/7d9/171/916/7d9171916856d55a707d013ffac2c2c6.png)
Здесь и далее будет использоваться самая большая коллекция переводов чудесных комиксов Geek and Poke.
Любопытный и полностью реальный пример: Dave Rooney написал о своей жизни:
Недавно в Twitter я участвовал в разговоре о том, что зацикленность программных разработчиков на своих инструментах граничит с религиозным фанатизмом. Поймите меня правильно — хорошие инструменты повышают эффективность разработчиков, а их продуктивность, в свою очередь, зависит от того, в какой мере они овладели своими инструментами.
![](https://habrastorage.org/r/w1560/storage4/b37/ab7/a89/b37ab7a89ed1d4cc0518b0a0506b494e.png)
Однако, меня удивляет, что мы работаем в индустрии, в которой изменения не только нормальны но и ожидаемы. Скорость изменений постоянно растет и не собирается снижаться. Это странно, потому что разработчики, кажется, неохотно идут на смену привычных инструментов.
![](https://habrastorage.org/r/w1560/storage4/340/6e2/f23/3406e2f239c2f204f55618e0bb9f29de.png)
Возможно, на мою точку зрения влияет тот факт, что значительную часть своей карьеры я работал контрактным разработчиком. Как правило, меня вводили в курс нового задания, показывали, какую машину я буду использовать, рассказывали, какую среду разработки использует команда, систему управления исходным кодом и т.д. У меня не было свободы выбора — или я принимаю условия или ищу новый контракт. Признаюсь, что никогда не отказывался от контракта из-за инструментов.
![](https://habrastorage.org/r/w1560/storage4/78c/103/d38/78c103d38f9d23b2e4e59a07deaeb12c.png)
Вот перечень сред, в которых я работал с тех пор, как начал писать код:
30 лет назад (1983)
25 лет назад
20 лет назад
15 лет назад
10 лет назад
5 лет назад
Сейчас (2013)
Sublime Text действительно быстро выполняет индексирование и текстовый поиск среди тысячи файлов, но это цветочки по сравнению с умением находить определение метода на Eclipse или обходить иерархию классов. Я умею писать макросы в Sublime, способные автоматизировать повторяющиеся операции, что мне нравилось в Textpad и катастрофически не хватало в IDE. Однако, у меня нет автоматического рефакторинга, доступного в Eclipse и NetBeans.
![](https://habrastorage.org/r/w1560/storage4/cfc/c48/e2d/cfcc48e2d9cffdb30f3bb9b77de93e14.png)
Когда я наблюдаю за разработчиками, работающими в Vim и Emacs, мне кажется, что я смотрю на виртуозное выступление пианиста — весь процесс выглядит таким непринужденным! Меня поражает, что данные инструменты больше оптимизированы для написания кода, чем для анализа и рефакторинга.
![](https://habrastorage.org/r/w1560/storage4/875/799/67d/87579967d214f0c0ee6e182ca05a2f53.png)
Одно только предложение использовать другие — отличные от Vim and Emacs — инструменты вызовет нешуточные волнения. Но по своему опыту скажу, что не так трудно приспособиться к новым инструментам. Конечно, потребуется время, придется получить одни навыки, забыть другие, но гибкость того стоит.
Все-таки, выживают не самые быстрые или умные, а наиболее приспосабливаемые к изменениям.
![](https://habrastorage.org/r/w1560/storage4/d66/560/8ac/d665608acbc63142b8cfbbffd32541ab.png)
Успехов в очень нелегком, как оказалось, деле.
Источники:
![](https://habrastorage.org/storage3/7d9/171/916/7d9171916856d55a707d013ffac2c2c6.png)
Здесь и далее будет использоваться самая большая коллекция переводов чудесных комиксов Geek and Poke.
Любопытный и полностью реальный пример: Dave Rooney написал о своей жизни:
Недавно в Twitter я участвовал в разговоре о том, что зацикленность программных разработчиков на своих инструментах граничит с религиозным фанатизмом. Поймите меня правильно — хорошие инструменты повышают эффективность разработчиков, а их продуктивность, в свою очередь, зависит от того, в какой мере они овладели своими инструментами.
![](https://habrastorage.org/storage4/b37/ab7/a89/b37ab7a89ed1d4cc0518b0a0506b494e.png)
Однако, меня удивляет, что мы работаем в индустрии, в которой изменения не только нормальны но и ожидаемы. Скорость изменений постоянно растет и не собирается снижаться. Это странно, потому что разработчики, кажется, неохотно идут на смену привычных инструментов.
![](https://habrastorage.org/storage4/340/6e2/f23/3406e2f239c2f204f55618e0bb9f29de.png)
Возможно, на мою точку зрения влияет тот факт, что значительную часть своей карьеры я работал контрактным разработчиком. Как правило, меня вводили в курс нового задания, показывали, какую машину я буду использовать, рассказывали, какую среду разработки использует команда, систему управления исходным кодом и т.д. У меня не было свободы выбора — или я принимаю условия или ищу новый контракт. Признаюсь, что никогда не отказывался от контракта из-за инструментов.
![](https://habrastorage.org/storage4/78c/103/d38/78c103d38f9d23b2e4e59a07deaeb12c.png)
Вот перечень сред, в которых я работал с тех пор, как начал писать код:
30 лет назад (1983)
- Командная строка Apple; написание BASIC и ассемблерного кода.
- Мало функций редактирования, но чем меньше знаешь, тем лучше спишь.
- Через год в университете на мейнфрейме, использующем FORTRAN, был установлен Sed или похожий редактор.
25 лет назад
- xedit на мейнфрейме IBM с языком REXX.
- Это был приличный полноэкранный редактор, который можно было автоматизировать для обеспечения полноэкранного интерфейса пользователя для приложений мейнфрейма.
- Я также использовал vi для некоторых целей, который по сравнению с xedit кажется громоздким и отсталым.
20 лет назад
- Я использовал редактор для, не удивительно, языка C и ряда других.
- Редактор был удобным в использовании и я достаточно хорошо с ним ознакомился.
15 лет назад
- Я работал в интегрированных средах разработки Powerbuilder, Visual C++ и Visual Basic.
- Редактировать вне этих инструментов было неэффективно и рискованно.
- Я наловчился с ними работать.
- Редакторы IDE хорошо подходят для выполнения работ.
- Также использовал vi, запуская удаленные командные строки (remote shells) на Unix-системах.
10 лет назад
- Различные Java IDE: PowerJ, JBuilder, Eclipse в зависимости от стандарта организации клиента.
- Выполнял тесты в IDE.
- Использовал Textpad для редактирования текста вне IDE.
- В режиме терминала на удаленном хосте использовал vi.
5 лет назад
- Использовал Eclipse и NetBeans для Java, Visual Studio для C\#.
- Выполнял тесты из IDE.
- Использовал Textpad для редактирования текста.
- В режиме терминала на удаленном хосте использовал vi.
Сейчас (2013)
- Sublime Text 2 для редактирования текста и кода.
- Выполняю тесты из командной строки.
- В режиме терминала на удаленном хосте использую vi.
Sublime Text действительно быстро выполняет индексирование и текстовый поиск среди тысячи файлов, но это цветочки по сравнению с умением находить определение метода на Eclipse или обходить иерархию классов. Я умею писать макросы в Sublime, способные автоматизировать повторяющиеся операции, что мне нравилось в Textpad и катастрофически не хватало в IDE. Однако, у меня нет автоматического рефакторинга, доступного в Eclipse и NetBeans.
![](https://habrastorage.org/storage4/cfc/c48/e2d/cfcc48e2d9cffdb30f3bb9b77de93e14.png)
Когда я наблюдаю за разработчиками, работающими в Vim и Emacs, мне кажется, что я смотрю на виртуозное выступление пианиста — весь процесс выглядит таким непринужденным! Меня поражает, что данные инструменты больше оптимизированы для написания кода, чем для анализа и рефакторинга.
![](https://habrastorage.org/storage4/875/799/67d/87579967d214f0c0ee6e182ca05a2f53.png)
Одно только предложение использовать другие — отличные от Vim and Emacs — инструменты вызовет нешуточные волнения. Но по своему опыту скажу, что не так трудно приспособиться к новым инструментам. Конечно, потребуется время, придется получить одни навыки, забыть другие, но гибкость того стоит.
Все-таки, выживают не самые быстрые или умные, а наиболее приспосабливаемые к изменениям.
![](https://habrastorage.org/storage4/d66/560/8ac/d665608acbc63142b8cfbbffd32541ab.png)
Успехов в очень нелегком, как оказалось, деле.
Источники:
- Статья Adaptability
- Проект Ох уж эти разработчики