habrahabr

От linux-админа к python-программисту или как и почему я менял профессию

  • четверг, 12 июня 2014 г. в 03:10:40
http://habrahabr.ru/post/225971/

За свои почти тридцать лет я дослужился до старшего системного администратора. В моем распоряжении было около сорока серверов с linux на борту. Компания росла и расширялась, но задачи сводились к наращиванию мощи уже готового функционала.

И все бы хорошо, но со временем и по определенным причинам дискомфорт начал преобладать над комфортом.

Во-первых, сам процесс поддержки, а точнее его «постоянная» природа или отсутствие какой-либо завершенности. Мелкие задачи, выполняясь, накладываются друг на друга до бесконечности и превращаются в огромный ком, который постоянно меняет свои размеры, — соотношение выполненных и невыполненных задач. Что в итоге порождает вопросы: «Что полезного я уже сделал, Что еще сделаю и к Чему в итоге я двигаюсь?»

В-вторых, прерывания. В деле системного администрирования они особо выделяются из всех проблем и могут вывести из душевного равновесия любого. Когда пишешь код, оптимизируешь сервис и каждые полчаса тебя отвлекают вопросами, срочными задачами и вызовами — вернуться в работу порой очень тяжело и на это тратится время, — минут пятнадцать можно просидеть, вспоминая, откуда тебя выдернули и что вообще ты делал (В книге «Тайм-менеджмент для системных администраторов» Томаса А. Лимончелли об этом хорошо написано). В итоге прерывания формируют утверждение «Мне не дают работать»!..

В-третьих, привычка к рабочему процессу. Как известно, человек ко всему привыкает и то, что изначально вызывало восхищение и приносило в итоге общее удовлетворение, — становится обыденным и скучным. Когда все крутится и работает идеально, об этом знаешь только ты и максимум руководитель отдела, пользователи же принимают это за данность и не испытывают никаких поводов для гордости. Зато они замечают любую мелкую оплошность, от чего страдает как карма всего отдела, так и внутреннее состояние администратора, — против воли себя убеждаешь — «Я плохой сотрудник».

Все это касается обслуживания в целом и такова его стезя. А я в ней, потихоньку, но разуверился.

Чего же я хотел? Бо́льшего погружения в более творческую работу, уменьшения влияния со стороны по мелочам, видеть конечный результат и получать от этого удовлетворение. И все. Уставшим и отчужденным смотря на наш отдел программистов, читая хабр или смотря gif-ки на developerslife, я понял, что если я не могу получить этого на поприще админства, пора менять профессию, а так как писать код мне нравилось все больше и больше, выбор не заставил себя долго ждать.

Выбор языка для меня всегда был сплошным расстройством. На работе я писал на bash, так как писать на чем-то было нужно, да и его возможностей для системного администрирования хватает с головой. Perl — не нравился по синтаксису. Очень долго пытался приучить себя к ansi C, проработал две книги, — Unix разработка сетевых приложений (Уильям Ричард Стивенс) и Программирование для UNIX Наиболее полное руководство (Марк Дж. Рочкинд). Но так и не нашел применения приобретенным знаниям, до сих пор жалею потраченного времени. По требованиям хотелось, что бы он шел в ногу с linux, был универсальным, умел и sys (для текущих скриптов), и web (с заделом на будущее) и не вырвиглазным по синтаксису. Вокруг Python ходил очень долго, — тормозила его относительная молодость, невысокая популярность, и, не знаю почему, его название. Со временем, наблюдая за компаниями-гигантами, которые все больше используют python на production, и к моменту, когда я решил менять профессию, с языком я уже определился, хотя и выбирать было особо не из чего.

Первые полгода читал Марка Лутца, что-то пробовал писать, но знания были обрывочными и применять их на боевых серверах боялся, да и не видел выгоды в замене bash на python. Время тянулось, а моя затея нравилась мне все меньше и меньше. В итоге, убедил себя, что если не получается у меня, получится у других, — нужны курсы, в короткие сроки, с проработкой практики и чтобы была ответственность за оплаченные деньги. Так будет проще и быстрее.

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

Далее как по-накатанной, в течении полугода, постепенно и в свободное от работы время, переписал все скрипты и всю автоматизацию на python, написал сервер статистики для squid (python, wsgi). Уже за свои кровные, прошел курсы через вебинар по ООП и django, так как аргументировать их необходимость текущему работодателю решил даже не пытаться. Переписал все с учетом новых знаний. Далее, ради расширения кругозора, прошел еще курсы по тестированию, но оно мне не понравилось, — оставил как запасной вариант.

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

За это время прошел около десятка собеседований на позицию junior. Всего около десятка. Но везде требовался или django+frontend, либо с опытом от двух лет. Опыт на production'е отсутствует, а фронтендом заниматься у меня не было и нет до сих пор никакого желания. Что еще странно, вопросов именно по языку было не много, зато было много по теории, — ООП, паттерны, методологии scrum, agile — которых я естественно не знал. Продолжая биться головой о двери конференц-залов и выслушивая стандартную фразу «Мы вам перезвоним», я продолжал ходить по приглашениям. И в конечном итоге меня взяли backend разработчиком в закрытый проект.

На текущем месте работы я работаю уже несколько месяцев и могу подвести итоги.

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

То к чему я стремился, я конечно получил, хотя и радовался этому не долго, — чувство «У меня получилось, я стал программистом» прогорело очень быстро, примерно за неделю, и на смену ему пришли:

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

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

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

Дело в самой профессии системного администратора. Работа, конечный итог которой стремится к абсолютной ле́ни, сильно расслабляет жизненные позиции и стремления, а общение с пользователями и выслушивание их недовольств, еще больше укрепляет асоциальные начала. И тут уже, кто как я, начинает задумываться о бо́льшей полезности, что приводит к поискам более гармоничной жизни, а кого все устраивает и он продолжает это нелегкое существование.

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

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