Смена профессии
Из НЕ-IT-шника в программисты
Частая практика на 2020 год - переходить в программирование, будучи менеджером, продавцом, рабочим, ну в общем - кем угодно, но только не айтишником.
Пара слов о профессии программиста
Нужно оооочень много думать головой над решением сложных задач путем перелопачивания огромного количества информации и бесчисленного количества попыток. Постоянно. Долго. Это и есть работа программиста (да, я не про верстку лендингов - мы об этом еще поговорим).
Если вы этим не занимались раньше - очевидно, что вам придется перестраивать свой мозг.
Буквально. Физически перестраивать.
Пара слов о работе мозга:
Весь наш опыт и мышление - это огромные комки физически связанных нейронов.
Они буквально сращиваются - добавляются ножки, которые позволяют быстрее передавать сигналы между нейронами, и вот уже задача о которой вы думали "я так никогда не смогу" становится чем-то обыденным.
Начиная с управления ложкой, заканчивая управлением самолетом.
Есть у вас нейросвязи которые помогут в вам в постоянном копании в технической документации, написании логических операторов и тп.?
Если нет - придется сложно.
Ой, я такую очевидну вродебы вещь сказал...
Давайте еще раз - вам нужно будет перестраивать свой мозг, наращивать нейронные связи путем перелопачивания огромного количества информации на протяжении многих лет.
И по началу вы не будете ничего понимать ВООБЩЕ.
И, даже если у вас получится, вы можете не понять КАК это у вас получилось.
Страшно?
Попугал, да? Даже в мыслях не было - мне от вашего испуга ни холодно ни жарко, я же не садист.
Мне важно чтобы вы реалистично оценивали ситуацию. Это вообще полезный навык к жизни...
Но вывод следующий - вам придется бороться не только с самим предметом изучения, но и с самим собой - ведь когда нам что-то дается нелегко, мы часто пытаемся соскочить, бросить эту затею, и мозг придумает массу причин почему это нужно сделать.
Поэтому, лучше сразу объяснить ему (мозгу) во что вы собрались ввязаться, может откажетесь от ненужной затеи, а может быть придумаете план получше.
План перехода
Вредные мысли
Вот уходить с работы которая кормит с мыслью о том что через полгода будете работать уже по новой профессии - дерьмовая идея.
Я такие случаи видел, вот вам реальная история:
Из менеджера в программисты
Пришел как то ко мне в офис мужчина (а я тогда еще обучением занимался): за сорок, работал менеджером в банке.
И говорит: - Хочу стать программистом, уйду с работы, буду работать в этом перспективном направлении.
Я ему: - Зачем уходить то? Попробуй, может не понравится, позанимайся сам, а когда будет получаться то и решение примешь.
Ушел он, периодически приходил на наши мероприятия IT-шные и внимательно слушал как мы зачесывали про фреймворки, архитектуру и прочую никому не нужную ерунду.
И гдето через полгода пришел он опять и говорит: - Все, не могу больше, бросаю работу, иду работать таксистом и параллельно буду у тебя учиться.
Отвечаю: - Не надо этой херней заниматься. Ты за эти полгода нифига не сделал, ничего не почитал, не покодил, не надо тебе все бросать. Вижу - не потянешь ты. Не твое это. Не буду тебя в ученики брать.
Он: - Все на моей ответстенности, взрослый уже, работу уже бросил, денег тебе заплачу, прошу - возьми в ученики. Ок... Первая задача - развернуть окружение в котором будет работать, и через неделю безуспешных попыток он бросил идею становиться программистом.
Вот что это было?
А я скажу что это было - расхожддение между реальностью и фантазиями.
Думать головой по 8-16 часов в сутки это больно и тяжело.
Из IT-шника в программисты
Например из сисадмина в программисты.
Давайте только возьмем для примера человека, который всетаки помимо настройки вечно "ломающихся" компьютеров пользователей еще и сервера настраивает, в роутерах копается и тп.
Почему это важное дополнение?
Привычка анализировать большие объемы технической информации.
Тоесть, чтобы перейти в программирование, вам по сути нужно будет гуглить информацию уже не о настройки Linux а о реализации конкретной задачи на одном из языков программирования.
К тому же, если вы занимались автоматизацией задач, то скорее всего уже прикасались к какому-либо языку программирования типа Perl, Python... ну к Bash скриптингу то прикасались?
Короче - тут все сильно проще:
- Мозг готов к информационной атаке.
- Область применения полученных знания пересекается.
- Есть задачи куда можно применить программирование.
Вот по последнему пункту - это важный момент, так как вы можете начать переключение в новую область просто автоматизируя свою рутинную работу, разрабатывать тулзы, и таким образом получать помимо опыта еще и неплохое портфолио, с которым переход в работу программиста может быть более прибыльным и мягким нежели у человека, который никогда IT не занимался.
Да и что греха таить - IT-шники смотрят на IT-шников меняющих направление деятельности более лояльно, так как понимают всю эту "специфику".
Из программиста в программисты
Тут прям боль и страдание, на своем опыте опробовал, щас расскажу подробнее разные варианты, так как разные в жизни и опробовал...
Вариант 1
Вводные:
- Вы программист с опытом.
- Получаете зарплату по рынку.
- Программируете на языке А.
- Хотите начать программировать на языке Б.
- Есть обязательства в виде семьи и детей.
- Нет возможности поменять технологию на текущем месте работы
- Денег чтобы долго сидеть без работы нет
Минусы и проблемы:
- Мало времени.
- Необходимость поддерживать свой прожиточный минимум на высоком уровне.
- Низкий уровень энергии в связи с предыдущим пунктом (в том числе).
- Знание схожих технологий в большинстве случаев не заменит требуемый опыт у работодателя. (тоесть, если нужно три года на Python, ваш Ruby наврядли поможет)
Плюсы:
- Быстрее воспринимаете и изучаете информацию если технологический стек не отличается кардинально (дальше поясню)
- У вас есть опыт в резюме, который несмотря на нерелевантность круто смотрится.
Что мы имеем более литературным языком:
Вам нужно поддерживать тот материальный уровень к которому вы привыкли, соответственно если вы собираетесь менять свой технологический стек, то вы не можете позволить себе сильную просадку в плане доходов.
На уровень тех денег которые вы могли откладывать просесть можете, а ниже уже нини.
Нет ничего невозможного, но очевидно что стратегия действий в разных условиях должны отличаться.
Отличие технологического стека
Если вы всю жизнь были веб-программистом, то изучение системного программиста будет для вас НАМНОГО сложнее нежели другого языка в знакомой области.
Когда я говорю "сложнее", я подразумеваю ФАТАЛЬНО сложнее, просто до безумия все будет по другому, будте готовы к тому, что будете изучать программирование заново.
Я это говорю как веб-разработчик пересевший на низкоуровневое программирование на ASM и вот этом всем.
Соответственно, нужно это учитывать - если вы выбрали такой сильный сдвиг, ваш путь будет сильно дольше и будет требовать у вас больше усилий, энергии.
Стратегия 1
Вам нужно организовать свой график.
Я скажу по другому - в данных условиях у вас нет другого выхода кроме как организовать свой график, вот что я имею в виду под организацией графика:
- Ограничение количества задач, скорее всего придется выводить это количество эксперементальным путем.
- Когда вы поняли сколько ваших проектов(задач) вы можете параллельно в течении дня, вам нужно понять в какой части дня какая из задач делается более легко, когда вам проще держать фокус и не отвлекаться на что-либо.
- Например - на время дистанционного обучения дочери, я понимял что в первой половине дня мне бесполезно заниматься работой, так как меня все равно раздергают. Соответственно я занимаюсь личными проектами, где не страшно отвлекаться и терять фокус. Работа идет во второй половине дня, когда все становится спокойнее.
- В процессе....
Стратегия 2
Если у вас нет ежедневного однообразного распорядка - работа такая или ктото из близких заболел, или на период отпуска, в общем вы просто переключаетесь на вторую стратегию.
Главное - принять то, что такое будет происходить вне зависимости от вашего желания, и вместо того чтобы злиться на жену, детей, и прочие обстоятельства которые мешают реализации вашего идеального плана, лучше иметь план на случай хаотичного распорядка дня.
- В зависимости от количества ваших дел вам нужно принять простой факт - будет тяжело. И тут важно вне этого хаоса четко следовать плану, а не волноваться из-за того что все идет наперекосяк.
- Вам нужно выделить только приоритетные задачи в очень ограниченном количестве. Например работа + обучение чему-то одному и все.
- Должна быть самая приоритетная задача (помимо здоровья близких, конечно же). Например - работа.
- Делаете в первую очередь первую задачу, остальное по остаточному принципу. Часто мы делаем иначе - хаотично хватаясь то за одно то за другое. Вам же нужно следовать своим приоритетам.
- Определите минимальный временной интервал при котором вы успеваете хоть както продвинутсья по задаче - у меня например это 40-60 минут. И беритесь за работу только когда подобные просветы будут в вашем беспокойном дне.
- Если у вас есть только 20 минут - беcполезно дергаться, вы только потратите энергию, причем с повышенным коэфициентом. В итоге и пользы не будет, и сил и нервов не будет, и на близких сорветесь так как они вам "мешают". Нет - это вы им мешаете жить со своей работой в неправильное время.
- Выделите гарантированное время для реализации задачи - например, вставайте на час или два пораньше регулярно когда все спят. Или вставайте на час раньше а ложитесь на час позже. Это даст вам определенное спокойстиве относительно того что прогресс будет в любом случае, так как это ваши часы.
Подобный подход даст вам больше спокойствия и терпения в непростых ситуациях и позволит держать ваш уровень дохода на нужном уровне, а то и еще успевать развиваться. Дай бог чтобы это было временно.