Как стать разработчиком с нуля

Содержание

Свое первое приложение я разработал за месяц

Короче говоря, приложение я сделал буквально за месяц. Самыми полезными источниками знаний стали Developer.android.com и все тот же Stackoverflow.com. Самое интересное, что рутинный процесс выкладывания приложения в Google Play занял целых два месяца. Хотя, может быть, все продолжалось так долго, потому что после разработки мой запал немного подостыл. А немного позже я разработал веб-версию приложения, прочитав книгу Beginning Java EE 7.

Вдобавок я не хочу ни в коем случае умалять значение университетского образования и говорить: «Зачем все это нужно? Вот, посмотрите, все получилось и так». Нужно. Университет на самом деле дает очень много и, может, самое главное – воспитывает привычку учиться.

И все же: программировать можно научиться самому. Теперь я это точно знаю.

Материалы по теме:

Почему я выбрал Java?

  • На мой взгляд, Java – едва ли не единственный язык программирования, от начала изучения которого до получения конечного продукта проходит не так много времени. Возможно, я такой человек, которому хочется поскорее «пощупать» результат. Чистая теория меня не очень привлекает.
  • Передо мной стояла определенная цель. Я понимал, что работу программиста мне получить будет крайне сложно, необходимо на будущем собеседовании показать хоть что-то и сказать: «Опыта работы нет, диплом тоже – не совсем то, что нужно, но зато есть вот это – посмотрите». Но, к счастью, я получил работу через стажировку.
  • Сейчас есть огромное количество разнообразных руководств для разработки приложений для ОС Android. Так что здесь у меня буквально все сходилось: и материалов для обучения достаточно, и существовала возможность сравнительно быстрого получения легко осязаемого результата.

Одним словом, после короткого курса C++ я взялся за какое-то руководство по Java для начинающих. Не помню, как оно называлось, помню только, что я бросил его читать, не добравшись и до середины. Мне хотелось поскорее «прогать».

Много ответов на свои вопросы я нашел в этом телеграм-канале.

Как поступить в университет?

Процедура такая же, как и для поступления в колледж: выберите понравившийся ВУЗ, изучите перечень документов и специальностей, и в период приема документов подайте заявку и документа. После подачи заявления, может потребоваться пройти дополнительное собеседование или тестирование. В определенное время будут размещены результаты приемной комиссии и абитуриент сможет узнать, принят он в университет или нет.

Программа обучения

В университетах довольно много направлений, которые позволяют выучиться на IT-шника.

Вот некоторые из них:

  • Администрирование систем и математическое обеспечение.
  • Информационные технологии.
  • Фундаментальная информатика.
  • Вычислительная техника и информатика.
  • Программная инженерия.

Для каждой специальности своя программа обучения, которую нужно уточнять в соответствующем ВУЗЕ.

Формы, срок обучения

В разных университетах сроки могут отличаться, но в среднем необходимо проучиться 4 года. Форм обучения две — очная и заочная. В некоторых ВУЗах может быть и очно-заочная или вечерняя форма.

Преимущества работы

Первое, это, конечно же, достойная заработная плата. В данной сфере труд высококлассных специалистов оплачивается весьма неплохо. Зарплаты тут гораздо выше средних. Опытный специалист в месяц может получать от 60 до 100 тысяч рублей.
Высокий спрос. Многие компании осознают необходимость привлечения программистов, которые помогут улучшить бизнес и поднять показатели. Помимо этого, на рынке большое количество компаний, которые работают конкретно с программистами. Перед новичками предстает огромное поле действий — найти место не составит большого труда, но постараться, чтобы найти более выгодные условия, все же придется.
Свободный график. У многих компаний есть возможность трудоустройства с рабочим графиком. Это отличная возможность планировать свой день так, как хотелось бы

Важно успевать сдавать проекты вовремя, а когда сотрудник будет выполнять свою работу — не так уж важно. Но некоторые работодатели все же настаивают на физическом присутствии работников в офисе компании.
«Свобода» творчества

Привилегия обучения в том, что есть большой выбор направлений, в которых можно себя испробовать. Можно тестировать приложения, создавать игры, операционные системы. Если не нравится одна область, можно за довольно короткий срок переучиться, после начать работу в другой области. Это еще один весомый плюс. Работа приносит удовольствие.
Возможность карьерного роста. Успешных специалистов зачастую ставят по главе отдела или организации. Помимо этого, чем опытнее специалист, тем выше оплачивается его труд. Есть возможность поехать за границу и испробовать свои силы там.

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

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

Это не самая легкая профессия, но тем, кто усердно учится и работает, удается приобрести ценный опыт и найти достойное высокооплачиваемое место работы.

Адрес поступления:

Москва, Ленинградский пр-т. д. 80, корп. Г (м. Сокол) Москва, ул. Измайловский вал, д. 2, корп. 1 (м. Семеновская)

Телефон: 8 (800) 100 00 11

График работы приёмной комиссии:Пн — Пт: 09.00−20.00;Сб — Вс: 10.00−17.00.

Кто участвовал в обсуждении:

  • Антон Назаров — iOS & C++ разработчик в Grid Dynamics, спикер AppsConfRussia и Moscow Python.
  • Анна Оглузина — рекрутер в «Мегафоне», отвечает за подбор разработчиков.
  • Александр Максимкин — джуниор-веб-разработчик, выпускник «Яндекс.Практикума».
  • Валентин Домбровский — сооснователь в MoscowPython и Geekfactor.io, CEO DryLabs, сооснователь курсов программирования LearnPython.
  • Дмитрий Карпов — Python-разработчик, выпускник Skillbox.
  • Николай Мельников — руководитель Sebbia.
  • Илья Космачев — джуниор-веб-разработчик, выпускник «Яндекс.Практикума».
  • Юрий Иванов — руководитель группы подбора и адаптации, HR-менеджер в «Симбирсофт».

— Что лучше: вуз с профильным образованием, стажировка или курсы?

Николай Мельников: Из Skillbox мы взяли 1 человека из 4 — то есть 25%. И хотя выборка довольно маленькая, по опыту других наших эйчар-активностей это хороший показатель. Например, мы активно сотрудничаем с вузами, но там только 1 подходящий соискатель из 10. Был небольшой опыт работы с «Яндекс.Практикумом» — там показатель 1 из 7.

Дополнение редакции

Вуз не спасёт, если есть пробелы в знаниях. Высшее образование не всегда учит работать с современным стеком технологий, да и уровень выпускников-программистов зачастую весьма посредственный. Большинство технических директоров считает, что высшее образование для соискателя совсем не обязательно. Обязательны только знания и навыки.

Юрий Иванов: Профильное образование — не ключевой фактор. У нас сеньором фронтендеров работал человек с дипломом психолога-педагога.

Антон Назаров: Если вы уже что-то знаете, можно попробовать стажировку. Я сам начинал со стажировки. Преимущество — взрослые опытные специалисты, которые помогут и научат. Если базовых знаний нет, стоит пойти на курсы. Но тут как с годовым абонементом в фитнес-зал «с 1 января»: можно его купить, а в итоге посетить только пару тренировок. Поэтому лучше отдавать предпочтение курсам с балльной системой, геймификацией, постепенным открытием доступа к материалам и жёсткими дедлайнами. Курсы, на которых нужно только смотреть видео, лучше обходить стороной. Хорошо, когда есть ментор, который ответит на вопросы и направит.

Работа для школьников

Даже школьники, согласно законодательству, могут заинтересоваться, кем же работать в России. Это должна быть не полная занятость, а небольшая подработка, которая не будет мешать учебному процессу.

Полноценное официальнее устройство возможно с 16 лет, допустимо выйти на работу с 14, если есть разрешение от родителей или органов опеки. Для детей открыт ряд вакансий, где можно начать свой путь к самореализации и зарабатывать первые деньги.

Где искать вакансии

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

  1. Государственные программы. Следует узнать, есть ли в конкретном регионе условия для трудоустройства подростков, скорее всего они реализуются с помощью биржи труда.
  2. Знакомые и родственники. Нередко место можно получить у тех, кто просто хочет позаботиться о ребенке. Так родителям будет спокойнее, а школьник заработает первые деньги.
  3. Разовые подработки. Это может быть раздача листовок или же другая операция, которую требуется провести лишь один раз.

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

Условия

Трудовое законодательство дает возможность школьникам вырабатывать урезанную норму. До 16 лет норма составляет 4 часа в день, при этом в неделю – не свыше 24. Если речь идет о детях старше 16-ти, можно работать по 7 часов и 35 часов в неделю, но при этом требуется предоставить справку об окончании школы.

Задача работодателя – организовать график таким образом, чтобы не мешать учебному процессу

Крайне важно, чтобы дети трудились максимум до 21:30, т. к

нужен полноценный ночной отдых.

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

Предложения на рынке труда

Фактически в крупных городах несовершеннолетние действительно способны зарабатывать в районе 10-20 тысяч рублей при неполной занятости с соблюдением всех норм закона. Конечно, количество мест ограничено, но выбор все же есть:

  1. Промоутер. Например, раздача рекламных листовок, размещение объявлений, разнос газет по квартирам. Можно договориться о гибком графике и сдельной заработной плате.
  2. Курьер. Работа требует активных перемещений и соблюдения аккуратности. При этом можно использовать самокат или велосипед для увеличения скорости.
  3. Озеленение. Для получения вакансии можно обратиться в ЖКХ. В сезон школьнику могут предложить уборку листвы, уход за клумбами и иную подобную работу.
  4. Выгул домашних животных. Это большая ответственность за питомца, но со многими породами легко справится даже подросток.
  5. Работник общепита. Школьнику нельзя работать с деньгами, но в роли официанта или помощника на кухне он вполне может выступать.
  6. Аниматор. Детям, обладающим чувством юмора и умением ладить с малышами, точно подойдет эта профессия.
  7. Вожатый в лагерь. Идеальная подработка для старшеклассников на период летних каникул.

Начальные трудности: как не бросить все сгоряча

На первом этапе все свободное время приходилось тратить на освоение базовых вещей в программировании и получение стартового опыта. Потом стало легче и появилась возможность вести еще какую-то жизнь вне работы и учебы.

Когда я изучал верстку, поначалу делал все на чистом CSS и сложно было перейти на препроцессоры типа SASS. Но потом я переборол стремление «оставаться в зоне комфорта» и теперь не представляю своей работы без использования SCSS.

Фото: Unsplash

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

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

В самом начале изучения JavaScript у меня пару раз были мысли все бросить. Но, несмотря на трудности, мне все еще было интересно. Я вспомнил, как загорелся идеей развиваться в этом направлении. Продолжил учиться, преодолел «пик непонимания» и окончательно решил сделать веб-разработку своей профессией.

Какое образование нужно программисту

Теоретическая и практическая подготовка будущих специалистов важна и ценна. Но то, какое образование нужно программисту, зависит только от его целей.

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

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

Выбор направления разработки и языка программирования

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

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

Приводим актуальные направления, которые будут популярны как минимум десятилетие:

Получение образования: выбор школы и университета

Стать программистом с нуля самостоятельно можно, как и выучить английский. Но гораздо эффективнее иметь наставника, четко разработанный план занятий и возможность получения консультаций. Разумным вариантом будет выбрать школу или университет. В эру развития интернет-технологий можно ограничиться дистанционным образованием, которое предполагает консультации, а не представляет собой архив видеозаписей или книг.

При выборе популярных курсов программирования следует отдавать предпочтение именно популярным и авторитетным онлайн-школам, а не частным специалистам, квалификация которых может вызывать вопросы:

Качественные курсы по разным направлениям предлагает учебный центр «Специалист.ru» при МГТУ им. Н. Баумана. Здесь можно изучить Kotlin, Golang, стать экспертом в разработке VR-AR, изучить геймдизайн, познакомиться с интернетом вещей.

Skillbox — один из лучших онлайн-университетов востребованных профессий. Направления — программирование, дизайн, маркетинг, управление. Компания предлагает обучение, а после помогает устроиться на работу программистом в одну из известных компаний: Альфа-Банк, Мегафон, Яндекс, Сбербанк, МТС и другие

С помощью Skillbox вы можете стать веб-дизайнером, интернет-маркетологом, графическим дизайнером, UX-дизайнером, Java-разработчиком, SEO-специалистом, руководителем digital-проектов.
Стоит обратить внимание и на веб-сайт Udemy.com, который предлагает самый большой выбор онлайн-курсов в мире. Введите в поисковую строку слово «программирование», и сервис сам предложит самые популярные поисковые запросы и востребованные направления обучения:

Развитие своих профессиональных навыков

  • «Чтобы оставаться на месте, надо бежать» — в современном мире эта фраза характеризует многие сферы деятельности и лучшим образом подходит для профессионального кредо программиста. Учиться и развиваться стоит не только для того, чтобы повысить свою привлекательность на рынке труда, но и чтобы банально не стать невостребованным.
  • Сколько времени нужно чтобы стать программистом? Вы должны были слышать о правиле 10 тысяч часов авторства Малкольма Гладуэлла, согласно которому для достижения уровня настоящего мастера (в нашем случае — чтобы войти в 1% лучших программистов) требуется потратить на изучение определенного навыка в общей сложности 10 тысяч часов. Это правило не работает в сфере IT. Намного меньше, в отдельных случаях меньше года, но если вы перестанете изучать новые технологии, через 5 лет ваши карьерные перспективы будут достаточно туманными. В сфере IT учиться придется всегда!
  • Участвуйте в сообществах, чатах, форумах, конференциях. Это бесплатно, познавательно и интересно. Крупными русскоязычными сообществами для программистов являются Habr.com, Киберфорум и другие. Если профессионально развиваетесь в определенной сфере, вам могут быть полезны тематические сообщества — такие как форум программистов Java, где можно попросить совета, помощи, найти друзей, работу Android разработчиком, работу программистом Java.
  • Читайте специализированную литературу. Казалось бы, книги — устаревший способ получения информации, но нет, принципы программирования неизменны уже много лет. Программисту любого уровня можно рекомендовать чтение литературы об архитектуре, организации кода, паттернам проектирования, ООП. Уже более 25 лет не может потерять популярности легендарное издание Gang of Four: Design Patterns.
  • Пишите код не только на заказ, но и для своих проектов. Они станут важным элементом вашего портфолио, так как свидетельствуют об инициативности. Американские работодатели очень лояльно относятся к соискателям, у которых есть тематический блог или YouTube-канал на английском языке о своих разработках.

С чего начать и где учиться?

Можно пройти онлайн-курсы, на которых освоить теорию, получить практику и подготовиться к поиску работы. В таблице собраны примеры программ, которые подходят новичкам:

Название курса и ссылка на него

Описание

Курс в Нетологии, выпускники которого могут получить приглашение на собеседование в Альфа-Банк. Обучение включает вебинары, лекции и практику. Выдают диплом о профессиональной переподготовке.

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

Эта программа ведется совместно с Альфа-Банком. Лучшие выпускники могут получить работу. Программисты на Java востребованы и хорошо зарабатывают. На этом языке пишут приложения, сайты, игры и многое другое.

Курс в университете Skillbox. Подойдет людям, которые хотят заниматься разработкой мобильных приложений на Android и iOS. Для прохождения курса потребуется MacBook.

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

На нашем сайте также есть другие полезные материалы:

  • Как выучить PHP самостоятельно с нуля?
  • Как научиться создавать сайты?
  • Как выучить язык Python?
  • Сайты для изучения программирования на русском языке
  • Биржи для фрилансеров

Мы рассказали о профессиях программиста и тестировщика и что выбрать в зависимости от ваших желаний и задач. Сейчас ИТ на подъеме и специалисты востребованы. В одной сфере легче найти работу, в другой можно больше заработать.

Рекомендуем

Профессия модератор группы

Модератор группы – профессия, которую можно быстро освоить самостоятельно. Она подойдет тем, кто хочет подработать в интернете, но не обладает …

Профессия редактор

Редакторы – это высший командный состав среди пишущих людей. Они организуют авторов и управляют изданиями. Например, популярным журналом или …

Как научиться программированию

Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.

Есть еще такая теория как «10,000 hours rule». Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.

Где учиться?

  • Книги. У нас в блоге выходила подборка лучших книг для изучения программирования. Рекомендуем к прочтению.
  • Онлайн-курсы. В той же самой подборке о них тоже сказано несколько слов, но если вкратце, то можно заниматься в GeekBrains (рус), Яндекс Практикуме (рус), Codeacademy (англ), Coursera (в основном англ), Skillshare (в основном англ) и так далее.
  • Видеоуроки на YouTube. Есть много хороших бесплатных курсов. В том числе записи уроков из платных видеокурсов прошлых лет — слитых или выложенных самими школами. 
  • Оффлайн школы и тренинги. Это самый дорогой способ научиться программированию, но самый эффективный. Под личным руководством наставника вам будет гораздо проще, ведь не придется задерживаться на одном месте.

Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.

Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.

В вузах учат по устаревшим программам и технологиям, которыми никто не пользуется

Где тут правда. К сожалению, так иногда бывает, особенно в небольших вузах. Или там, где вуз в основном гуманитарный, а под IT выделяется один факультет или кафедра. Там вас вполне могут два года учить кодить на Паскале или рассказывать об азах схемотехники по учебникам времён СССР. Основы — это хорошо, но часто им уделяют много времени — и за ними не следует ничего.

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

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

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

Например, так выглядит программа курса для веб-разработчиков от РАНХиГС и Skillbox: здесь уже гораздо больше современных и актуальных технологий

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

Инга Герасименко, HR-директор «БАРС Груп»

Одной из самых востребованных на сегодняшний день является профессия программиста. Нехватка специалистов в этой области настолько высока, что даже человек, не обладающий достаточным опытом работы, может легко найти себе место.

Мы не всегда набираем программистов именно с высшим образованием. Основная причина в том, что сейчас в вузах на факультетах программирования образование практически ничего не дает. Оно предлагает лишь базу и понимание того, как это вообще работает.

Но это не повод не идти в вуз. В Казани можно пойти учиться в КФУ, КХТИ хорошо готовит аналитиков, программистов — слабовато, но тем не менее. И еще не стоит упускать из внимания Техникум связи. Отличное заведение, для того чтобы прокачаться в современных языках программирования.

Поэтому, в любом случае, нужно подрабатывать, начиная со второго курса. Можно устроиться на полставки или работать стажером. Это обеспечит хороший бэкграунд к выпуску. Кроме того, необходимо развиваться самостоятельно. Есть хорошие онлайн-курсы, например: JavaRush, Otus, Ulearn.me, «ИНТУИТ», Microsoft Virtual Academy.

Пройдя их, можно получить знания в современных языковых программах, но это снова будет база. Желательно искать именно практическое применение: выполнять задачи на freelance-сайтах, а также работать с модулями.

Допустим, если это back-язык программирования, то к нему обязательно нужно изучать JavaScript. Кроме того, необходимо знать базы данных, иметь навыки в аналитике.

Кстати, не стоит пренебрежительно относиться к стажировкам в вузе. Мы с удовольствием набираем стажеров, давая возможность поработать на серьезных проектах и получить бесценный опыт.

Как может развиваться карьера программиста?

В программировании есть два пути развития:

  1. Горизонтальный. Специалист расширяет компетенции, становится экспертом в своей области, формально оставаясь на той же должности. Происходит нишевание. Чем выше экспертность, тем выше востребованность разработчика и, соответственно, зарплата. Это развитие по вектору от Junior к Middle и далее к Senior.
  2. Вертикальный. От разработчика – к руководителю команды. Как правило, чтобы стать руководителем, необходимо вначале продвинуться на позицию 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. Это относительно новая позиция и встречается пока редко.

Как устроиться программистом без опыта работы?

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

  • у такого специалиста есть основная база знаний, а остальному можно научить, если будет желание обучаться;

  • таких специалистов нет необходимости «переучивать», и поэтому можно «подтесать» под нужды компании, так как многие закоренелые спецы — это уже устоявшиеся собственные правила, которым они следуют, несмотря ни на что, а значит, переучиваться не будут;

  • молодые специалисты «стоят дешевле», чем специалисты с опытом, которым за такую же работу нужно будет платить намного больше;

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

Такие вакансии не редкость, но их нужно активно поискать. Почему активно? Потому что опытный специалист часто добивается новой работы за счет своего опыта и внушительного резюме. А молодому специалисту пока похвастаться нечем, поэтому нужно активно мониторить новые вакансии, обязательно созваниваться и просить тестовое задание, чтобы доказать свою профпригодность на деле.

Артем Кротов, cтарший архитектор приложений в «Райффайзенбанке»

Для того чтобы стать программистом начального уровня, оканчивать вуз необязательно — достаточно выучить один или несколько языков программирования.

Большое количество базовых курсов можно найти на «ИНТУИТ», Coursera, GeekBrains, курсы разного уровня есть в HackerU, которые предлагают также последующее трудоустройство.

Однако тем, кто хочет стать по-настоящему первоклассным инженером, отсутствие базы — высшего технического образования — как раз может помешать. Конечно, вузовские программы подготовки инженеров не нацелены на получение передовых знаний и опыта в разработке ПО, но от академического образования этого и не требуется.

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

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

Здесь, кроме профессиональных характеристик, обретают важность так называемые soft-skills: общительность, презентационные навыки, эмпатия. Сегодня программист не работает в одиночку — в компаниях разработка обычно ведется в командах, и результат во многом зависит от слаженности их работы

Они также пригодятся для обмена опытом на митапах или конференциях и для обсуждения сценариев использования ПО с пользователями.

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

Изучение алгоритмов

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

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

  1. Р. Лафоре «Структуры данных и алгоритмы Java» (2011).
  2. А. Бхаргава «Иллюстрированное пособие для программистов и любопытствующих» (2019).
  3. Т. Кормен «Алгоритмы: вводный курс» (2016).