Программист, CEO SHIFU.IO

Смена профессии

Из НЕ-IT-шника в программисты

Частая практика на 2020 год - переходить в программирование, будучи менеджером, продавцом, рабочим, ну в общем - кем угодно, но только не айтишником.

Пара слов о профессии программиста

Нужно оооочень много думать головой над решением сложных задач путем перелопачивания огромного количества информации и бесчисленного количества попыток. Постоянно. Долго. Это и есть работа программиста (да, я не про верстку лендингов - мы об этом еще поговорим).

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

Пара слов о работе мозга:

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

Начиная с управления ложкой, заканчивая управлением самолетом.

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

Ой, я такую очевидну вродебы вещь сказал…

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

И по началу вы не будете ничего понимать ВООБЩЕ.
И, даже если у вас получится, вы можете не понять КАК это у вас получилось.

Страшно?

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

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

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

План перехода

Вредные мысли

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

Я такие случаи видел, вот вам реальная история:

Из менеджера в программисты

Пришел как то ко мне в офис мужчина (а я тогда еще обучением занимался): за сорок, работал менеджером в банке.
И говорит: - Хочу стать программистом, уйду с работы, буду работать в этом перспективном направлении.
Я ему: - Зачем уходить то? Попробуй, может не понравится, позанимайся сам, а когда будет получаться то и решение примешь.
Ушел он, периодически приходил на наши мероприятия IT-шные и внимательно слушал как мы зачесывали про фреймворки, архитектуру и прочую никому не нужную ерунду.
И гдето через полгода пришел он опять и говорит: - Все, не могу больше, бросаю работу, иду работать таксистом и параллельно буду у тебя учиться.
Отвечаю: - Не надо этой херней заниматься. Ты за эти полгода нифига не сделал, ничего не почитал, не покодил, не надо тебе все бросать. Вижу - не потянешь ты. Не твое это. Не буду тебя в ученики брать.
Он: - Все на моей ответстенности, взрослый уже, работу уже бросил, денег тебе заплачу, прошу - возьми в ученики. Ок… Первая задача - развернуть окружение в котором будет работать, и через неделю безуспешных попыток он бросил идею становиться программистом.
Вот что это было?

А я скажу что это было - расхожддение между реальностью и фантазиями.
Думать головой по 8-16 часов в сутки это больно и тяжело.

Из IT-шника в программисты

Например из сисадмина в программисты.
Давайте только возьмем для примера человека, который всетаки помимо настройки вечно “ломающихся” компьютеров пользователей еще и сервера настраивает, в роутерах копается и тп.
Почему это важное дополнение?
Привычка анализировать большие объемы технической информации.
Тоесть, чтобы перейти в программирование, вам по сути нужно будет гуглить информацию уже не о настройки Linux а о реализации конкретной задачи на одном из языков программирования.
К тому же, если вы занимались автоматизацией задач, то скорее всего уже прикасались к какому-либо языку программирования типа Perl, Python… ну к Bash скриптингу то прикасались?
Короче - тут все сильно проще:

  • Мозг готов к информационной атаке.
  • Область применения полученных знания пересекается.
  • Есть задачи куда можно применить программирование.

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

Из программиста в программисты

Тут прям боль и страдание, на своем опыте опробовал, щас расскажу подробнее разные варианты, так как разные в жизни и опробовал…

Вариант 1

Вводные:
  • Вы программист с опытом.
  • Получаете зарплату по рынку.
  • Программируете на языке А.
  • Хотите начать программировать на языке Б.
  • Есть обязательства в виде семьи и детей.
  • Нет возможности поменять технологию на текущем месте работы
  • Денег чтобы долго сидеть без работы нет
Минусы и проблемы:
  • Мало времени.
  • Необходимость поддерживать свой прожиточный минимум на высоком уровне.
  • Низкий уровень энергии в связи с предыдущим пунктом (в том числе).
  • Знание схожих технологий в большинстве случаев не заменит требуемый опыт у работодателя. (тоесть, если нужно три года на Python, ваш Ruby наврядли поможет)
Плюсы:
  • Быстрее воспринимаете и изучаете информацию если технологический стек не отличается кардинально (дальше поясню)
  • У вас есть опыт в резюме, который несмотря на нерелевантность круто смотрится.
Что мы имеем более литературным языком:

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

Отличие технологического стека

Если вы всю жизнь были веб-программистом, то изучение системного программиста будет для вас НАМНОГО сложнее нежели другого языка в знакомой области.
Когда я говорю “сложнее”, я подразумеваю ФАТАЛЬНО сложнее, просто до безумия все будет по другому, будте готовы к тому, что будете изучать программирование заново.
Я это говорю как веб-разработчик пересевший на низкоуровневое программирование на ASM и вот этом всем.
Соответственно, нужно это учитывать - если вы выбрали такой сильный сдвиг, ваш путь будет сильно дольше и будет требовать у вас больше усилий, энергии.

Стратегия 1

Вам нужно организовать свой график.
Я скажу по другому - в данных условиях у вас нет другого выхода кроме как организовать свой график, вот что я имею в виду под организацией графика:

  • Ограничение количества задач, скорее всего придется выводить это количество эксперементальным путем.
  • Когда вы поняли сколько ваших проектов(задач) вы можете параллельно в течении дня, вам нужно понять в какой части дня какая из задач делается более легко, когда вам проще держать фокус и не отвлекаться на что-либо.
  • Например - на время дистанционного обучения дочери, я понимял что в первой половине дня мне бесполезно заниматься работой, так как меня все равно раздергают. Соответственно я занимаюсь личными проектами, где не страшно отвлекаться и терять фокус. Работа идет во второй половине дня, когда все становится спокойнее.
  • В процессе….
Стратегия 2

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

  • В зависимости от количества ваших дел вам нужно принять простой факт - будет тяжело. И тут важно вне этого хаоса четко следовать плану, а не волноваться из-за того что все идет наперекосяк.
  • Вам нужно выделить только приоритетные задачи в очень ограниченном количестве. Например работа + обучение чему-то одному и все.
  • Должна быть самая приоритетная задача (помимо здоровья близких, конечно же). Например - работа.
  • Делаете в первую очередь первую задачу, остальное по остаточному принципу. Часто мы делаем иначе - хаотично хватаясь то за одно то за другое. Вам же нужно следовать своим приоритетам.
  • Определите минимальный временной интервал при котором вы успеваете хоть както продвинутсья по задаче - у меня например это 40-60 минут. И беритесь за работу только когда подобные просветы будут в вашем беспокойном дне.
  • Если у вас есть только 20 минут - беcполезно дергаться, вы только потратите энергию, причем с повышенным коэфициентом. В итоге и пользы не будет, и сил и нервов не будет, и на близких сорветесь так как они вам “мешают”. Нет - это вы им мешаете жить со своей работой в неправильное время.
  • Выделите гарантированное время для реализации задачи - например, вставайте на час или два пораньше регулярно когда все спят. Или вставайте на час раньше а ложитесь на час позже. Это даст вам определенное спокойстиве относительно того что прогресс будет в любом случае, так как это ваши часы.

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