Это история о том, как адинеснег, недопрограммист недоязыка (по мнению настоящих мужчин) решил вступить в клуб этих самых настоящих мужчин.
Предыстория или как я попал в секту “Свидетели 1С”.
В 9 классе в далеком 99 году, чтобы отвлечь сына от игр на (3-м? 4-м?) пентиуме, родители привели меня в “кружок программирования для старшеклассников”. Там же, спустя пару месяцев родился мой первый код — цикл, который гонял по экрану мигающий квадрат. Потом благодаря стараниям преподавателя был кратковременный скачок в html, где все просто и понятно и Java, где понимал чуть больше, чем ничего. На этом история прервалась лет так на 5, потому что с конца 10 класса началась одна большая подростково-студенческая синяя яма, которая продолжалась примерно до 3-го курса факультета экономики Челябинского университета. Ведь именно тогда отец, предпринял очередную попытку “направить на пусть истинный” раздолбая. Будучи бухгалтером и пользователем начинающей тогда набирать обороты 1С: Бухгалтерия, он, судя по всему почувствовав “рынок”, затащил меня на 4-х недельные курс по “по конфигурированию в 1С 7.7”. И меня зацепило. Через месяц еще одни курсы и вот я уже подмастерье в маленьком франчайзи из 2 двух человек (я второй). В итоге, после окончания 5-го курса в 2006 году я смог устроится адинесником в местный ретейл с просто космической для меня на тот момент зарплатой в 25т.р.
Почему я хочу сбежать.
Сейчас 2017 год, мне 33, жена и сын 5 лет, я все тот же адинесник, но уже уровня “150т.р. белыми на руки в Москве”. Я в карьерно-профессиональном тупике. Мои текущие умения, знания и способности не дадут мне того, что я хочу. У меня уже близок потолок в части зарплаты и чтобы прыгнуть дальше — нужные качественные изменений, которые потребуют от меня качеств, которых возможно у меня нет (лидерские, управленческие, качестве бизнесмена). Да, у меня есть фундамент для становления руководителем проектов, но не уверен, что мне это понравится и что я смогу там стать лучшим. Мне нравится программировать.
Однако одного понимания, что хочется сбежать недостаточно. Нужно очень четко понимать куда и как. Именно поэтому “понимание”, которое зародилось еще года 3-4 назад, так и не порождало каких-либо осмысленных действий. Не имея цели, не имея критериев продвижения — никуда не придешь. Именно для этого были поставлены следующие цели.
Через 5 лет:
я должен стать профессионалом в “международном“ языке программирования;
я должен стать профессионалом, который может претендовать на 100 т.дол. в год в США, Канаде, Австралии, Англии;
я должен стать профессионалом, который может претендовать на работу в компаниях уровня Гугл, Фейсбук, Эпл;
Озвученные цели могут дать представление, что в данном контексте “сбежать от 1С = сбежать из России”. Но я патриот. Даже если придется уехать из страны, чтобы работать в Купертино, то я все равно будут приезжать каждое лето на дачу к родителям.
Как я планирую сбежать.
После того, как стало чуть более понятно с целью, необходимо было придумать как эту цель достичь. Думается, что без roadmap я бы тоже далеко не уехал и именно поэтому я составил следующий план:
Попробовать различные области и языки программирования, чтобы найти то, что по душе и что соответствует запросам рынка (2-3 месяца);
Потратить год на самообразование в свободное от работы время, чтобы достичь уровня джуниора, который позволит мне устроиться в Москве на 80-90т (цифра взята как минимально необходимая для выживания, но не факт что смогу получить);
Потратить год для становления мидл с уровнем зарплаты 120т;
Потратить два года для возможной корректировки направления внутри выбранного языка и становления сеньором с уровнем зарплаты 150-170;
Начиная с 3-го года начать поиск работы в иностранной компании;
Начиная с 5-го поиск работы “отстатыщ”;
Подготовка к Jailbreak’у.
Первые метры подкопа на волю я прокопал в сентябре 2015 года, когда с подачи своего бывшего коллеги обратил внимание на быстрорастущий в последнее время рынок бигдаты и машинного обучения. С его же подачи я открыл для себя Coursera и “специализацию” по бигдате от одного из американских университетов, которая по моему собственному понимаю, должна была меня сделать тем самым джуниором. За 4 месяца было освоено 4 курса из 9 (в среднем один курс рассчитан на 1 месяц и стоит 50 дол). В то время я был просто окрылен — относительно неплохо построен процесс обучения, хорошие материалы, свободный график, интересная подача. Все шло как по маслу, тем более что в качестве языка использовался R, который на самом деле, после небольшого ознакомления с синтаксисом, даже после 13 лет кодинга в 1С воспринялся относительно легко. Камнем же преткновения стал 5й курс по статистике, когда стали “грузить” серьезным материалом на не родном мне языке. С учетом того, что статистика в моем родном университете попала на 3-й “алкогольный” курс и среднее арифметические, скользящие, взвешенные я стал отличать только в контексте расчета себестоимости будучи уже программистом 1С, это стало для меня серьезным препятствием. Я решил взять паузу и заняться изучением основ статистики на английском языке и… на том и остановился. Однако к этому времени я уже был в состоянии написать скрипт, который мог “сграббить” один небольшой форум и вывести по нему небольшую стату (пример одной из моих игр в песочнице).
Не помню что меня толкнуло на следующие пару метров, но полгода назад (в декабре 2016 года) я наткнулся на приложение iTunes U и лекции Стэнфордского университета по языку Swift. Был еще раз приятно удивлен качеством материала, манерой подачи, и что все это было в (внимание!) бесплатно. За несколько дней я познакомился с моделью MVC, стал погружаться в настоящее ООП с инхеритансами и прочими прелестями и через неделю уже был готов мой первый калькулятор. Однако и тогда недостаток свободного времени и, возможно, мотивации сделал свое дело и я поставил все на hold.
Третья волна накрыла меня месяц назад (апрель 2017), которая как раз и вылилась в формализацию целей, в детализацию планов, в очередную специализацию с курсеры и в этот очерк. За 2,5 недели я практически осилил 2 курса из 5 по Ruby on Rails, занимаясь после работы и все выходные с утра до вечера. Не могу сказать, что за это время привык к синтаксису, да и методичку приходится заглядывать регулярно. В настоящий момент понял, что мне трудно усвоить кое-какие моменты и нужно те же самые блоки просмотреть в других источниках и в другом изложении. Так как непосредственно в самом курсе анонсирование ознакомление с JavaScript, то скорее всего следующий курс, который я возьму после того как допишу свой собственный Твиттер с блекджэком и лайками, будет по JavaScript. Потом Python, потом Java.
Цели поставлены. План прописан. Осталось двигаться вперед. Добавлю только нюансы, которые я уяснил для себя, и которые возможно будут полезны тем, кто “чалится по той же статье и готов на рывок”.
Нужна мотивация и желание изучать новое. Если вы поймете зачем это нужно, поймаете волну и будете ловить кайф от происходящего — процесс будет происходить в разы легче и быстрее.
Источников и материалов чуть меньше чем дофига и все они разного качества и разной доступности. На той же курсере (если не ошибаюсь) почти все курсы можно пройти в качестве слушателя бесплатно. На том же Udemy бесплатно ничего не получишь (насколько я понял). Сегодня пришлось выложить 10 долларов за курс по Ruby on Rails, который надеюсь позволит мне уложить в голове материал, на котором я застрял в первоначальном курсе. Также попробуйте поискать нужные материалы на iTunes U (как минимум курс по Swift того стоит).
Будьте готовы, что не все курсы одинаково полезны и одинаково хороши. В курсе по бигдате один из преподавателей был кореец с некоторыми особенностями дикции, слушать которого было реально невыносимо. В курсе про Rails on Rails один из преподавателей с явно слабым английским и сильным израильским акцентом, если второе мешало только эстетическому восприятию, то первое было реальной проблемой в сложным моментах, когда чувствовалась неспособность более широко раскрыть некоторые вещи просто из-за ограниченности в формулировании мысли на чужом языке.
Запаситесь терпением. Почти во всех курсах практически отсутствует нормальная обратная связь. Функционал и инструменты есть, но получить ответ в разумные строки просто нереально. Поэтому в случае возникновении ошибки или проблемы, которая мешают вам двигаться вперед — гугл и стаковерфлоу вам в помощь. Не откладывайте и не ждите когда вам ответят организаторы курса. Ищите сами решение сами. Не теряйте волну.
Не перегружайте себя. К концу третей недели интенсивных занятий я понял, что перегруз мозга плюс нарастающая сложность материала, плюс неспособность преподавателя этот усложненный материал донести дали свои плоды. Я начал “не понимать что происходит”. В таких случаях берите паузу в несколько дней и возвращайтесь к учебе со свежей головой. Также в такие моменты есть смысл посмотреть тот же материал, но в другом исполнении, который позволит взглянуть на проблему с другой стороны и под другим углом.
Удачи!
P.S. пока все что языки про языки, среди которых предстоит выбрать — R простой как две копейки, Python для детей, Ruby для наркоманов, JavaScript