Как гуманитарий перепробовал всё, а потом стал разработчиком
Как гуманитарий перепробовал всё, а потом стал разработчиком
История про неточные науки, Хекслет, трудоустройство и боль как предвестник больших и очень важных изменений в вашей жизни.
Предыстория
Мне не довелось рано определиться с выбором профессии, поэтому в ВУЗ поступал по наитию: стал изучать политику и международные отношения. Звучало заманчиво и соответствовало моему главному критерию — никакой математики!
Направление оказалось интересным, способствовало личностному росту и развитию классических «гуманитарных» знаний и навыков — иностранные языки, ораторское искусство и тому подобные вещи. А вот с профессиональной точки зрения выпала «пустышка»: немного поработал в этой сфере и понял — не мое.
Никогда не останавливайтесь: На Хекслете есть сотни курсов по разным направлениям и языкам программирования — продолжайте учиться и развиваться, чтобы быть классным разработчиком
Недолго унывая по этому поводу, стал осваивать новое направление. А потом еще одно. И еще. В итоге успел поработать аналитиком, SMM-щиком, креатором в рекламе и даже дизайнером презентаций.
Однажды случайно наткнулся на онлайн курс по HTML, немного покопался в этой теме, и решил: это может быть любопытно. Если бы в этот момент мне сказали, что когда-нибудь я стану программистом, я бы очень удивился.
Фронтенд. Начало.
Пройдя бесплатный курс, стал искать что-то более основательное. «Основательным» показался один известный образовательный проект с фокусом на вёрстку.
Подкупила возможность самостоятельного обучения и невысокая цена (около 400 рублей в месяц на тот момент) — то, что нужно для начала. А вот качество ресурса, несмотря на раскрученность, было посредственным: если с HTML и CSS ещё можно было разобраться, то JavaScript ставил в тупик без малейшего шанса выбраться из него самостоятельно.
В общем-то, я был уверен, что дело в моих гуманитарных склонностях, но и качество подачи информации оставляло желать лучшего, поэтому принял решение поискать другой образовательный проект. Не сдаваться же мне было, в самом деле.
Знакомство с Хекслетом
Стал исследовать рынок обучающих курсов по программированию. О Хекслете узнал из какой-то обзорной статьи, мне сразу понравился подход: сначала обучение правильному мышлению, затем умение писать код. Это мне и требуется! Ресурс запомнился, старт обучения не заставил себя долго ждать.
Как и до того, важным условием стала возможность учиться самостоятельно. Во-первых, на тот момент была постоянная работа, и совмещать офисное расписание с учебой по графику было бы некомфортно — пробовал, не понравилось. Во-вторых, не было уверенности в успехе мероприятия (эй, я все ещё гуманитарий!), а выложить кругленькую сумму за знания, которые не получится монетизировать — не лучшая идея.
Правильный подход
Решил учиться самостоятельно — учись, но будь добр, сделай так, чтобы обучение шло эффективно. Следуя этому принципу, пообещал себе, что не стану двигаться дальше, пока не пройду все задания и испытания текущего блока — и, конечно, никаких подглядываний в ответы. Даже если придется неделю корпеть над каждым уроком.
В этом мы с Хекслетом совпали, хоть на тот момент я об этом и не догадывался. Я воротил нос от подсказок, а мой новый учитель старательно их от меня прятал – знаете, это ваше коронное «воспользуйтесь отладочной печатью и сами скажите, что в вашем решении не так». И да, меня это тоже раздражало. Раздражали непонятные условия задачек. Раздражало, что в проектах нужно изучать совершенно новые приемы, а не закреплять пройденное. Мы говорили на совершенно разных языках, и это вызывало дискомфорт.
Дискомфорт, как это часто и бывает, оказался признаком роста. Новое мышление пустило корни, я и сам не заметил, как это произошло. А с ним пришло и умение писать код.
Закономерный результат
С момента моего знакомства с Хекслетом прошло около полутора лет. Не самый быстрый темп, но он позволил мне получить желаемое и попутно разобраться со всеми другими делами, а их было немало!
Этой весной я устроился на позицию фронтенд-разработчика. Работодатель нашел меня через сервис Хекслет CV (не забудьте разместить там свое резюме), впечатлился портфолио и сходу предложил трудоустройство. Сотрудничеством, насколько могу судить, довольны оба. А главное — я получаю от работы колоссальное удовольствие!
Составьте свое первое резюме: Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров
То, чему учит Хекслет — умение самостоятельно находить ответы на нетривиальные вопросы — пригождается мне каждый день. Уже на первой неделе пришлось освоить пару новых фреймворков, и настроить небольшой сервер с использованием вебсокетов. И знаете что, все получилось!
Делайте выводы
Для меня учеба на Хекслете стала не только прямым путем в новую карьеру, но и интересным экспериментом, по итогу которого можно сделать следующие умозаключения:
- Скорее всего, ваши представления о собственных возможностях далеки от совершенства.
- Поэтому не стоит заниматься навешиванием ярлыков. Думаете, что вам не даются языки или что физика ядерных частиц — чья-то изощренная месть лично вам? Возможно, вы плохо себя знаете.
- Поменять профессию никогда не поздно. Иногда новые знания вступают в удивительный синтез со старыми, и вы входите в новую сферу гораздо увереннее, чем могли бы себе представить.
- Любое дело требует времени, иногда непозволительно много времени. Это нормально (но хочется получать всё и сразу).
- Лучший способ освоить что-то новое — самостоятельно находить ответы на сложные вопросы.
- Боль — вестник перемен. Не получится измениться без боли, но можно найти боль себе по душе, и это — отличная новость!
Читайте другие истории успеха: Решить первый проект во сне и стать программистом, или Как Хекслет подарил мне состояние потока
Живёт себе человек спокойно, никого не трогает, и вдруг приходит ему мысль: «Хочу быть программистом!». Спрашиваем у экспертов, с чего начать.
начальник отдела информационной безопасности «СёрчИнформ», директор учебного центра
Прежде чем перейти к практическим советам, скажу главное: если условный гуманитарий хочет в программисты только из-за «денежности» профессии – план провальный. Первое и самое важное условие для успешного перехода в IT из другой сферы деятельности – искренняя страсть к «железу», цифрам и алгоритмам, без неё не осилить даже базовые основы профессии.
Предположим, страсть есть. Что дальше?
- Определитесь, чем именно вы хотите заниматься. В IT куча направлений и специализаций, и с повсеместной цифровизацией становится только больше. Кроме собственно программирования можно попробовать себя в профессиях на стыке IT и гуманитарных дисциплин: например, в UX-дизайне или SEO-оптимизации текстов. Если вы и раньше работали с текстами или картинками, переход в новую профессию будет проще. Если хочется именно программировать, рекогносцировку провести все равно придётся: создавать «мозги» для гаджетов, писать сайты или делать мобильные приложения – разные вещи, нужно их различать. Отталкивайтесь от конкретных прикладных задач. Это поможет определиться, какие навыки прокачивать, а на что не тратить время. Например, если вы всегда мечтали создать боевого робота, вам не придётся учить HTML.
- Подтяните «базу». Какое бы направление вы ни выбрали, вам в любом случае понадобится фундамент из математики, логики, знания алгоритмов (и хорошо, если у вас хоть немного математический склад ума). Как минимум – скачайте пару учебников для первых курсов вуза. Нужные легко найти в учебных планах популярных «компьютерных» направлений, их как правило выкладывает в открытом доступе любой университет. Ещё полезно хотя бы немного знать английский – во-первых, большинство языков программирования построены на его основе, во-вторых, на нём идет вся коммуникация в глобальном IT-комьюнити и публикуется самая свежая литература.
- Изучите профильные вакансии. Так вы составите формальное представление, каким «должен быть» программист. В вакансиях всегда указаны требования к необходимым скиллам: знание такого-то языка, владение такой-то технологией. Выделите список «минимум», который встречается в большинстве описаний, и начинайте его осваивать. Затем посмотрите на «тусовку» изнутри: читайте профильные сайты, общайтесь на форумах. Так вы будете в курсе актуальных проблем, которые волнуют профессиональное сообщество, а ещё заручитесь поддержкой «старших товарищей». Не стесняйтесь задавать вопросы старожилам этих площадок – на многих ресурсах для этого есть специальные разделы Q&A. Там новичку подскажут и литературу, и полезные курсы, чтобы освоить необходимый навык, а то и способы решить конкретные задачи.
- Учитесь, учитесь и ещё раз учитесь. И будьте готовы, что процесс обучения будет бесконечным. IT развивается быстро, чтобы не пропустить новый тренд, нужно постоянно держать руку на пульсе и совершенствовать свои навыки. И легких путей здесь нет – даже если начать учить условно «простой» язык Java, чтобы затем конкурировать на рынке, придётся освоить массу сопутствующих технологий. Но это не повод опускать руки. Удовольствия от процесса будет больше, если новые знания сразу переводить в практику. Напишите свой условный «Hello world» – когда вживую увидите, как работают ваши знания, мотивации продолжать прибавится в разы.
frontend-разработчик IT-компании MediaSoft
Расскажу, как я из гуманитария стал программистом. Мне было 25 лет, и я работал специалистом по связям с общественностью. В какой-то момент понял, что буквально ненавижу то, чем занимаюсь, недоволен зарплатой и готов сменить место работы как можно скорее.
Я поразмыслил о том, чем хочу заниматься, и понял, что основные критерии выбора новой специальности у меня следующие:
- Мне должно нравиться, что я делаю.
- Хочу поменьше общаться с людьми.
- У новой профессии должна быть возможность развития.
- На новом месте должна быть достойная зарплата.
Выбор пал на профессию программиста, а точнее – frontend разработчика, поскольку мне показалось, что там самый низкий порог вхождения среди всех областей программирования.
Я начал свой путь с вёрстки. Примерно два месяца потратил на прохождение интерактивных онлайн-курсов, после чего устроился в компанию, которая занималась только вёрсткой. Первое время моя зарплата составляла всего 8-12 тыс. рублей (Ульяновск, 2015 год) – совсем немного, потому что опыта у меня было мало и нужно было еще многому учиться. Отсюда совет: если будете кардинально менять сферу деятельности, подготовьте сначала денежную «подушку».
В этой компании я проработал полтора года, став за это время уверенным верстальщиком. Освоил Git, Webpack и Gulp, LESS, Sass, БЭМ, Jade, он же Pug, Bootstrap и простые задачи по JS (подключить плагин, настроить его, добавить классик и т.д.).
После этого устроился верстальщиком в компанию, где работаю и сейчас. На какое-то время забросил изучение JS (не делайте так! Это моя главная ошибка на пути из гуманитария в программисты), но потом вернулся к этому. Для этого прошёл ещё один онлайн-курс по специальности frontend разработчик и освоил онлайн-учебник по JavaScript. Кстати, советую начать изучение не с самого JS, а с основ программирования, чтобы понимать, как всё работает внутри.
Пару слов о том, почему я всегда отдавал предпочтение курсам (особенно интерактивным), а не книгам. В книгах даётся подробная теоретическая база, но без практики и руководства наставника мне было трудно её усвоить. Интерактивные курсы, где теоретические знания даются параллельно с заданиями в онлайн-редакторе, решают эту проблему: они направляют человека от задания к заданию и указывают на ошибки. Это позволяет усваивать теорию на конкретных примерах и накапливать первый опыт.
В текущей компании я первое время занимался вёрсткой. Постепенно стали появляться задачи на JS, которые становились всё сложнее, с некоторыми я справлялся сам, с другими помогали советом более опытные коллеги. Затем мне доверили мелкий внутренний проект на Vue.js, с которым я справился, потом крупный проект на Vue.js, и на нём за год работы я вырос до полноценного frontend разработчика.
Таким образом, мне потребовалось 5 лет, чтобы пройти путь от специалиста по связям с общественностью до frontend разработчика. Но если вы будете интенсивнее учиться и меньше лениться, то полноценно освоить эту профессию сможете за 2-3 года.
Что я могу посоветовать людям, которые решили кардинально сменить сферу деятельности и устроиться в IT?
- Не затягивайте с обучением и устраивайтесь на работу как можно раньше: опытные программисты из числа новых коллег подскажут, что подучить, и таким образом ускорят ваше развитие.
- Не бойтесь идти на собеседования: многие IT-компании готовы брать людей с минимальной подготовкой и обучать их.
- Как можно больше практикуйтесь.
- И самое главное – получайте удовольствие от своей новой работы!
директор департамента информационных решений компании РДТЕХ
Мой опыт сделать IT-специалиста из гуманитария оказался неудачным, а другой такой возможности у меня пока больше не было. Проходил у нас стажировку один парень, который захотел сменить профессию на айтишника. Не получилось.
Основные его проблемы были связаны не столько с «гуманитарностью» основного образования, сколько с полным незнанием английского языка. Поэтому в первую очередь надо осваивать не машинный язык, а английский, чтобы открыть для себя возможность работать с огромными массивами полезных материалов, так нужных в нашей деятельности. Времена меняются, в Рунете сейчас тоже накопилось немало информации по интересующим темам, но возможность понимать первоисточники по-прежнему актуальна. И это замечание относится ко всем: и к технарям, и к гуманитариям. Кстати, как раз у гуманитариев очень часто можно встретить хорошие знания естественных языков.
Если с английским языком всё хорошо, и есть мотивация и/или огромное желание этим заниматься дальше (что тоже немаловажно!), то сперва надо пройти один или несколько курсов по основам программирования. Знание английского не ограничивает вас в выборе площадки для обучения. Лучше, если это будут онлайн-курсы: Coursera, Udemy предлагают отличные варианты. Некоторые по завершении курса и после успешной сдачи тестов дают сертификат – пригодится при трудоустройстве.
Далее придётся изучить хотя бы один классический язык программирования: например, Java или Python. Надо уже на примере конкретного языка понять, как реализуются алгоритмы на языках высокого уровня, какие основные языковые конструкции бывают, как используются и т. д. Изучать язык надо обязательно в какой-нибудь среде разработки – они очень помогают как новичкам, так и профессионалам: IDEA, Eclipse, NetBeans, JDeveloper и т. д.
Ну и ещё один, альтернативный вариант: пойти на стажировку в какую-нибудь компанию. Подобные программы для начинающих специалистов или специалистов без опыта встречаются достаточно часто. Плюс в том, что в коллективе единомышленников обучение проходит гораздо эффективнее, а также можно автоматом решить вопрос с трудоустройством.
Этап 2 – Учиться
Мне назначили встречу с лидом команды, куда была возможность меня рассмотреть в качестве разработчика. После нее я получил список из 15-20 задач, которые я должен научиться делать. Часть из них (Frontend) сводилась к приобретению базовых знаний о том, как устроена веб-страница, как отправлять данные формы и взаимодействовать с элементами страницы. Другая часть – про Backend, сводилась к тому, чтобы научиться работать с API сторонних публичных сервисов с помощью Python. Чтобы осилить вторую часть, я взялся за курс по Python для начинающих. На обучение и решение задач из списка у меня ушло 3 месяца, в течение которых я периодически отчитывался о прогрессе лиду из команды разработки.
Все шло хорошо. Тим-лид из разработки был доволен моими успехами. Мой руководитель был готов отпустить в другую команду, а начальник подразделения ничего против этой инициативы не имел. Однако, неловко получилось с бюрократией.
После месяца подвешенного статуса, который поддерживался словами о том, что процесс моего перевода идет, я начал подозревать, что процесс вовсе не идет. Начав докапываться о статусе дел, оказалось, что каждый из трех руководителей, был уверен, что мой перевод согласует кто-то другой, но не он. Когда это всплыло, процесс взял под контроль начальник подразделения и оказалось, что добро и бюджет на новую позицию в штате команды разработки не дадут, и уже до конца года ситуация не изменится. Дело было в январе. Было по-человечески обидно, и вместе с этим стало ясно, что в течение месяца я покину компанию.
Ошибайтесь
В начале обучения часто кажется, что одно неверное действие — и все сломается. Кажется, лучше ничего не делать, чем совершить ошибку. Это неправильно.
Даже нейросети учатся как мы с вами — методом проб и ошибок. Чтобы начать распознавать на изображениях котиков, нейросеть просматривает тысячи фотографий, много ошибается. Зато в итоге может распознать котика в пижаме.
Вместо того чтобы бояться ошибок, лучше подробно разбирать их с другими программистами. Это поможет не допускать их в будущем.
Кто такой программист?
1. Определите цели
Обычно выделяют три основных разновидности программистов:
1) Разработчик приложений (то есть тот, кто занимается прикладным программированием)
Такие специалисты разрабатывают и настраивают работу программных приложений. Результат их работы – цифровые инструменты, начиная от бухгалтерских программ и заканчивая видеоредакторами. Все игры, сервисы в ваших ноутбуках, планшетах и телефонах созданы программистами именно этого профиля.
2) Web-программист (тот, кто разрабатывает интернет-ресурсы)
Задача web-программиста – создавать качественные и функциональные сайты. Социальные сети, интернет-магазины, сервисы, системы дистанционного обучения, форумы – все дело рук специалистов, заточенных под работу в сети.
Веб-разработчики, в свою очередь, делятся на три категории: frontend, backend и многопрофильные (то есть те, которые объединяют обе специализации). Если frontend отвечает за внешнюю сторону, то есть «лицо» сайта, то backend разработчики отвественны за серверную часть, то есть занимаются внутренним содержанием системы, технологиями хранения данных и их использования.
3) Системный программист (тот, кто создает условия и инструментарий для того, чтобы применяемая операционная система функционировала)
Представьте себе внутреннюю сеть из сотен компьютеров на каком-нибудь предприятии. Множество подразделений, и у всех свои задачи – от подсчета излишков продукции или отработки логистических цепочек до бухгалтерских программ и корпоративного СМИ. И вся эта махина должна работать четко, без перебоев и ошибок.
Цари, боги, маги и кудесники подобных сетей – системные программисты. Это специалисты, которые занимаются разработкой и кодировкой различных составляющих операционных систем, драйверов устройств и комплексов программного обеспечения. Именно они связывают в единое целое все компоненты, чтобы система работала как единый механизм.
Все виды программистов традиционно делятся на три уровня профессионализма:
– Junior
Это начальный уровень, так как он предполагает наличие минимальных знаний, навыков и опыта. Junior-программисты решают стандартные задачи: разрабатывают пользовательские интерфейсы, кодируют отдельные компоненты. Кроме того, они занимаются frontend разработкой сайтов, а также могут выполнять графическую работу.
– Middle
Это профи в своем деле, люди с внушительным багажом теоретических знаний и большим практическим опытом за плечами. Обычно они владеют несколькими языками программирования, легко обращаются с базами данных. Программисты этого типа умеют писать код для выполнения конкретной задачи. Они также владеют навыками backend разработки, то есть умеют разрабатывать программное обеспечение для серверов.
– Senior
Это гуру программирования. Специалисты такого уровня сочетают в себе функционал Middle-программистов и умение решать нестандартные задачи нешаблонным способом. Они нередко работают с командой, руководя процессом. Senior-специалисты владеют несколькими связанными между собой профессиями, например, отладчик и архитектор программных продуктов.
2. Оцените свои способности
Информационные технологии непрерывно и бурно развиваются. Поэтому, раздумывая, стоит ли освоить профессию программиста, необходимо ответить себе на несколько вопросов.
Во-первых, готовы ли вы не просто выучить определённые языки программирования и овладеть необходимыми навыками, но и постоянно повышать квалификацию, вникать во все новые технологии, чтобы быть на гребне волны и всегда оставаться востребованным специалистом?
Во-вторых, способны ли вы к самообучению, которое в сфере программирования очень важно?
В-третьих, обладаете ли вы навыками, необходимыми для работы программистом – аналитическим мышлением, умением работать в команде, организаторскими способностями, вниманием к деталям, педантичностью, усидчивостью, огромным запасом терпения?
Если ответы на эти вопросы вас не смущают, вперед!
3. Выберите язык и направление
4. Начните изучать курсы
На сегодняшний день огромное количество онлайн платформ на любой вкус предлагает пройти курсы программирования. Среди самых популярных:
- Курсы от Нетологии
Этот онлайн-ресурс специализируется на сфере IT. Что касается программирования, здесь можно пройти обучение по направлениям Frontend, Web-разработка, Android, Python и другим.
- Skillbox
Это известнейший онлайн университет. Там можно обучиться всем востребованным профессиям в сфере программирования. Skillbox предлагает пройти как теоретическую, так и практическую часть, и по окончании курса у вас на руках уже будет портфолио.
- Geekbrains
Это также онлайн университет, предлагающий на выбор широкий спектр IT специализаций, в том числе и курсы программирования по самым популярным направлениям. А если вы боитесь не справиться, вам предложат наставника, и вы будете учиться под его чутким руководством. Geekbrains обещает своим студентам стажировку в крупных партнерских компаниях, а также помощь с устройством на работу.
- Coursera
Это крупнейшая образовательная платформа, сотрудничающая с ведущими университетами всего мира. Здесь вы сможете найти большое количество курсов программирования, но многие из них ведутся на английском языке.
- Codeacademy
На этой англоязычной платформе вы найдете большое количество курсов, посвященных различным языкам программирования. Однако для обучения вам понадобится уверенное знание английского языка.
Это лишь малая часть платформ, которые вы можете выбрать для обучения. Есть и множество других, некоторые специализируются на более узких направлениях: например, ресурс JavaRush пригодится тем, кто хочет пройти курс обучения по программированию именно на Java, а платформа HTML-Academy понравится тем, кто выбрал специализацию frontend-разработчика.
Научиться можно всему
- Технарь может развивать в себе эмпатию и внимание к людям.
- Гуманитарий может изучить алгоритмы, системы, механизмы и программирование в любом виде.
- И те и другие могут изучить математику в достаточной степени, чтобы быть аналитиком или дата-сайентистом.
- Всегда можно сказать «стоп» и отучиться на графдизайнера, чтобы делать людям красиво.
Мы здесь не говорим, что технарь не может быть менеджером, а гуманитарий — программистом. Наоборот: научиться можно всему. Но если вам интереснее всего люди, то самые большие успехи у вас будут в менеджменте и маркетинге.