Найти тему
Habr.com

IT: туда и обратно и снова туда

Оглавление

Как развиваться в айти, если вы там уже были и вам не понравилось

Получив работу, я два месяца паниковал чуть ли не каждый рабочий день. Думал: «Зря, зря я сюда пришёл! Зря меня взяли, я всех обманул! Я ничего не знаю! Ничего не умею! Рядом со мной работают умные люди со стажем, а я здесь зачем? Мне дают задачи на пять минут, а я их делаю день! Да ещё и с косяками!».

Сегодня в рубрике «Hello world!» мы расскажем вам историю джуниор-разработчика Дениса Вялкова, который боролся с фрустрацией в попытках вкатиться в IT.

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

Другу-сеньору опять подняли зарплату, вы понимаете, что нужно заходить в программирование, по совету другого приятеля начинаете читать «простой, понятный и удобный обучающий сайт»™, который оказывается дико сложным, а задуманный вами быстрый темп обучения постоянно сбивается. Вы решаете, что вам просто не хватает ума и опыта, пытаетесь решать ещё больше задачек и читать больше статей, ругаете себя за каждое выпитое с друзьями пиво («Так нельзя! Нужно фигачить по пять часов в день, в идеале двенадцать!»).

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

Мне повезло выбрать второй путь, и теперь я на правах джуниор-разработчика могу делиться опытом, как развить свои навыки в айти и обучаться эффективно, если школа и университет отбили интерес к профессии ещё лет 10 назад, а «курсы для чайников» не помогают.

Как вышло, что я перестал быть программистом, даже не успев им стать

Ещё в школе я понял, что хочу быть погромистом. Мне легко давались математика и информатика, я любил собирать-разбирать комп, вставлять новые детали (думал, что программист занимается примерно этим). То, что придётся писать код, я понял уже классе в десятом, когда началось программирование. Мы делали примитивные скрипты вида «если сверху свободно, змейка ползёт вверх, если закрыто — ползёт влево». Правда, учился я в основном самостоятельно, потому что школьная информатика была так себе. Открывал учебники по типу «Решу ЕГЭ», решал варианты, разбирал ошибки. Если тему не понимал, шёл в интернет и искал разбор. До похода в вуз считал себя крутым разрабом, хотя задач сложнее перемещения змейки не решал.

Я поступил в Саратовский государственный университет на факультет компьютерных наук и информационных технологий. На инженерное отделение не попал: информатику на ЕГЭ сдал неплохо, набрал 80 с чем-то баллов, но подвела математика, в итоге необходимые 260+ в сумме набрать не удалось. Пришлось идти на педагогическое.

С практическим опытом и тут не задалось: вместо него были вышмат и неблизкий мне C++. Освоил я только базовое понимание и начальные принципы сортировки информации, которые при желании можно было бы выучить за вечер, если бы в тот момент в топ-3 списке моих приоритетов было профильное развитие, а не Dota, бары и стримминг.

А потом началась педагогическая практика. Сначала я попал в крутой лицей, где учащиеся мне понравились: мотивированные, умные, спокойные, послушные, сформированные как личности. А вот вторая практика была в обычной школе, и там дети тупо не ходили на мои уроки. Было 3,5 человека, да и с теми общение не клеилось.

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

Но постепенно выгорание, заработанное на практике со школьниками, распространилось на всю профессию. Было много абсурдных предметов и заданий а-ля «психология», «философия», «современная литература», несколько разных математик, очень странный предмет «компьютерные науки», где на экзамене я в фотошопе клеил совместную фотку нашей группы. По программированию задачи были не применить к реальным задачам (найти 25-й элемент двумерного массива, если это строка, создать новый массив, в противном случае сделать сальто). Я понял, что программистом быть больше не хочу.

Как я учился айти заново (но уже эффективно)

В общей сложности я проучился два с половиной года и ушёл из вуза на вольные хлеба. За несколько лет сменил ряд профессий: был барменом, админом барбершопа, маркетологом, контент-менеджером, специалистом технической поддержки банка, креативным маркетологом в том же банке и наставником в команде антифрода. И даже писателем детективов (что? да!) — в паре с мамой, которая была коммерческой писательницей, то есть писала под массой чужих псевдонимов. Если поискать цикл детективов «Сыщик Лев Гуров» или автора Марину Серову, то можно найти работы, часть которых написана с моим участием. В общем, попробовал много всего, пока новое повышение чужой зарплаты не привело к осознанию, что по-настоящему хорошие деньги можно заработать только в айти. У меня было чувство, что нужно сделать какую-никакую карьеру, а на всех профессиях, где я раньше работал, был очень низкий потолок, к тому же программирование все же приносило больше всего удовольствия.

Когда я решил начать заново, мне удалось освободить время на самообразование, но тут случилась та самая фрустрация, с которой я начал рассказ: сложные задачи требовали времени, стремительный темп освоения материала оказался утопией, а «курсы для чайников» не давали вообще никакой новой информации.

Оказалось, что я неправильно понимал, что есть продуктивная учёба. В моём представлении было так: продуктивно = постоянно и быстро. А выяснилось, что можно эффективно учиться рывками. Где-то получается пройти на скорости, где-то да, приходится покопаться. Главное, что информация усваивается.

С этим озарением я вернулся к learn.javascript и продолжил ковырять сложные места. Приходилось много читать. Мне тогда хорошо помог бесплатный вводный курс на «Хекслете», рекомендую. Он научил меня структурировать базы, там удобный тренажёр. Ты сначала слушаешь инфу, потом читаешь её же, потом решаешь задачки, а тренажёр тебе говорит, какие решения могут быть, насколько крутое твое решение и так далее. Это исключительно джаваскриптовая база с простыми задачами и отработкой тем. Прочитал про конкатенацию строк — получи задачек. Удобно.

Потом вместо курсов я стал искать стажировки. И нашёл одну — классную, с зачислением в штат после окончания. С входным тестом я более-менее справился, потому что там были и практические задачи: отсортировать массив, например, или развернуть строку. Подобные им я уже решал, пока самообразовывался.

Формат стажировки (короткие лекции и много практики) оставлял пространство не только для самостоятельных исследований, но и консультаций с более опытными специалистами. Большое количество проверок и правок старших коллег, честно говоря, раздражало. Например, «return string ? true : false» поменяли на «return !!string». Забегая вперёд, скажу, что позже, уже на постоянной работе, лишние точки с запятыми и другие мелкие косяки я стал искать сам. Работа над ошибками вошла в привычку и оказалась полезной.

В итоге я создал свой немного кривой проект, которым всё равно очень гордился, после чего меня стали уже готовить к реальной работе. Но за две недели до официального приема на работу ЕПАМ ушла из России, и вакансии закрылись.

Как я нашёл работу в IT без опыта

Я расстроился, но не отчаялся: сразу выложил резюме на hh и уже через две недели попал на свою первую работу джуном. Как удалось так быстро? Я много готовился к собеседованию, смотрел ролики на тему «собеседование джуна». Согласно этим видео, прохождение собеседований — отдельный скилл. Подготовиться к теории за один день можно, но смысла в этом нет. Поэтому не стоит тратить много времени на теорию к вопросам для интервью, это вовсе не пригодится на работе, лучше научиться понимать код и объяснять другим.

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

На интервью не врал, отвечал честно, даже если понимал, что работодателю это не понравится (например, про брошенный ВУЗ и про то, что ненавижу овертаймить и не смогу заставить себя работать на выходных). Самое главное, что у меня спрашивали — практические знания языка. Было много задач, которые я не смог решить с первого раза, интервьюеры помогали и в целом смотрели не на правильность, а на мои подходы.

А вот как справился с синдромом самозванца

Получив работу, я два месяца паниковал чуть ли не каждый рабочий день. Думал: «Зря, зря я сюда пришёл! Зря меня взяли, я всех обманул! Я ничего не знаю! Ничего не умею! Рядом со мной работают умные люди со стажем, а я здесь зачем? Мне дают задачи на пять минут, а я их делаю день! Да ещё и с косяками!». Типичный для джуна комплекс самозванца.

После меня в компанию пришли новенькие коллеги, у которых опыта было побольше моего, а переживания, косяки и ситуации один в один. На этом этапе я понял, что моя паника нормальна. Но всё ещё беспокоился, что меня уволят. Потому что на работе я много читал и учил, а не занимался 24/7 созданием идеального кода. Оказалось, правда, что именно такого сотрудника и хотела компания: кто готов постоянно учиться новому.

Ещё справиться с синдромом самозванца (или хотя бы ослабить его власть над собой) очень помогают простые кейсы: когда у тебя что-то получается, ты чувствуешь себя на коне. А чем больше делаешь, тем больше у тебя получается. Решил задачку — похвалил себя. Нашёл баг и исправил — молодец. Такой подход имеет накопительный эффект.

Ещё было полезно открывать чужой код и пытаться разобраться в нём, а потом улучшить. На текущей работе я попал под крупный проект, где мы переписываем кучу легаси под новые стандарты. Почти любую задачу я могу решить, открыв старый код, но если сесть и переписать + оптимизировать + улучшить, то самооценка растет. Сейчас я пять месяцев как в штате. Не знаю ещё очень многого, но чувствую себя уверенно. Даже помогаю товарищу освоить JS, хоть я сам и джун. Вижу его рвение и уверен, что всё получится.

Какие у меня планы на будущее

Сейчас я смотрю в сторону Angular и node.js. А в будущем планирую заняться фулстек-разработкой. Так что через годик-полтора начну учить Go. Но это будет сложнее, чем с JS. У JS есть learn.javascript.ru, эдакий фронтовый альманах, где есть ответ на почти любой вопрос, связанный с грамматикой или логикой языка. По нему понять сам язык достаточно просто. А если не нашёл там, найдёшь на MDN. Для Go, например, я такого не нашёл, но возможно, что плохо или мало искал.

Одно знаю точно: к C++ не вернусь. Он в принципе вызывает тошноту, только плохие воспоминания. Морально не хочу преодолевать эту черту, лучше что-то другое.

Что я советую новичкам

  • Если хочется стать разработчиком, нужно садиться и учиться самостоятельно. Идти в универ с надеждой на то, что тебя научат, тебе дадут знания и платформы, — это плохая идея. Скорее всего, ничего из ожидаемого не получишь. Или получишь не в том виде, в котором оно тебе нужно.

Вот ресурсы для самообразования, которые помогают развиваться мне и которые я рекомендую (не реклама, просто на основании личного опыта)

👉 «Фрилансер по жизни» — для навыков вёрстки
👉 
Владилен Минин — тут брал базу фреймворков
👉 
IT Борода — в целом про айти
👉 
Кирупа Чиннатамби — теория JS
👉 
learn.javascript.ru и MDN — вечный альманах :)

  • Новички, не бойтесь спрашивать. Пишите вопросы на форумах, просите помощи у друзей-программистов, показывайте людям свой код и слушайте критику. Вопросы можно задавать и два, и пять, и десять раз. До тех пор, пока досконально всё не поймёте.
  • Адекватно оценивайте свои силы и верьте в успех. Не надо торопливых целей: «Я должен найти работу за три месяца». Не спешите. Учитесь, когда можете. Если будете спешить, знания у вас особо не отложатся, а перегрузки выбьют из колеи. Потом придётся возвращаться.
  • Точно не надо отказываться от отдыха ради учёбы. Иначе учиться надоест, вы устанете и выгорите.
  • Перед собеседованием подумайте, как себя преподнести, чтобы вас и на работу взяли, и при этом не требовали невозможного.

Конечно, я не эталон успешного опытного айтишника, чтобы все на меня равнялись. Но надеюсь, что эти советы помогут всем, кто, как и я, мечтает вкатиться в профессию.

Другие статьи в нашем новом спецпроекте.