Привет всем! Хочу рассказать вам свой путь становления бэкенд разработчиком с нуля за 4 года с зарплатой более 300К, по которому я начал идти в 30 лет. Основные вопросы, на которые я хочу попробовать ответить, такие:
Что необходимо делать, чтобы стать программистом?
С какими трудностями может столкнуться человек, решивший стать программистом своими силами? Как их преодолеть?
Как, работая программистом, зарабатывать больше?
Предисловие
Это путь, по которому я иду уже больше 4х лет, объем значительный, поэтому в этой статье я расскажу предысторию, и то, как я самостоятельно изучал Python. В общем затрону только 1 и 2 вопросы, а как я работал программистом уже будет в следующих статьях.
Итак, как я стал программистом "с нуля"? Ну, во-первых, будем честны, как и во всех таких историях, не совсем с нуля. Еще в школе я сильно интересовался компьютерами:
прочитал от корки до корки книгу про MS-DOS соседа ( более 400 стр.) не имея никакого компьютера в наличии.
если у кого-то из знакомых была какая-то проблема с компьютером, то всегда звали меня. Пару раз даже заплатили за это
полностью самостоятельно научился писать простые программы на СЮБОР (G-BASIC и F-BASIC), с ветвлениями, циклами и т.п. Учился по руководству, которое было в комплекте с ним.
Тот самый СЮБОР с обучающим картриджем
Поэтому я бы сказал, что можно быть твердо уверенным, что у вас достаточно способностей стать программистом, если:
вам интересно то, что связано с компьютерами и работой за ними
в целом вы понимаете это лучше или быстрее чем окружающие вас люди
вы способны самостоятельно осваивать какие-то программы, при этом у других с этим возникают проблемы
С таким интересом в школе неудивительно, что в конце 11 класса я хотел поступить в ВУЗ на программиста. Вот только в реальности я оказался перед непростым выбором: бюджет на инженера-приборостроителя, или идти учиться на программиста, но платно. На тот момент я очень не хотел напрягать такими расходами свою семью (более 60К/семестр в 2004 году), поэтому я пошел на инженера. Утешал себя тем, что в случае чего я всё равно смогу работать программистом после диплома, да и языки программирования в программе обучения были.
Тем не менее, в 2009 году, не успел я еще получить диплом, как мне уже предложили неплохую вакансию инженера с зарплатой в 25К. При этом было вообще непонятно что делать с программированием, так что я согласился. Карьера инженера довольно быстро шла в гору: уже через пару лет, сменив две компании я оказался на очень хорошем месте с зарплатой в 75К деревянных в месяц, которая, к тому же, каждый год индексировалась на 5-10% процентов, что вовсе было неслыханно среди моего окружения. Понятно что от такого дохода было очень сложно отказаться ради какой-то непонятной перспективы становления программистом, без понимания того, что надо будет доучить, как долго это займет, и сколько времени мне понадобится на то, чтобы найти работу.
И всё же полностью эту мысль я никогда не отбрасывал. Она всегда блуждала в моём уме. Например, в 2016 году, я пытался выучить Java в свободное от работы время. За несколько недель успел изучил чуть больше половины учебника O'reilly, но потом были какие-то срочные личные дела, отнимающие все силы и время, в результате чего я это полностью забросил. Заново же втягиваться в учебный ритм было уже слишком сложно, да и к тому же сильно мешала моя страсть к играм: тогда я где-то 80% свободного времени играл во что-то.
В 2017 году я начал вести дневник, в котором записывал свои мысли в разные дни. Отредактированную информацию из него я и решил опубликовать.
Принятие решения стать программистом
20.02.2017. Продолжение борьбы с играми. [или еще одна причина почему мне подходит программирование]
15:00. Идет двенадцатый день как я ни во что не играю. У меня куча дел, но я ужасно хочу спать. Так что я ложусь вздремнуть. А дела?... Ну не знаю, пока им придется подождать. Всё равно я их быстрее сделаю отдохнув.
15:39 Я до сих пор не сплю. Почему? Ну я решил перед сном начать проверку рабочего ноутбука на вирусы, он очень долго загружался, и потом я никак не мог запустить установку Касперского. Это вызвало во мне такой азарт, что я сразу перехотел спать. Ну на самом деле меня еще клонит в сон, но интересные задачи дают мне очень сильный заряд бодрости. Похоже мне нужно как-то побольше концентрироваться на таких задачах, раз они на меня так действуют. Это действительно моё. Борьба с вирусами напоминает игру: ты сражаешься с какой-то виртуальной сущностью, продумываешь стратегию. Может поэтому я и взбодрился? Помню в школе я всю ночь в клубе играл вообще без каких-то проблем.
01.04.2017 Сб. Кризис непонимания меня моим ближайшим окружением. Мысли о поиске достойной цели в жизни. [даже если вас не поддерживают, и в вас не верят - не отчаивайтесь]
11:56 Посмотрел до конца видео-интервью Илона Маска (ролик на ютубе "Один на один с Илоном Маском |31.10.2014| (На русском)") и меня тронуло до глубины души! Очень задевает осознание того, что он делает великое дело и им движут великие побуждения. Я же вчера рьяно доказывал лучшим друзьям, что, банально, можно отчислиться из универа и всё равно быть успешным. Казалось бы, кто будет спорить с этим? Но нет же, они все считают, что невозможно добиться никакого успеха. Никакого! В принципе! Что потолок для обычного человека – это около 100 тысяч в месяц, и не больше. Что корочка обязательна для работы. И прочее в том же духе. Они в принципе не верят в человека! Но, самое главное что я понял – никто не верит в меня! Точнее никто не верит что у меня что-то получится. Сейчас я именно такой вывод могу сделать после нашего вчерашнего обсуждения.
Но блин, я же знаю, что всё возможно! Да, может в чем-то они и правы, как права лабораторная мышь в клетке, которая точно знает, что еду можно получить, нажав на рычаг. Сначала тебя учат дисциплине в учебных заведениях: сделай то что требуют - получишь 5. Потом ты идешь на работу, где ты должен просто слушать и делать то что тебе говорят. За это получаешь деньги, которых хватает на покрытие базовых потребностей и всё. Никто не учит как добиваться успеха в жизни!
Как хорошо что есть книги и интернет! Только так и узнаешь что где-то живут люди, которые выходят за эти привычные рамки и добиваются намн-о-о-о-го большего.
Но больше всего меня удивляет аргумент безопасности и надежности! Как можно чувствовать себя в безопасности, если в случае необходимости оплаты какого-то дорогостоящего лечения денег тупо нет?! А если настанет кризис как в 1998? А если тебя уволят? Я знаю людей которые после этого год работу искали! Компаний мало, вакансий мало, конкуренции за работников никакой, зарплата везде одна и та же! Не важно насколько ты классный специалист, и как круто ты делаешь свою работу - у тебя есть конкретный потолок зп, выше которого никак не прыгнешь. Как при этом можно чувствовать себя в безопасности - ума не приложу! Иначе как старательным избеганием неприятной правды я не могу это объяснить.
Да, я далеко не идеал, и мой путь полон будущих трудностей и ошибок, это очевидно. Но меня это никогда не остановит. Сейчас тем более. На сегодня у меня пока что всё, спасибо за внимание.
09.04.2017 Вс. Начало карьеры программиста. [день принятия решения]
17:05. Вчера ночью я сидел до двух часов, думал о том что меня ждет в будущем, и чем мне заниматься. В конце концов, взвесив все возможные варианты, я решил стать программистом.
Основная мысль за день: первоначальная идея накопить 2 млн. рублей и создавать свой бизнес – слишком долгий путь к моей мечте. Это займет десятки лет! Очень долго. Решил стать программистом в области машинного обучения.
Новая информация за день: зарплата такого программиста от 100 тысяч рублей до 500 тысяч рублей.
Что мог бы сказать Илон Маск по этому поводу: "Я думаю, ты двигаешься в правильном направлении."
Завершение дел на текущей работе. Начало самообучения
17.04.2017 Пн. Сообщение об увольнении на работе [и противостояние с начальством]
23:28. Сегодня сказал шефу что увольняюсь через два месяца. Разговор был очень долгий. Я очень сильно волновался с утра, перед тем как сказать. Всё-таки я тут уже более 5 лет проработал, к тому же на мне держится всё обслуживание всего бурового телеметрического оборудования в компании. Шеф думает, что я предаю его. [где-то в этих числах, собирая информацию в интернете и думая о возможных вариантах, решил что начать движение в сторону ML и DS нужно с изучения Python]
04.05.2017 Чт. Обычный рабочий, продолжаем упорно двигаться к цели. [перечень чем я занимался]
13:08. Уже две недели как тренирую скорость печати, изучаю Vim и читаю учебник Марка Лутца по Python-у. [на самом деле были дни, когда я ничего из этого не делал. Кстати учебник часто читал по утрам, пока ехал на работу на вахтовом автобусе, это где-то полчаса занимало.]
10.05.2017 Ср. Разговор в skype о будущем карьеры программиста. [удивительно насколько сильно люди могут не верить в то, что у вас всё получится]
23:18. Сегодня я написал Y о своих планах на будущее. Он был сильно против и считает, что у меня ничего не получится. Вот наш отредактированный разговор:
[10:12:19] Vladimir Oprya: Y, у меня есть небольшая новость для тебя :) . А. уже в курсе. Я короче решил профессию поменять на программиста) Буду дома сидеть и по удаленке работать. В Белгород переезжаю. План примерно такой: пока что сейчас сижу учусь вслепую печатать на английском и работать в редакторе Vim, параллельно начал учить Python. Как уволюсь и перееду, начну уже нормально учить чисто Python. Хочу доучить его до такого уровня, чтобы можно было на upwork.com зарабатывать около 40 тысяч рублей в месяц. Надеюсь, что это получится до НГ, но вообще, по плану, запас на год. 40 тысяч - это примерно столько нужно чтобы снимать хату и жить. Когда Python подтяну до нормального уровня и смогу им зарабатывать, хочу начать изучать TensorFlow, и в конечном итоге работать в области Machine Learning (все на том же upwork). Что скажешь? Ты же сам программистом по удаленке работаешь?
[15:32:02] Y: Вован, ты с ума сошел?
[15:32:13] Y: какой к чёрту Python?
[15:32:21] Y: одумайся ПОКА НЕ ПОЗДНО
[15:33:05] Y: тут ад
[15:33:08] Y: я упахиваюсь по 18 часов в сутки за зарплату 500$ в месяц [он вроде работает программистом, правда я до сих пор не знаю что именно он делает]
[15:33:15] Y: просто работа-сон-работа-сон
[15:33:23] Y: свободного времени вообще нет
[15:34:08] Y: оставайся лучше в нефтянке на нормальной ЗП
[15:34:39] Y: нет никаких гарантий что тебя возьмут программистом (даже через год)
[15:35:25] Y: тем более тебе уже около 30 лет?
[15:35:28] Y: ты слишком стар
[15:35:49] Y: на джунов в IT берут молодых пацанов 20-25 лет
[15:37:00] Y: про upwork.com забудь
[15:37:40] Y: с какого перепуга давать заказ Володе из Белгорода, если можно нанять индусов из Бангладеша в 2 раза дешевле?
[10.05.2017 15:44:38] Y: Христа ради Вован лучше одумайся
[10.05.2017 15:44:55] Y: самое главное - не увольняйся пока не найдешь другую работу
[10.05.2017 15:45:03] Y: а то потом плакать будешь
[10.05.2017 15:45:12] Y: бомжевать по Белгороду
[я привожу свои доводы, скидываю ссылки на статьи с историями людей, которые поменяли профессию]
[10.05.2017 15:45:22] A: хочешь я щас сюда скину ссылку с казино вулкан и фотку с бумером лямов за 10 и надписью заработал за 3 месяца)))
[10.05.2017 15:46:08] A: Я расскажу как зарабатывать по пол ляма в месяц)))
[10.05.2017 15:50:55] A: Вован это пишут бичи программисты сидя в деревнях чтобы норм пацаны поувольнялись с городов и появились места рабочие для них
[10.05.2017 15:51:06] Vladimir Oprya: :D
[10.05.2017 15:51:08] Y: :)
[10.05.2017 15:52:23] A: Все будут писать про свои фантазии о заработках по 300 к
[10.05.2017 15:53:50] A: Устроишься в Белгороде в школу программистом или в ЖЭУ за 15 к и будешь такие же комменты писать на форумах!! Да это реально легко и т.д.
[На текущий момент хочется добавить: в основном я всегда видел и вижу вокруг себя людей, которые не верят в то, что можно зарабатывать выше какого-то уровня. Тогда это были A и Y, потом были люди, которые не верили что программистам можно платить больше 50К, а за ними те, кто не верил что можно получать выше 150К. Даже сейчас есть люди вокруг меня, получающие примерно больше 300К, но не верящие что можно больше! Я же верю, что если продолжать развиваться, искать и пробовать, то потолка просто нет. Даже если не говорить об открытии своего бизнеса, становлении CTO в крутом стартапе, а рассматривать только программистов, работающих на кого-то, то я слышал о людях, которые получают под миллион рублей в месяц живя в России. И на мой взгляд очень глупо от них отмахиваться словами "они врут", лучше хоть что-то узнать о том, как они смогли этого добиться.]
18.05.2017 Чт. Покупка vim adventure
08:14. Решил всё-таки купить vim adventure. Реально можно изучить все основные сочетания клавиш в Vim. Молодцы ребята, могу их только похвалить, это и правда очень полезная и приятная игра.
[По данным хронометража, который я тогда вёл, с момента как я решил стать программистом 9 апреля, и до отъезда из Нижневартовска 10 июня, в сумме я занимался 91ч. Сюда входит изучение Python по учебнику, тренировка скорости печати, изучение Vim]
Обустройство на новом месте, период самообучения
16.06.2017 Пт. Белгород. Переезд на новую квартиру. [рутину переезда опущу, только мои мысли о будущем]
14:33. Я переживаю постоянно из-за денег, потому что не уверен что всё получится. В жизни одна сплошная неопределенность, и я не знаю, что со всем этим делать. Нет никакой страховки, нет ничего, кроме относительно небольшой накопленной суммы денег, которой хватит прожить максимум на 10-11 месяцев, не больше. За это время я должен начать зарабатывать программированием, не важно что и как будет происходить, потому что работать каким-то "грузчиком" вообще неохота.
27.06.2017 Вт. С утра за компом. [а также сложности с налаживанием регулярного режима обучения. Наверно все с этим сталкиваются, главное - не сдаваться!]
06:52. Почти не изучаю Python, максимум час в день, это очень мало и медленно.
08.07.2017 Сб. Ночь. [опять переосмысление времени, которое я трачу на учебу]
[за время после переезда занимался программированием всего 22ч]
Я решил измениться с 10 числа. Прям сразу работать по 8 часов. Получится ли? Почти уверен, что нет. Почему? Я не привык. Что мне делать эти 8 часов? Непонятно. Ну да ладно. К чему стремиться? У меня четкого плана-то нет, вроде как.
Пора начинать идти к своей цели, а то только траты и всё. Нужно составить список дел. Думаю, держать его буду на компьютере. Общий принцип плана на день: сначала занимаюсь тяжелой работой, то есть учебником и изучением нового материала вперемешку с решением задач. Ближе к обеду, моя производительность должна падать. Поэтому за полчаса до обеда занимаюсь тренировкой скорости печати. Погнали:
Расписание:
1. Занятие по учебнику (теория, решение задач, ответы на вопросы, решение решенных задач, повторение пройденного и т.п. вещи.) – цель Python
2. Анализ работы, которую я могу сделать, на upwork: формирование списка необходимых знаний – цель 40к в месяц
3. Составление предложения для клиентов на upwork – цель 40к в месяц
4. Тренировка слепой печати – развитие общих навыков программиста
(завтра) Настройка Vim для работы с Python – цель Python
Изменение и изучение VimRC файла дальше по плану – Vim, углубленное изучение
Разобраться с кодировкой formats.py – Python, углубленное
[также у меня еще были дела, который касались саморазвития: анализ своих ошибок, планирование будущего, анализ потраченного времени и т.п., тут я не стану их указывать, чтобы не увеличивать объем]
14.07.2017 Пт. Погружение в работу с классами
15:32. Сегодня с утра учился. Весьма продуктивно. Я следую плану и это круто!
21.07.2017 Пт. Ломка по играм. [и это всего лишь "одна из многих". Я очень хорошо понимаю что такое прокрастинация, это уж точно. Банально, но я верю что надо не опускать руки, стараться делать максимум из того, что можешь, и этот максимум будет непрерывно расти. У меня так и вышло.]
00:25. Сегодня, из-за видео с играми, нифига не выполнил план: всего 4ч:47м на обучение.
01.08.2017 Вт. Старт работы на Upwork
[с этой даты я начинаю искать работу, так что продолжение будет в следующих статьях. За всё время, с момента решения начать учить Python, я потратил на самостоятельное обучение программированию 196 ч.]