Форум программистов, компьютерный форум, киберфорум
Kastaneda
Войти
Регистрация
Восстановить пароль
Рейтинг: 4.00. Голосов: 4.

Yet Another Success Story

Запись от Kastaneda размещена 14.04.2020 в 12:44
Обновил(-а) ildwine 15.04.2020 в 14:50 (Цензура)

Привет!

Несколько месяцев назад стукнуло 10 лет как я зарегистрирован на этом форуме и по этому случаю хочется, хоть и с запозданием, написать несколько строк.

Изначально я хотел написать что-то типа подведения итогов, но в итоге получилось немного другое. Назовем то, что получилось "Part 1".

Рассказы а-ля "Из технички в тимлиды" сегодня пользуются популярностью и вот вам еще одна история...

Сразу обозначу свои "до" и "после":

Декабрь 2009, дано: нулевые знания программирования, вот прям совсем нулевые, даже слово "компилятор" не знакомо. Самостоятельно переустановить винду тоже не мог, а против вирусов был просто бессилен.

Сегодня: 8 лет опыта коммерческой разработки, на текущий момент работаю во всем известной компании, про собеседования в которую по интернету гуляют страшные байки, в проекте с ~40 миллионами пользователей.

А теперь обо всем по порядку.

2007 год, у меня за плечами около 10 лет работы на стройке/столярке/погрузке/разгрузке/etc. Из образования на тот момент:
- 9 классов (дальше из школы попросили)
- 2 года техникума (дальше бросил)
- 1 год (11-ый класс) в вечерней школе, почему-то мне казалось, что мне нужен этот аттестат.
- 1 год, уже заочно, другого техникума, бросил.
- 2 года физкультурного факультета педагогического ВУЗа, дальше бросил (где-то в юности у меня около 5-6 лет восточных единоборств). Это была самая бессмысленная попытка получить образование

Итак, мне 25 лет, всему плохому, чему можно было научиться у местных хулиганов, я уже научился, жизнь уже попинала вонючими кирзачами по печени, а подростковая установка "деньги для конформистского быдла" дала сбой. Что делать дальше? Пошерстив hh.ru понял, что программисты нынче на волне и неплохо было бы успеть запрыгнуть на подножку уходящего трамвая. Вспомнил как выигрывал математические олимпиады в средней школе и решил, что у меня однозначно все получится. Сказано - сделано, херак херак и вот я уже сеньер-помидор 300К/наносек Ок, решение принял, дальше начались поиски реализации. Конечно же, как и многим другим вставшим на этот путь, мне хотелось как можно быстрее и как можно проще. Поиск в интернете вывел меня на, как мне тогда казалось, вполне нормальный вариант. Местный технический ВУЗ предлагал 1-годичный курс программирования по окончанию которого выдавался какой-то сертификат, который служил дополнением к диплому о ВО и давал право работать программистом (вот прям так у них на сайте и было написано). На тот момент у меня не было достаточно знаний, чтобы понять на сколько это провальная идея Что ж, вариант казался рабочим, только вот диплома об окончании ВУЗа у меня не было, поэтому в голове быстро созрел план - в процессе обучения купить диплом (genius ) и через год у меня будет диплом + дополнение к диплому, дающее право работать программистом. Пережив первый восторг начал читать отзывы об этих курсах и они оказались не на столько воодушевляющими. Дальше начались муки принятия неизбежного (отрицание,гнев, торг, депрессия и вот это вот все) и спустя некоторое время я все же решился поступать в ВУЗ на профильную специальность. Конечно речь шла уже исключительно о заочном образовании. Окончательно утвердившись в своем выборе начал готовить почву.

Как известно вступительные экзамены в ВУЗ проходят летом (вроде я как раз попал на первый год ЕГЭ и в ВУЗах еще был выбор поступать по ЕГЭ или по внутреннему экзамену) и у меня было время (достаточно много времени) до экзаменов. В этот период в моей голове происходили очень важные процессы, на столько важные, что именно они и определили все мое дальнейшее развитие. Во-первых я с удивлением обнаружил, что 90-е уже закончились и в мире происходит что-то новое. Во-вторых до меня начало доходить, что умея думать можно заработать гораздо больше денег, чем умея поднимать тяжести и, что важно, речь не о бизнесе, к которому я не чувствовал никакой предрасположенности, а об обычной наемной работе. Чувствуя в себе интеллектуальный потенциал, подкрепленный непонятно на чем основанными амбициями, я начал бессознательно ломать свой внутренний мир. Уверенность в правильности выбранного пути укреплялась с каждым днем и уже совсем скоро я начал ненавидеть свою работу. Часто, рассказывая кому-нибудь о том, как я стал программистом, я привожу такой пример - знаете китайскую пытку каплей воды? Вот ежедневное переодевание в грязную рабочую одежду для меня было именно такой каплей. Первое время ты не воспринимаешь это в серьез, потом тебя начинает немного раздражать, позже ты начинаешь чувствовать приступ агрессии и ее уровень доходит до того, что ты готов сделать все, что угодно, лишь бы это по-скорее закончилось. И это происходит каждый день! Основой восприятия этого процесса как пытки служило осознание самого себя как способного работать мозгами. И каждое рабочее утро начиналось мыслями: "Да какого хера я снова это делаю? Я же должен сейчас садиться перед монитором в чистом уютном офисе и продвигает российское IT вперед!".
К началу подготовки к вступительным экзаменам я был уже совершенно другим человеком с другим уровнем сознания, что и позволило мне свершить всю ту работу, которая была сделана до устройства младшим разработчиком.

Мне 26 лет, до вступительных экзаменов в ВУЗ несколько месяцев. Собираю всю нужную инфу, нанимаю репетитора по математике, начинаю заниматься, попутно самостоятельно читаю учебники физики за 10-11 классы. Вступительные экзамены прошли достаточно хорошо (математика, кстати, 100 баллов из 100) и вот я уже студент технического ВУЗа на кафедре "Автоматики и Вычислительной Техники" по специальности "Программное обеспечение вычислительной техники и автоматизированных систем". До первой сессии полгода, знаний в голове по прежнему ноль. Почему-то мне казалось, что в нашей группе собрались одни профессионалы, которые в ВУЗ пошли исключительно ради корочки (как было на физкультурном) и мне хотелось как можно быстрее начать изучать программирование самому, не дожидаясь профильных предметов в ВУЗе. Ок, желание хорошее, с чего начать? Нужно было у кого-то спросить совета, найти ответ на свой вопрос самостоятельно, на тот момент, мне казалось не реальным. Из всех моих знакомых только 1 человек подходил на роль советчика - Usaga. Usaga имел репутацию человека, который может придти к тебе переустанавливать Windows, вместо этого зачем-то накатить Linux и, сославшись на нехватку времени, уйти, оставив человека 1 на 1 со странной виндой, в которой даже игры не запускаются. Еще все знали, что Usaga знает языки программирования и пишет вирусы. Какие вирусы и как именно он их пишет не знал ровным счетом никто, но репутация программиста уже плотно к нему прилипла. К тому моменту у меня уже была в голове каша из обрывков информации, которую я успел получить из хаотично прочитанных форумов/статей/etc поэтому мои вопросы были не совсем абстрактными. Почему-то (вот честно не знаю или уже не помню почему) я решил, что мне нужен именно С++. С этой идеей в голове я постучался к Usaga в аську и после объяснения проблемы он мне советует качать книгу по C++ Builder (а я тогда не отличал С++ и С++ Builder) и начать ее читать. Ок, качаю, читаю, ставлю билдер, разбираюсь в интерфейсе и через несколько дней понимаю, что занимаюсь полной херней. Понимаю, что есть программа, в которой создаются другие программы и есть еще какой-то язык, который не генерится по клику и на котором нужно писать руками и что этот язык я совершенно не могу понять на интуитивном уровне. На этом я откладываю C++ Builder и начинаю копать рунет вдоль и поперек.

Мне 27 лет, декабрь 2009го, до первой сессии 1 месяц, я все еще не программист и даже не начинающий. Перелопатив тонну информации я пришел к таким выводам:
1. Просто не будет
2. Быстро тоже
3. Просто и быстро мне уже не надо, надо качественно
4. Ассемблер основа всех основ

Небольшое пояснение к п.3 - я реально понял, что мне придется учиться и более того - мне придется учиться учиться, потому что ни в одном учебном заведении до этого меня этому не научили.

Имея довольно серьезный настрой основательно во всем разобраться было принято решение начать с ассемблера. Что такое ассемблер и чем он отличается от любого другого ЯП я тогда не знал, но уже знал, что на ассемблере пишут реально крутые дядьки и кто знает ассемблер - тот бог! Качаю книгу по 16 битному ассемблеру, ставлю компилятор/линкер/отладчик, читаю книгу, пишу/собираю/дебажу Hello World'ы, но понимание происходящего не приходит. С моим бэкграундом я просто не в силах был понять написанное в книге, с этой проблемой я 12 декабря 2009 года и пришел на cyberforum (мой первый пост) Не буду расписывать мою дальнейшую жизнь в дебаггере, скажу, что поиски себя в мире Ассемблера спустя 4 месяца закончились моей первой программой (имеется в виду программой сложнее Hello World'а и сложения двух чисел) ссылка. (к слову ни разу в жизни не пожалел о своем выборе в плане Ассемблера как первого языка)

Желание в конечном итоге освоить С++ никуда не делось и после Ассемблера я скачал книжку про С (путь Assembler - С- С++ казался мне правильным). Языком С я прозанимался может пару недель, прочитав всю книгу и не увидев ничего сложного я приступил к С++. Уж очень хотелось по-скорее начать писать на плюсах, поэтому я не стал уделять много времени С.

Дальше было чуть больше года вбивания С++ себе в голову. Бескомпромиссно, безжалостно и беспощадно. В будни днем работа - вечером С++, в выходные С++ часов по 12-16 в сутки. Естественно иногда я позволял себе отдыхать, иначе я бы просто сошел с ума Я прекрасно понимал, что при прочих равных выбирая между вчерашним студентом и около 30-ти летним мной работодатель выберет студента. Поэтому для получения позиции джуна мне нужно было обойти студентов-ботаников на собеседовании, понимание этого служило дополнительным стимулом. В целом все мое время обучения (имеется в виду самостоятельное обучение до устройства С++ джуном) выглядело так - закрылся дома, обложившись технической литературой, через почти 2 года вышел из дома со знаниями джуна. Только хардкор!

Назревает вопрос - а как же ВУЗ? А ВУЗ - это место, где студенты сдают сессии и не более (по крайней мере тот ВУЗ, где я учился). К началу изучения С++ в ВУЗе я уже знал его лучше препода (вот ни сколько сейчас не преувеличил) и все дальнейшие профильные предметы не дали мне ничего нового. Впрочем в защиту ВУЗа можно сказать, что он расширил мой оклоайтишный кругозор, так например я знаю о существовании Кода Хэмминга и ему подобных (сам бы я без необходимости о нем не узнал, а такой необходимости у меня до сих пор не возникло) и про "Топология Звезда - центр лег всему [ЦЕНЗУРА]!" (прочитал на парте на курсе по сетевым технологиям). Забегая вперед скажу, что ВУЗ я таки закончил и о потраченном на него времени не жалею, но все мои профессиональные знания были получены благодаря самообразованию.

Так вот - настал тот самый момент, когда я почувствовал себя готовым к отправке резюме на позицию С++ джуна! Тогда мне уже было 28 лет, шансы устроится джуном стремительно уменьшались (хотя у меня есть знакомый, который устроился джуном в 40, но это скорее исключение, чем правило). Что у меня имелось в наличии:
- Базовое понимание ассемблера, устройства программы изнутри (стек, разные участки памяти, etc)
- Хорошее знание синтаксиса С++, хорошее знание STL.
- Общие знания WinAPI, немного QT, немного того, немного сего (все уже не вспомню)
- Понимание самых ходовых структур данных (список/стек/дерево/etc)
- Решено около 500 студенческих задач на этом форуме. При чем число 500 возможно даже приуменьшено
- Из "больших" проектов (то, что помню) - это бот для игры в ВК и змейка, все это дело чуть более, чем полностью написано на WinAPI

Посмотрев hh.ru и подобные сайты меня постигло разочарование - ни одной вакансии без опыта. Тогда я решил немного поднять планку и посмотреть требования к вакансиям с опытом от 1 года. Из всех предлагаемых на тот момент вакансий одна показалась реальной и я решил послать туда резюме, это была компания 2gis (там хотели 1 год опыта и что-то еще, уже не помню). Сразу обозначил им, что я без опыта, но С++ знаю на достаточном для работы уровне. Мне выслали тестовое, которое я успешно провалил Тестовое задание от работадателя. Хотелось бы услышать критику.. Это был очень ценный опыт, благодаря ему я осознал, что совершенно не понимаю ООП. Спросив на форуме "что почитать" скачал пару книг и сразу же в них погрузился. Озарение пришло не сразу, но оно случилось в один момент. Есть вещи, которые постигаются постепенно и со временем ты приходишь к их полному понимаю, с ООП у меня было не так. Где-то до половины книги я не понимал, что до меня пытается донести автор и потом вдруг "бах" и сразу все понял. Меня осенило как выделять из предметной области классы, как строить взаимосвязь объектов и пр. Я научился мыслить на ООП и это был большой шаг для меня.

После случая с 2gis прошло 2-3 месяца и я вновь начал пробовать отправлять резюме. Не помню во сколько контор я его отправил, но это не было массовой рассылкой во все подряд, я все таки смотрел на требования и думал подхожу ли я под них. Одна из контор искала разработчика без опыта и она же была единственной, кто позвал меня на собеседование. Не буду всего описывать, скажу лишь, что все прошло гладко и через месяц (мне уже стукнуло 29) я вышел к ним на работу. Моей радости не было предела и первые несколько месяцев я словно пребывал в другом мире!

На этом закончу свою Success Story, т.к. дальнейшие события не имеют отношения к теме "войтивайти".

Что хочется сказать с высоты, так сказать, прожитых в IT лет (адресовано начинающим):

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


Итого: примерно такой объем работы вам предстоит сделать, если вы будучи обладателем не IT специальности вдруг захотите стать программистом.

Продолжение следует ...
Размещено в Без категории
Показов 631 Комментарии 6
Всего комментариев 6
Комментарии
  1. Старый комментарий
    Аватар для ildwine
    Интересно
    Запись от ildwine размещена 15.04.2020 в 14:49 ildwine вне форума
  2. Старый комментарий
    Аватар для Алексей1153
    а мой пусть в программисты был очень неровный, но это было однозначно предопределено . В ВУЗе учился на электрика (с переменным успехом), там же на 5-м курсе начал работать программистом (самоучка). И понеслось.

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


    Кстати, сейчас мои старые программы меня повергают в ужас. Удивляюсь - как ЭТО вообще работало (а ведь работало)
    Наверное, это правильно - любой свой старый код должен ужасать (но обязательно по уменьшающей), это признак накопления опыта. Если твоя старая программа тебе полностью нравится и всё там тебя устраивает, это сигнал - застой развития

    P.S.
    Yet Another Success Story
    +Another Success Story
    +One more Success Story
    Запись от Алексей1153 размещена 16.04.2020 в 10:05 Алексей1153 на форуме
  3. Старый комментарий
    Аватар для Kastaneda
    Цитата:
    Сообщение от Алексей1153 Просмотреть комментарий
    Yet Another Success Story
    +Another Success Story
    +One more Success Story
    А что не так с Yet another?
    Запись от Kastaneda размещена 16.04.2020 в 10:36 Kastaneda вне форума
  4. Старый комментарий
    Аватар для Алексей1153
    насколько мне известно, "yet" в начале предложения не ставится. Его значение - подчёркивание факта, что событие ещё не произошло или уже произошло В общем, что-то не то с заголовком. Но решать не мне, конечно
    Запись от Алексей1153 размещена 16.04.2020 в 12:11 Алексей1153 на форуме
  5. Старый комментарий
    Аватар для Kastaneda
    Цитата:
    Сообщение от Алексей1153 Просмотреть комментарий
    насколько мне известно, "yet" в начале предложения не ставится. Его значение - подчёркивание факта, что событие ещё не произошло или уже произошло
    JFYI https://en.wikipedia.org/wiki/Yet_another
    Запись от Kastaneda размещена 16.04.2020 в 12:13 Kastaneda вне форума
  6. Старый комментарий
    Аватар для Алексей1153
    англоязычный программисткий жаргон, значит
    Запись от Алексей1153 размещена 16.04.2020 в 12:17 Алексей1153 на форуме
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.