Как стать it-специалистом без техобразования: две позиции, с которых можно начать
Содержание:
- Лучшие книги и средства обучения
- Поиск работы — как подготовиться
- Инга Герасименко, HR-директор «БАРС Груп»
- Программирование ближе к математике или к иностранному языку
- Как научиться программированию
- Региональные особенности в распределении вакансий
- Иван Цыплухин, сооснователь Krasa.io и Beet Lab Academy, бросил МФТИ на 2 курсе
- Стоимость обучения
- Специализации и перспективы по окончании учебы
- Трудоустройство
- Как может развиваться карьера программиста?
- Нужно ли высшее образование программисту?
- Как стать программистом Java
- Свое первое приложение я разработал за месяц
Лучшие книги и средства обучения
- «Искусство программирования», Дональд Кнут
- «Жемчужины программирования», Джон Бентли
- «Путь программиста», Джон Сонмез
- «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
- «Алгоритмы. Построение и анализ», Томас Х. Кормен
- «Сам себе программист. Как научиться программировать и устроиться в Ebay?», Кори Альтхофф
- «Карьера программиста», Г. Лакман Макдауэлл
- «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
- «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
- «Совершенный код», Стив Макконнелл
- «Кодеры за работой. Размышления о ремесле программиста», Питер Сейбел
- «Мифический человеко-месяц», Фредерик Брукс
- «Программист-прагматик. Путь от подмастерья к мастеру», Дейв Томас, Энди Хант
- Codecademy — универсальная интерактивная платформа для обучения языкам программирования. Лычки, ачивки, геймификация — сплошная мотивация.
- Udacity — англоязычный ресурс для обучения программированию.
- Codewars — огромный сборник тестовых задач для тренировки навыков по любому языку программирования.
- Coursera — без комментариев, просто лучшая лекционная «солянка».
- MIT OpenCourseware — море курсов от Массачусетского технологического института.
неплохой обзор курсовогромная и свежая подборка
Поиск работы — как подготовиться
Получить работу начинающему разработчику может быть проблематично. Это не только вызывает стресс, но и работодатели часто предпочитают нанимать более опытных людей. Что поможет вам убедить работодателя в том, что вы станете ценным членом команды?
Прежде всего, помните о правильном отношении. Работодатель должен видеть, что вы хотите развиваться и учиться, и что вы готовы тратить на это время. Покажите ему свои домашние проекты, сайт, который вы сделали для друга, или игру, которую вы написали сами. Благодаря этому работодатель увидит, что программирование — это действительно ваша страсть.
Также помните, что не стоит возлагать большие надежды. Хотя опытные разработчики зарабатывают много, вы должны знать, что в начале карьеры вы не получите зарплату от 100 тысяч. С другой стороны, ИТ — одна из немногих отраслей, в которых возможно такое быстрое продвижение, поэтому не расстраивайтесь — всего через 3 года вы можете заработать значительно больше!
Не расстраивайтесь, если у вас не получится с первого раза. Найти работу — не самая простая задача не только в IT-индустрии. Всегда держите руку на пульсе и просматривайте новые предложения. Собеседования при приеме на работу, даже неудачные, являются для вас ценным опытом, из которого вы можете сделать выводы.
Инга Герасименко, HR-директор «БАРС Груп»
Одной из самых востребованных на сегодняшний день является профессия программиста. Нехватка специалистов в этой области настолько высока, что даже человек, не обладающий достаточным опытом работы, может легко найти себе место.
Мы не всегда набираем программистов именно с высшим образованием. Основная причина в том, что сейчас в вузах на факультетах программирования образование практически ничего не дает. Оно предлагает лишь базу и понимание того, как это вообще работает.
Но это не повод не идти в вуз. В Казани можно пойти учиться в КФУ, КХТИ хорошо готовит аналитиков, программистов — слабовато, но тем не менее. И еще не стоит упускать из внимания Техникум связи. Отличное заведение, для того чтобы прокачаться в современных языках программирования.
Поэтому, в любом случае, нужно подрабатывать, начиная со второго курса. Можно устроиться на полставки или работать стажером. Это обеспечит хороший бэкграунд к выпуску. Кроме того, необходимо развиваться самостоятельно. Есть хорошие онлайн-курсы, например: JavaRush, Otus, Ulearn.me, «ИНТУИТ», Microsoft Virtual Academy.
Пройдя их, можно получить знания в современных языковых программах, но это снова будет база. Желательно искать именно практическое применение: выполнять задачи на freelance-сайтах, а также работать с модулями.
Допустим, если это back-язык программирования, то к нему обязательно нужно изучать JavaScript. Кроме того, необходимо знать базы данных, иметь навыки в аналитике.
Кстати, не стоит пренебрежительно относиться к стажировкам в вузе. Мы с удовольствием набираем стажеров, давая возможность поработать на серьезных проектах и получить бесценный опыт.
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим язык программирования», а не система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.
Как научиться программированию
Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.
Есть еще такая теория как «10,000 hours rule». Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.
Где учиться?
- Книги. У нас в блоге выходила подборка лучших книг для изучения программирования. Рекомендуем к прочтению.
- Онлайн-курсы. В той же самой подборке о них тоже сказано несколько слов, но если вкратце, то можно заниматься в GeekBrains (рус), Яндекс Практикуме (рус), Codeacademy (англ), Coursera (в основном англ), Skillshare (в основном англ) и так далее.
- Видеоуроки на YouTube. Есть много хороших бесплатных курсов. В том числе записи уроков из платных видеокурсов прошлых лет — слитых или выложенных самими школами.
- Оффлайн школы и тренинги. Это самый дорогой способ научиться программированию, но самый эффективный. Под личным руководством наставника вам будет гораздо проще, ведь не придется задерживаться на одном месте.
Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.
Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.
Региональные особенности в распределении вакансий
Следует отметить, что есть региональные особенности в распределении вакансий в зависимости от языков программирования. В частности, в Москве проще всего будет найти работу программистам, которые пишут на SQL и Scala. Средний уровень зарплаты составляет 135 тысяч рублей и 205 тысяч рублей соответственно. Конечно, востребованными в столице являются и программисты 1С, и геймдизайнеры, но для представителей этих направлений средний уровень доходов составляет 80 тысяч рублей.
Интересно, что в Санкт-Петербурге также работу проще всего найти программистам, которые оперируют языком SQL, но уровень зарплаты составляет в среднем 108 тысяч рублей. Также востребованными являются программисты 1С. На высокий уровень зарплаты (свыше 200 тысяч рублей) могут рассчитывать те, кто работает с языком Solidity, но найти предложение работы будет гораздо сложнее.
Что касается других крупных городов, то и здесь SQL является лидером по числу вакансий. Например:
- в Новосибирске такие специалисты зарабатывают в среднем 83 тысячи рублей,
- в Нижнем Новгороде – около 71 тысячи рублей,
- в Казани – около 70 тысяч рублей,
- в Екатеринбурге – порядка 66 тысяч рублей в месяц,
- в Красноярске – примерно 65-66 тысяч рублей,
- в Челябинске – 64 тысячи рублей,
- в Ростове-на-Дону – около 50 тысяч рублей,
- в Уфе – всего около 48 тысяч рублей.
Также в Новосибирске могут найти работу те, кто пишут на Haskell – уровень доходов таких специалистов составляет 173 тысяч рублей ежемесячно. В Екатеринбурге есть вакансии для тех, кто работает с языком Golang (уровень зарплаты составляет 157 тысяч рублей, но вакансий не так уж много). В Красноярске есть предложения для программистов, пишущих на Kotlin – с зарплатой порядка 137 тысяч рублей. Правда, в этом городе проще всего найти работу программистам 1С. Уровень доходов в среднем невелик – 37 тысяч рублей, но зато эти специалисты востребованы.
Из других решений для бизнеса популярностью пользуется SAS, но специалистов в этой сфере не так много, поэтому уровень зарплаты достаточно велик. В столице, например, такой программист может получать до 500 тысяч рублей. В Ростове-на-Дону – около 400 тысяч рублей в месяц, но количество вакансий гораздо меньше.
В некоторых городах можно найти работу тем, кто владеет языком программирования Lua. Уровень зарплаты достаточно высок – например, в Нижнем Новгороде и Казани такие специалисты получают порядка 300 тысяч рублей.
Есть вакансии и для тех, кто пишет на языке Objective-C, правда, их тоже не так много. Например, в Омске такой специалист может получать 170 тысяч рублей, в Уфе – около 190 тысяч рублей, в Челябинске – 125 тысяч рублей.
Иван Цыплухин, сооснователь Krasa.io и Beet Lab Academy, бросил МФТИ на 2 курсе
В школьные годы я собирал компьютеры и изучал HTML. С одноклассниками сделали приложение-калькулятор алкоголя для вечеринок. Не сказать, что мы много на нем заработали, но 50 тысяч установок по РФ на тот момент уже было большой наградой. Это приложение стало началом карьеры для всех, кто участвовал в проекте.
Первой работой была стажировка в рекламном агентстве, а параллельно мне удавалось еще и программировать на фрилансе. Изучал все кусками по форумам и видеоурокам. В какой-то момент стало очевидно, что разработка IT-продуктов увлекает меня больше рекламы и приносит ощутимый доход.
Стереотип о необходимости диплома существует в голове у многих руководителей, особенно советской закалки. Вопрос в том, хотите ли вы продвигаться в компании с таким руководством или планируете работать с кем-то более прогрессивным.
В России очень сильное tech-community, но по факту все инновации идут с Запада. Coursera и Udemy, пожалуй, лучшие онлайн-курсы, и это самый простой способ начать осваивать любую IT-специальность.
Затем ищите задачки сложнее, идите на фриланс, придумывайте себе их сами. Вопросы можно искать на StackOwerflow и прочих аналогах. Через три-шесть месяцев практики будете готовы для стажировки или трудоустройства.
Стоимость обучения
Если ты не поступил на бюджет, то один год обучения тебе обойдётся примерно в $ 1500. Это зависит от университета и выбранной специальности. Таким образом, за четыре года образования студенты платят около шести тысяч долларов. Средняя стоимость курсов по разработке составляет $ 300. Сумма может зависеть от формы обучения, длительности и направления. Важный фактор, о котором не стоит забывать, что на старте практически во всех случаях зарплата у выпускника вуза и курсов будет одинаковая. Время «корочек» ушло, наступила эра навыков.
Если хочешь получить работу в ИТ-сфере, записывайся на ИТ-курсы с трудоустройством Адукар. Ты получишь необходимые знания и практические навыки самых востребованных профессий.
Спасибо, что дочитал до конца. Мы рады, что были полезны. Чтобы получить больше информации, посмотри ещё:
Не пропускай важные новости и подписывайся на наш YouTube, ВК, Instagram, и уведомления на adukar.by.
***
Если хотите разместить этот текст на своём сайте или в социальной сети, свяжись с нами по адресу info@adukar.by. Перепечатка материалов возможна только с письменного согласия редакции.
Специализации и перспективы по окончании учебы
Сфера занятости специалистов очень широка. В вакансиях их делят по 3 основным признакам. Во-первых, это ЯП, с которыми работает мастер (C++, Delphi, PHP, Python, Jawa и т. д.). Квалифицированный специалист владеет минимум 2−4 языками.
Во-вторых, это, собственно, вид деятельности:
- системное ПО (написание полноценных платформ типа Windows или Linux);
- прикладное ПО (онлайн-калькулятор, аналитические системы, CRM для бизнеса);
- веб-разработка (сайты, лэндинги);
- создание мобильных приложений;
- геймплей;
- офисные приложения и т. д.
В-третьих, это типы задач, которые решает мастер (front-end, back-end, десктоп-разработчик, настройка 1С или Битрикс, архитектура ПО, системная инженерия). Направлений на самом деле может быть очень много. Что тоже определяет преимущество выбора специализации.
Перспективы трудоустройства
Мастер по написанию программного кода может работать где угодно. Больше всего в нем заинтересованы крупные IT-компании, занятые разработкой программного обеспечения. Здесь же — стартапы, digital-агентства, студии создания и продвижения сайтов.
Вся индустрия киберспорта тоже остро нуждается в экспертах с отличным знанием популярных технологий геймдевелопмента и языков. В компаниях всех профилей (от производства газированных напитков до добычи полезных ископаемых) есть собственные ИТ-отделы, где тоже нужны представители этой ниши.
Карьера
Первые 0,5−1 год работы с кодами — это уровень junior. Его успешно проходят во время учебы (особенно если это дистанционная учеба), чтобы сразу по факту выпуска стартовать с принципиально иного размера заработной платы. 1−3 года стажа — это уже уровень middle. Мастер с опытом от 4 лет может претендовать на руководящие должности (senior).
Доход
Зарплаты у junior начинаются с 35−50 тыс. рублей. Хотя здесь все осень приблизительно. На фриланс-рынке, например, даже новичок при активной работе может зарабатывать и 100 тыс. рублей в месяц, и даже больше. Оплата услуг «миддлов» — на уровне 70−120 тыс. в месяц. Senior получает 100−260 тыс. в месяц.
Адрес поступления:
Москва, Ленинградский пр-т. д. 80, корп. Г (м. Сокол) Москва, ул. Измайловский вал, д. 2, корп. 1 (м. Семеновская)
Телефон: 8 (800) 100 00 11
График работы приёмной комиссии:Пн — Пт: 09.00−20.00;Сб — Вс: 10.00−17.00.
Трудоустройство
Первое, что волнует выпускников курсов и в чём часто заранее уверены выпускники университетов — это трудоустройство. Руководство хороших центров рекомендует талантливых выпускников в компании-партнёры и выдаёт сертификаты. Но гарантией трудоустройства являются не диплом или сертификат курсов, а талант и умения.
ИТ-компании в основном настроены одинаковы по отношению к выпускникам вузов и курсов
Им важно наличие знаний, навыков и желания. А этот набор зависит от подготовки каждого кандидата в отдельности
Да, мы принимаем кандидатов, закончивших лишь курсы. Для нас больше веса имеют опыт и знания человека, его квалификация, а не то, что написано у него в дипломе. Требования к кандидатам со сторонних курсов ничем не отличаются от всего того, что предъявляется к кандидатам в целом. Техническое интервью человек в любом случае проходит сам, и тут роль сыграют только его знания и навыки, — рассказали dev.by в EPAM Systems.
Если ты готов, как и все новички, начинать с позиции джуна без опыта и не рассчитывать на высокую зарплату сходу, то у тебя есть все шансы найти работу в ИТ-компании и постепенно расти.
«Из негативных моментов можно отметить, что часто у выпускников курсов какие-то нереальные требования, в частности, по зарплате», — рассказали в Viber.
Как может развиваться карьера программиста?
В программировании есть два пути развития:
- Горизонтальный. Специалист расширяет компетенции, становится экспертом в своей области, формально оставаясь на той же должности. Происходит нишевание. Чем выше экспертность, тем выше востребованность разработчика и, соответственно, зарплата. Это развитие по вектору от Junior к Middle и далее к Senior.
-
Вертикальный. От разработчика – к руководителю команды. Как правило, чтобы стать руководителем, необходимо вначале продвинуться на позицию Senior-программиста.
Отличия между Junior, Middle и Senior
Границы тут условные. Нельзя сказать, что отработав условные 5 лет, человек точно перейдет в категорию Middle — некоторые и за 10 лет могут не нарастить скиллов для этого уровня.
В таблице приведены усредненные значения, от которых можно отталкиваться в оценке уровня специалиста.
Junior |
Middle |
Senior |
|
Опыт работы |
0,5-2 года |
2-5 лет |
от 5-7 лет |
Знания и навыки |
|
|
|
Задачи, которые решает |
|
||
Ответственность |
Минимальная |
За конкретный проект или функционал, которые написал сам. |
Отвечает за архитектуру, скорость и эффективность всего кода проекта или компании. |
Зарплата |
$500-1000 |
$1000-2000 |
$2500-6000 |
Нужно понимать, что в разных компаниях требования по задачам и навыкам различны. Оплата труда тоже отличается. Например, Middle в одной компании может получать, как Senior в другой или даже больше.
Приведенная классификация не означает, что позиция Senior — вершина карьеры программиста. Всегда есть, куда расти.
Куда может расти Senior-разработчик?
После нескольких лет работы на позиции Senior программист может вырасти до:
- Software Architect. Архитектор ПО проектирует программные решения и продумывает, как именно будут взаимодействовать между собой компоненты системы.
- Team Lead. Рост идет в менеджмент: организация процесса работы по проекту, распределение задач, ответственность за результат всей команды.
- Project Manager. Функционал расширяется еще больше: управление командой, распределение задач, риск-менеджмент, знание смежных отраслей.
-
Delivery Manager. Такой специалист совмещает функции Software Architect и Project Manager. Это относительно новая позиция и встречается пока редко.
Нужно ли высшее образование программисту?
Этот вопрос сломал не один десяток устойчивых мнений и разрушил столько же взаимоотношений. На самом деле, не существует однозначного ответа, но в то же время ответ лежит на поверхности.
«Программист» — это очень и очень широкое понятие, которое охватывает сотни разнообразных специальностей. Но даже в одной специальности по программированию в одном случае «вышка» будет нужна, а в другом — не нужна абсолютно. Почему так происходит? Допустим, вы талантливый программист, который ищет себе работу. Большинство частных компаний и стартапов в первую очередь попросят вас доказать свои знания и опыт и презентовать проекты, в которых вы участвовали, а потом собственными тестами и задачами проверят вашу квалификацию. Если подойдете, то вас возьмут на работу, даже если у вас на руках будет диплом «ПТУшника». Но если вы со своими «талантами программиста» попытаетесь устроиться в госпредприятие, то, скорее всего, у вас в первую очередь спросят диплом об образовании.
Талантливые программисты нужны везде, но если у него еще будет профильный диплом об окончании вуза, то работу найти будет проще. При этом, анализируя ресурсы, где размещены вакансии для программистов, например, superjob.ru, stackoverjlow.com, hh.ru, получается, что больше 70% всех вакансий не требуют высшего профильного образования, а только опыт. Остальные 30% примерно наполовину разделяются между теми, кому нужно просто высшее образование, и теми, кому необходимо именно профильное.
В общем, можно смело констатировать тот факт, что большинство IT-шных специалистов не имеют профильного образования, тем более высшего, а приходят в специальность самостоятельно через курсы, книги и много практики. Почему именно таким путем? Потому что обучающие программы по программированию в вузах не успевают за требованиями в программировании. Онлайн-школы и прочие площадки для самообучения быстрее адаптируют свой материал под нужды современного программирования.
Но раз вы все-таки ищете вузы программирования в России, то давайте будем разбираться с этим вопросом.
Как стать программистом Java
Программистом Java стать чуть сложнее, ведь вся разработка происходит в написании кода. И никакие визуальных компонентов для разработки нет. Для начала потребуется выучить Java Core (основные объекты которые предоставляет Java) и ознакомится с парадигмой программирования ООП. После того, как Java Core изучен на достаточном уровне и пришло понимание основных вещей (таких как массивы, списки, многопоточность и т. д.) — то этого вам пока все равно не достаточно, чтобы получить какую либо работу. Следует углубиться в знаниях и изучить работу с базами данных (sql, nosql), научиться самому создавать простейшую базу и писать запросы.
Чтобы стать полноценным разработчиком на Java, нужно так выучить трендовый фреймворк (предположим, Spring с использованием Springboot). Это позволяет ускорить разработку в несколько раз, да и сейчас, если честно, никто не пишет ничего на “чистой Java”, потому что это занимает достаточно много времени.
Подобных знаний будет вполне достаточно, чтобы стать Junior Java developer. Свои навыки рекомендую проверять, решая алгоритмические задачи на таких ресурсах, как Codewars, HackerRank и прочие. Конечно же, вам всегда нужно знание алгоритмов и структур данных, без этого далеко не продвинетесь по карьерной лестнице.
Свое первое приложение я разработал за месяц
Короче говоря, приложение я сделал буквально за месяц. Самыми полезными источниками знаний стали Developer.android.com и все тот же Stackoverflow.com. Самое интересное, что рутинный процесс выкладывания приложения в Google Play занял целых два месяца. Хотя, может быть, все продолжалось так долго, потому что после разработки мой запал немного подостыл. А немного позже я разработал веб-версию приложения, прочитав книгу Beginning Java EE 7.
Вдобавок я не хочу ни в коем случае умалять значение университетского образования и говорить: «Зачем все это нужно? Вот, посмотрите, все получилось и так». Нужно. Университет на самом деле дает очень много и, может, самое главное – воспитывает привычку учиться.
И все же: программировать можно научиться самому. Теперь я это точно знаю.
Материалы по теме: