January 31st, 2008

Я

Карьерное планирование - 1

Итак, о работе. Точнее, о позитивной модели карьеры.

До какого-то момента все было проще: среди окружающих есть профессионалы, которые весомо, грубо и зримо круче, за ними можно тянуться, от них учиться. Если система невелика, то она скорее всего спроектирована по более-менее понятным правилам, и если правила удачные - то их можно освоить и в их духе развивать. Потом в следующую систему можно привнести наиболее удачные находки из предыдущей.

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

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

Менеджером-администратором становиться не хочу. Тимлидером - наверное, не потяну, потому как инетересней мне позиция "серого кардинала", чем лидера.

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

Года 3 назад я считал минимально необходимым элементом профессионального подхода к процессу разработки наличие того или иного инструмента для контроля версий. Видимо, в этот список для меня добавляются еще и автоматические тесты. А еще бывают CASE-средства, документирование и много чего другого. Документирование толковое я видел, и польза от него есть. А вот применения CASE-средств не довелось. Оно вообще по делу бывает?

Не очень понятно, надо ли коллекционировать сертификаты/дипломы. То есть тут raccoon приводила резюме из одного списка сертификатов как образец, но что-то это вызывает у меня скепсис.

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

Я знаю набор задач, которыми я заниматься не хочу никогда: различные человеческие интерфейсы (если человек - не коллега-программист), и мрачный reverse engeneering типа встраивания в потроха Windows на асемблере своим способом в зависимости от четвертого знака в номере минорной версии тех Windows.

То есть примерные рамки, на которые я ориентирован - это юникс-подобные системы, языки типа C/C++/Java/Perl. Интересно было бы разобраться с языком шейдеров/GPU, но это - либо игровое программирование, либо задачи, которые я видел только у alextutubalin.

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

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

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