Всем тем, кто интересуется предложениями пройти курсы программирования или вписаться на какой-нибудь форум, где всех по-быстрому научат всему что нужно, а также тем, кто просто задумывался бросить все и нырнуть в эти ваши информационные технологии (IT) - посвящается.
Спору нет сфера IT нынче в цене, спрос бешеный, предложение соответствующее, работа вроде бы не пыльная, организация работы как надо, еще и возможность работать удаленно. А уж если посмотреть ценники так вообще дух захватывает.
Вот только с чего начать, как грамотно влезть на этот поезд и не страдать, и действительно ли овчинка стоит выделки? Давайте разбираться.
Пункт № 1. Что есть айти в целом, и какой спектр работ вообще в него входит.
Обычно представляют либо бородатого мужичка, ковыряющегося в железках, либо парнишку целый день проводящего перед компом за печатаньем какой-то бессмыслицы. Спектр работ, на которые вы можете себя подписать, гораздо шире. Впрочем ядром, конечно, выступают как раз эти мужички и парнишки. И чаще всего подписываясь на курсы - вы будете баллотироваться именно на эти вакансии.
Итак, чем же можно заниматься в современной IT компании:
================================================================
- КОДЕР - он же программист, он же разработчик. Занимается собственно тем, ради чего собирается IT компания - непосредственно разработкой продукта.
Уж очень романтично приукрашивают замечательность и простоту этой работы. Казалось бы сиди себе перед компуктером, печатай чего-то там и получай свои тысячи долларов, ан нет.
В зависимости от квалификации программист в разных долях: кодит (пишет код разрабатываемого продукта), изучает документацию, участвует в обсуждениях и спорах, занимается менеджментом, гуглит/планирует таки шо кодить (как ни парадоксально, но чем круче программист, тем меньше времени он непосредственно кодит). Некоторые отдельные виды работ настолько рутинны, что вы 10 раз зададите вопрос: "И ради этого я проходил те курсы?".
================================================================
- СИСАДМИН - он же бородатый мужичок с железками. Занимается саппортом (поддержкой) кодеров с точки зрения железной части: подымание и поддержание инфраструктуры, на которой будет работать разрабатываемый продукт, сбор компов, настройка сетей, нередко компьютерная безопасность и еще куча всего, на что нужно очень серьезный спектр навыков и знаний. На эту должность сложновато прорваться с нуля, да и редко кто идет, но даже у них бывают вакансии для новичков и стажировки.
================================================================
- БИЗНЕС-АНАЛИТИК (БА) - а вот и первая должность, которая далеко не такая техническая. БА занимается саппортом кодеров с точки зрения бизнеса. Чтобы кодер не страдал и не тратил время на разговоры с заказчиком, аналитик выясняет в общих чертах, что хочет заказчик и пытается оформить это в понятную конфетку. Из "хочу, чтобы люди могли общаться" => "мы делаем чат, здесь вот кнопка, вот макет, сообщения выглядят так, их можно изменять и удалять - вот диаграмма и т.д. и т.п.". В целом сопрягает звенья команды и ведет работу больше построенную на общении и проектировании.
Почти любая мало мальски серьезная контора имеет штат этих ребят, ведь они очень экономят время и нервы кодеров. Да и решают частую проблему нелюдимости последних)
================================================================
- ТЕСТИРОВЩИК - он же QA-инженер. Если представляется просто чувак, который целыми днями играет в игры и пытается их сломать - это как бы так, да не так.
Тестировщики выполняют роль аудиторов. Они бдят, чтобы то, что написал бизнес аналитик в полной мере было сделано кодерами. Попутно ищут где чего отломалось.
На стыке конфликта тестировщиков и кодеров и рождается продукт. Одни хотят сделать быстрее/по-своему (само собой кодером интереснее делать новые штуки, чем править старые), вторые хотят, чтобы все соответствовало документации и нигде ничего не отваливалось.
В целом тестировщики изучают документацию, пользуются продуктом, смотрят, что все соответствует, ищут баги (косяки), нередко находят места, где можно сделать лучше, влияя и на работу аналитиков тоже. Хороший тестировщик не тот, который нашел больше багов, а тот, который нашел один, но в важном месте или предложил какое-то изменение, которое в целом улучшает то, что вы разрабатываете командой.
================================================================
- ДИЗАЙНЕР - это не то же самое, что художник. Хотя дизайнеры, конечно, немало рисуют. Однако дизайнер в основном рисует план, а не итоговую графику. Совместно с аналитиком дизайнеры делают набросок: что и где должно быть. Где какая кнопка, где какое меню, макет того, как в чате должно удаляться сообщение или изменяться имя.
Нередко дизайнеры рисуют и итоговые кнопки и иконки, но это необязательно, особенно для начинающих.
Здесь конечно хорошо иметь какие-то рисовательные задатки, но из того, что я видел - не сказал бы, что это художественная работа. Скорее больше композиция, чем художество (а ля флорист в цветочном).
================================================================
- МЕНЕДЖЕР ПРОЕКТА - про них не могу не сказать, но естественно тут уж без опыта никак. Менеджер ведет проект, человек, который ответственен за стратегические решения, решает спорные моменты, дополнительно общается с заказчиком и двигает проект вперед.
Важный момент, что стать ПМ можно двигаясь по любой ветке: и из тестировщика, и из кодера, и из аналитика, ведь основной навык - понимание продукта и как его развивать - качается в любой ветке.
================================================================
- НАСТРОЙКА ИНСТРУМЕНТАРИЯ - Сюда относим все, что связано не столько с созданием новых продуктов, сколько с настройкой существующих.
Ярким представителем этой должности является 1С. Вы скорее должны знать не "что написать", а "где написать". В целом инструмент, который вы настраиваете задает серьезные рамки со всеми вытекающими - делать повседневные вещи легко, делать что-то кастомное (из ряду вон/на что не рассчитывали) - сложно, но можно. Переходить с этой в другие сферы IT - довольно сложно, ведь классического кодинга меньше, знания очень узкие и привязаны конкретно к используемому инструменту, да и обидно просирать приобретенные знания, которых реально надо дофига. (знание как грамотно настроить отчет в 1С не сильно поможет в разработке мобилки).
Но ознакомиться стоит, т.к. своих интересностей здесь хватает, порог входа чуть ниже, однако путь до значительного специалиста очень долгий - нужно именно много чего знать, а не уметь это искать.
================================================================
- МАШИННОЕ ОБУЧЕНИЕ- популярное нынче веяние. Выделил отдельно, хотя зачастую относится к настройке инструментария. Включает как серьезное программирование, так и очень много настройки окружения. Дело в том, что в машинном обучении очень много чего уже исследовано, есть набор инструментов для решения конкретных задач, и вы таки скорее будете применять этот набор инструментов, нежели разрабатывать новые. Т.е. вместо того, чтобы развивать и создавать искусственные интеллекты и классификаторы, вы будете скорее заниматься настройкой и поддержкой таковых. Хотя через какое-то время и с серьезным опытом и до мечты принять участие в их создании - рукой подать) Правда для этого одним машинным обучением уже не получится обойтись.
С нуля лезть в эту сферу, пожалуй, можно, но стоит хорошенько изучить - на что вы подписывайтесь.
================================================================
- ЗВУКАЧ/ХУДОЖНИК/МАСТЕР ПО ЭФФЕКТАМ - в некоторых сферах без этих ребят само собой никуда (игры/веб). Музыкальные/Художественные дела вообще никогда образования не требовали, а уж в наш век и подавно, особенно если душа лежит. Вакансий для совсем начинающих на эту тему особо не видел, но имхо эта тема относительно подымаема и своими силами с самообучением. Монетизация на различных стоках / фрилансово. Потом с портфолио уже можно лезть и в интересующую компанию.
Хотя естественно и компании имеют штат таковых. В игровых фирмах уж точно. Может и бывает чего.
================================================================
================================================================
================================================================
Теперь, когда разобрались с должностями, в которых можно развиваться, едем дальше.
Пункт № 2. Продукт дороже денег.
Должность определяет ваши обязанности и набор приобретаемых навыков, но что действительно важно для получения кайфа от вашей новой работы - это разрабатываемый продукт.
Условно продукты можно разделить на несколько направлений:
================================================================
- WEB - сюда относится все, что вы открываете в браузере. Это может быть просто сайт визитка или полноценное веб-приложение. (Например VK, Пикабу, YouTube)
Обычно веб принято делить на две части. Фронт - это то, что вы видите, с чем взаимодействуете. И Бэк - это то, что работает в фоне и является фундаментом для фронта. Такое же деление вы часто заметите при поиске вакансий.
Для примера в ВК когда вы шлете кому-то сообщение - вводите сообщение и отправляете его - используя фронт, а вот непосредственно его доставку, сохранение истории и вообще информацию о вас обрабатывает и хранит Бэк.
Я не очень люблю разделять Веб, потому что считаю, что в какой-то мере знать надо обе стороны. Так что для начинающего точно не стоит заморачиваться. Да и обычно начинающим таки дают фронт, потому что там часто больше рутинных простых задач. Да и понять чего ты сделал - попроще.
================================================================
- Мобильное приложение - сюда все, что используете на мобилах. (Например Instagram, Тинькофф Мобайл, Viber)
Само собой для разработчиков деление на Андроид и Яблоко, Винда таки канула в лету. Различие очень сильное, единицы разработчиков действительно хорошо знают обе стороны. Так что можно рассматривать их как два различных направления и пробовать второе, если первое не устроило. Для тестеров/аналитиков/дизайнеров обычно разницы нет, они работают с обеими платформами на равных.
Кстати интересное ответвление этой сферы - разработка под часы. Лучше лезть после пары лет на обычных мобилах.
================================================================
- Игры - особого представления не требуют. Все что видим на игровых площадках типа Steam, GOG, Google Play, Apple Store.
Если мы говорим про средний и малый калибр чаще всего сейчас разрабатывают на каких-то движках типа Unity, GameMaker, Unreal Engine и др.
В этом направлении особенно просто попробовать свои силы разработчика, ищете движок, ищете простенький обучающий видосик и пытаетесь чего-то наклепать. Чаще всего на самих сайтах движков есть соответствующий раздел. Кстати пробовать свои силы в программировании в целом также советую именно на игровых движках, т.к. отдача быстрая, гораздо интереснее получить на выходе простенький арканоид или 3 в ряд, чем условный простенький сайт в Web.
Если получится и понравится - можно вообще стучать в мелкие игровые конторы в вашем городе, они чаще всего также попросят что-то наклепать, а вы уже чего-то умеете.
Большие дяди типа CD Project, Riot Games, Wargaming - разрабатывают свои движки, туда с околонулевыми знаниями тяжело рваться. И собственно разработка чаще всего требует глубоких знаний серьезных плюсов (C++), в которые на самообучении лезть крайне амбициозная задача.
================================================================
- Системные приложения и десктоп - операционные системы, утилиты, антивирусы и прочее программное обеспечение для ПК. (Windows, NOD32, Word, Skype)
Мелкие конторы редко такое разрабатывают. Но вакансии бывают. Новичков берут еще реже, но думаю и тут бывают стажировки, хотя они больше для людей с каким-то бэкграундом, например студентов соответствующих специальностей.
================================================================
- Разработка под железо - всевозможные системы автоматизированного управления, умные дома, приложения для авто.
Здесь своя специфика связанная с кучей интересной работы с железом. Не в буквальном смысле (паять/разрабатывать микросхемы не надо, впрочем и на это есть свое направление), а именно в вопросе сопряжения программы и железа.
Строго говоря вы с этим можете столкнуться и в рамках мобильной или веб разработки, когда надо будет вытянуть какие-то данные с датчика в умном доме. Но все таки решил выделить в отдельное направление, т.к. есть целые конторы, у которых фокус очень сильно смещен в эту сторону.
================================================================
================================================================
================================================================
Само собой, если вы стали кодером веба, потом перейти на мобилки или в разработку игр - не составит большого труда, да и серьезная часть навыков универсальна. Но в каждом направлении своя специфика и частенько свои, уникальные задачи.
Поэтому очень важный момент - если не получилось с одним направлением - не опускайте руки, может просто нужно попробовать другое. То, что вас бесило в вебе, может решается элегантно и просто в мобилках, и тот класс задач, из-за которых вам работа показалась скучной - не является там проблемой, либо вообще отсутствует.
Пункт № три. Как выбрать конкретную должность/направление?
Выбор должности - достаточно легко делается из ваших пожеланий/навыков/склонностей в погружении в техническую часть.
- 100% - железо/код
- 50%/50% - тестеры, аналитики
- 25%/75% - дизайнеры, работы связанные с настройкой существующих инструментов
- умеем в художку/музычку - рассматриваем особые вакансии на эту тему
Выбор направления - лучше таки делать, почитав о каждом по-подробнее.
Кому-то нравится денно-ночно править css в вебе, кто-то считает это скучной рутиной. Кому-то нравятся ограничения IOS, кому-то нет. Кто-то мечтает сделать свои три в ряд, а кто-то не согласится меньше, чем на разработку League Of Legends.
Идеально, если вам удастся найти продукт, существующий продукт, который вам было бы интересно развивать. Например, вам интересен сервис пикабу, дзена или вк, и интересно как он работает.
Важный момент, я здесь говорю о желании развивать и желании понять как оно работает. А не о "я люблю пользоваться этим сервисом". Никогда не руководствуйтесь повседневными предпочтениями. Особенно это касается игр. Если видите объявление "любите играть в игры, так давайте мы научим вас их разрабатывать еще и зарабатывать на этом будете" - шлите лесом). Аналогично не стоит идти в мобильную разработку, только потому, что у вас пара-тройка яблочных девайсов. Вы же не идете учиться на сантехника, только потому, что любите посрать.
Само собой велика вероятность, что в интересующую компанию нужны ребята с опытом. Но вы сразу сможете ограничить пулл вакансий, который их интересует, и стремиться к нему. Если они берут на стажировки - круть, дерзайте. Если нет - таки стоит задуматься о фирме в вашем городе, либо стажировке в яндекс практикуме, geekbrains, или прочих сервисах на эту тематику.
Если таки не получается найти такой интересный продукт - отталкивайтесь от более приземленных вещей - чего есть в вашем городе, может какие-то курсы прямо около дома. Сам же считаю, что разработчикам проще всего заходить в сферу (если с нуля прямо) с 2д игр, потому что там проще всего не потерять интерес, даже когда делаете какую-то фигню на коленке. На остальные должности +- одинаково сложно.
Главное - постарайтесь сделать все, чтобы мотивация лезть в IT была чем-то большим, чем просто бабло, престижность, возможность удаленки и прочие "удобства" профессии.
Как и в любой другой сфере - по началу вы будете страдать. Задачи начинающим специалистам скидывают самые простые, но в то же время самые скучные и рутинные. Ну и зп соответствующее. В этот момент будет очень легко перегореть.
Здесь кстати сразу стоит задуматься, а так ли оно вам надо? Менять сферу, если текущая не устраивает (если даже просто задумались над сменой на IT) - обязательно надо. Но обязательно ли на IT - это уже более глубокий вопрос. Может таки не стоит тратить на эти информационные технологии силы и время, а направить их на становление ветеринаром/агрономом/музыкантом/блоггером, ну, или кем вы там так давно мечтали. Но это в рамках лирики)
Пункт №4 Резюмируем приблизительный путь в IT (на примере)
1) Решить, что хотим именно в IT)
2) Выбрать должность (например бизнес-аналитик). Потому что у вас нет желания все время заниматься мат частью, хочется больше проектной работы и общения.
3) Выбрать направление (например мобильная разработка). Потому что вам действительно интересен инстаграм, хочется развить этот продукт, может даже пару идей есть.
4) Ищем информацию по выбранной должности и направлению, какие-то статьи. Чтобы понять оно вообще нам надо. Может даже описалово покажется вам настолько скучным, что стоит сразу вернуться к пункту 1 и повторить. А вот если будет просто непонятно - это норм.
5) Ищем стажировки в городе на тему бизнес аналитики. Искать желательно не только на head huntere. Знакомые, незнакомые, чаты, реклама. Нету локально - ищите онлайн стажировки по этой теме, яндекс практикумы, geekbrains (полный курс вроде платный, но он вам и не нужен, достаточно пройти бесплатную часть, чтобы пощупать направление). Мейл ру и прочие гиганты частенько делают эвенты, где еще подробней расписывают различия должностей и сфер.
У меня был знакомый, который вообще дома начитался всякого, а потом начал закидывать все интересующие его компании, даже когда у них не было соответствующих должностей. Напористость окупилась спустя 10 итераций. Ясно дело удача, но не на ровном месте)
6) Если на стажировке поняли - "че-то как-то ни о чем" - возвращаемся к пункту 2/1 по выбору)
================================================================
Писал статью с целью показать, что не одними программистами и не одних лишь сайтиков дышим и что не стоит хвататься за первый попавшийся курс, а после неудачи - совсем забрасывать идею влиться в IT сообщество.
Ну и не бойтесь пробовать. За лишние записи в трудовой давно уже никто не карает. Даже если вы не станете в итоге программистом, или аналитиком, или еще кем вам там хочется - приобретенный опыт будет полезен. Все таки нынче слишком большая часть нашей жизни так или иначе связана с этими вашими информационными технологиями ;)
Напоследок закину пару полезных ссылок:
https://openspace.geekbrains.ru/ - Вот например недавно был эвент на тему.
https://praktikum.yandex.ru/ - Ссыль на яндекс практикум, который мелькал в статье.