Как стать разработчиком с нуля
Содержание:
- Анна Айрапетова, глава разработки p2b-платформы Penenza.ru
- Где искать работу без образования, но с опытом?
- Почему курсы не заменят высшее образование
- Как я нашел работу: сначала фриланс, затем — удаленку
- Дмитрий Уткин, техлид направления Machine Learning, группа компаний Neti
- Специалисты с темным прошлым и светлым будущим
- Front или Back? Ответ — Fullstack!
- Финальное решение
- Стоит ли становиться программистом?
- Пошаговое руководство: как стать программистом
- Как поступить в университет?
- Выбираем специализацию
- Лучшие книги и средства обучения
- Особенности профессии
- Инга Герасименко, HR-директор «БАРС Груп»
- Длительность обучения и навыки
Анна Айрапетова, глава разработки p2b-платформы Penenza.ru
В моей команде был разработчик, у которого было техническое образование (техникум). Он был «владельцем» самостоятельного отчуждаемого модуля.
Из вузов рекомендую МГТУ им. Баумана, МИФИ, МАИ. МГУ, как ни странно, не лучший в этом списке, по моему опыту. В целом, не имеет особого значения, какой вуз. Главное, чтобы он был техническим.
У меня есть, помимо образования, и общие рекомендации ко всем разработчикам.
33% успеха — это профессиональные навыки, то есть знание технологий и языков программирования. Сейчас очень многие смотрят в сторону open source-технологий, поэтому востребованы специалисты, пишущие на Python, GoLang, Java и имеющие опыт работы с базами данных Postgres, MongoDB, Redis, интерфейсами обмена данными KAFKA.
Вторая треть — личностные качества. Дотошность, ответственность, вдумчивость, креативность, любознательность и интерес к новым технологиям. И да, коммуникабельность тоже важна, хотя и принято считать, что все разработчики интроверты.
И, конечно, опыт!
Где искать работу без образования, но с опытом?
Когда опыт работы есть – это большой плюс при устройстве на работу, даже если вы хотите попробовать себя в другой сфере. Прежде чем пойти на перемены:
- узнайте, нужно ли специальное высшее образование;
- прикиньте, сможете ли вы написать в резюме об опыте работы, соответствующей позиции;
- пройдите курсы и стажировки, если это целесообразно.
Какие должности получают с определенным опытом или пройдя курсы:
Интернет маркетолог, который занимается продвижением бизнеса в интернете. Если есть опыт в сфере продаж, можно немного поучиться и работать в интернете, даже на удаленке.
SMM-специалист, продвигающий бренды в соцсетях. Если вы работали в рекламе, занимались копирайтингом, то вам не сложно будет освоить новую профессию.
Репетитор – профессия, на которой зарабатывают не только учителя, но и студенты. Хорошо знаете русский, математику или иностранный язык? Почему бы не попробовать заняться репетиторством? Тем более, что вы преподавание по скайпу не исключено.
Стилист, задача которого сформировать определенный стиль для клиента
Любите заниматься гардеробом, прическами, макияжем? Понимаете, что к чему? Тогда профессия не вызовет у вас проблем.
Модель, для которой важно умение позировать. У вас есть актерский талан, вы фотогеничны, легко перевоплощаетесь. Тогда профессия для вас.
Актер, играющий на сцене и в кино
Хотя есть учебные заведения, готовящие актеров, многие знаменитости не имеют специального образования.
Фотограф. Если вы увлекаетесь фотографией, то рискните превратить хобби в профессию.
Почему курсы не заменят высшее образование
По своему смыслу и результату курсы сильно отличаются от вузов. Образовательных стандартов здесь как таковых нет, а учебные программы разрабатываются исходя из востребованности у аудитории. Это справедливо как для платных, так и для бесплатных курсов.
Именно поэтому на рынке так много курсов «Как научиться делать типовые сайты за один день» и нет курсов, например, про теорию графов и другие фундаментальные вещи — на них просто никто не придет, потому что они не позволяют сразу начать зарабатывать.
Относительно курсов я бы дал три совета.
Начинать свой путь в программировании с курсов — не лучшая идея
Если вы только начинаете осваивать специальность, сначала лучше найти учебник или видеоуроки и разобраться в основах программирования самостоятельно. В процессе придет понимание очень многих вещей: действительно ли вам это интересно, какие области по-настоящему привлекают. После этого уже можно попробовать подобрать себе более узконаправленные и прикладные курсы.
Разработчики на новогоднем корпоративе. Фото: архив компании
Выбирать курсы нужно не по вывеске, а по содержанию
Качество курсов сильно зависит от уровня преподавателей, поэтому лучше идти туда, где преподают программисты-практики — люди, которые 90% времени работают непосредственно в той предметной области, о которой рассказывают, и имеют актуальные кейсы.
Вуз все-таки предпочтительнее
Если есть возможность пойти в вуз на ИТ-специальность, а не на курсы, лучше выбрать вуз. В будущем это обеспечит более высокую заработную плату (за счет способности решать более сложные задачи, конечно, а не по факту самого диплома) и более легкое освоение нового материала.
Уже работающим программистам — и с дипломом, и без — для повышения квалификации можно посоветовать посещение профильных мероприятий, где разбирают практические кейсы: DevConf, конференцию разработчиков высоконагруженных систем HighLoad++ и некоторые другие.
***
Таким образом, диплом ИТ-вуза для программиста сегодня не обязателен, но все же желателен. Это открывает более широкие карьерные и зарплатные перспективы, облегчает профессиональное развитие и позволяет усиливать компетенции коллег по работе фундаментальными знаниями.
Мы поступаем именно так: подбираем тестовое задание в соответствии с уровнем кандидата, а потом просим подробно рассказать, как он его выполнял. Это позволяет увидеть главное: тип мышления, внимательность, степень вовлеченности в профессию.
Спасибо за внимание и успехов в карьере!
Материалы по теме:
Как я нашел работу: сначала фриланс, затем — удаленку
Постоянную официальную работу я нашел недавно — на ней в основном создаю фронтенд-компоненты на React. А начинал я с заказов от знакомых.
Оказывается, веб-разработка — настолько востребованное дело, что достаточно всем рассказывать, чем занимаешься, и клиенты начинают появляться сами собой.
Изначально я решал конкретные задачи за оговоренную сумму, а потом стало ясно, что работа над проектом будет продолжаться постоянно, и мы перешли на зарплатный формат.
Партнерам заказчика сайт понравился — они тоже захотели себе такой. И с ними я тоже договорился на зарплату. С обоими заказчиками сотрудничаем до сих пор.
Сейчас для работы с заказчиками использую Vue + Vuex + Laravel + MySQL. Не так давно начал изучать эти фреймворки — раньше делал все на чистом JS и PHP. Но чувствую, что настала пора идти дальше, и этот новый стек технологий мне очень нравится — есть желание углубиться в его изучение.
Дмитрий Уткин, техлид направления Machine Learning, группа компаний Neti
Программирование очень разнообразно. Веб-разработка требует одних навыков, построение интегрированных корпоративных систем – других, создание нейросетей и моделей машинного обучения – третьих. Объединяет разные отрасли системный подход, тщательность в выборе данных и алгоритмов, скрупулезность тестирования и умение поставить себя на роль пользователя.
Чтобы попасть к нам на работу, соискатель должен продемонстрировать системность мышления, хорошие знания синтаксиса языка программирования и понимание, какие именно задачи решаются в процессе работы.
Будет нелишним знать лучшие практики отрасли – сейчас их часто преподают на продвинутых курсах и в вузах. Еще я бы порекомендовал почитать Макконела, Мартина, Фаулера, «Банду Четырех».
И, кстати, можно пройти открытые курсы от ведущих мировых вузов – MIT, например. Много интересного можно найти на Coursera.
И, конечно, важна способность постоянно учиться. В разных областях программирования знания устаревают за два-три года. Так что необходимо постоянно учиться и переучиваться.
Специалисты с темным прошлым и светлым будущим
Среди сотни разработчиков, работающих у нас в компании, есть люди с классическим вузовским образованием, есть сотрудники с неоконченным высшим, есть выпускники технических колледжей, а есть более нестандартные случаи — как раз те самые самоучки.
Например, Алексей — один из наших самых продвинутых фулстек-разработчиков, работающий в компании уже шесть лет. В свое время он выучился в колледже на автомеханика, потом закончил педагогический институт, стал дипломированным учителем физики, но в школу работать не пошел — начал увлекаться программированием. Поработал какое-то время в небольшой компании, а потом попал к нам.
Другой наш разработчик, Андрей, учился в вузе на технической специальности, но был отчислен после первого семестра. Сменил несколько работ, даже «Газель» одно время водил. Потом друг показал ему программирование, и его затянуло.
Из образования у него по факту только школа, и ему иногда бывает сложно без специализированных знаний, например, без высшей математики. Но помогает характер — любознательный, въедливый, усидчивый, последовательный.
После семинара в офисе MediaSoft. Фото: архив компании
Однажды к нам пришла довольно нетривиальная задача — сделать веб-сервис, который бы взаимодействовал с пользователями в реальном времени, поддерживая сотни тысяч подключений одновременно.
Клиент предлагал реализовать проект на языке PHP, но Андрей почувствовал, что здесь нужна другая технология, и не побоялся этим заняться. Быстро изучил лучшие практики для задач этого типа, развернул несколько тестовых образцов и в итоге выбрал язык Erlang. Время показало, что это был правильный выбор, заказчик оценил нашу рекомендацию.
Вообще далеко не все выпускники вузов способны к работе по специальности, и это справедливо не только для IT. В каждом институте, на каждом курсе есть так называемые «пассажиры», которые учатся средне и к профессии большого интереса не испытывают. Когда я учился (Ульяновский государственный технический университет, кафедра «Вычислительная техника»), на нашем потоке таких было около 30%.
Учиться на программиста они идут по разным причинам: некоторых привлекает престиж профессии, других заставляют родители, но даже красный диплом не сделает человека первоклассным разработчиком, если он сам этого не хочет.
Front или Back? Ответ — Fullstack!
Когда пошел учиться, решил не ограничиваться фронтендом, потому что без серверной части и баз данных ни одного приличного сайта не сделаешь.
Изначально мне не нравился front-end — он казался слишком сложным. Думал, вообще только серверной частью заниматься, но сейчас все изменилось: я глубже вник в оба направления и с удовольствием делаю все — фронт и бэк. Так ты меньше зависишь от других и лучше представляешь сайт как единое целое.
Сейчас на основном месте работы использую стек технологий React + MobX + PostgreSQL + Symfony. С React и МobX чувствую себя уже очень уверенно, а вот с postgresql и symfony пока на «вы». Чтобы как следует потренироваться в их использовании, пока не хватает подходящих задач.
Финальное решение
Рассмотрев некоторые способы трудоустройства «без диплома», становятся явными преимущества:
возможность развития только в области информационных технологий, представляющей интерес; составление
удобного графика работы без привязки к офису.
Подняться по карьерной лестнице без диплома возможно. Времена, когда кандидат без высшего образования не
допускается к собеседованию, уходят в прошлое. Главная ценность сотрудника — наличие практического
опыта выполнения задач, который можно получить только в процессе самостоятельной работы без давления системы
образования.
Специализированные курсы, самообразование, онлайн-лекции — отличные способы получения актуальных знаний
для работы в стремительно развивающемся секторе информационных технологий.
Стоит ли становиться программистом?
Если вы собираетесь приложить много времени и усилий на изучение программирования, возникнет вопрос: «окупится ли это вообще?» Данные, собранные в ходе различных исследований рынка ИТ, показывают, что определенно стоит стать программистом (особенно разработчиком Java или JavaScript). Спрос на программистов огромен и постоянно растет, а это значит, что разработчиков ждет множество предложений о работе, и работодатели очень заинтересованы в таких сотрудниках.
Многих людей в ИТ-отрасль также привлекает видение высоких доходов. Как обстоят дела в этом отношении? Заработок программиста зависит от опыта и навыков. Старшие разработчики зарабатывают прилично. Однако это не значит, что начинающий программист так много заработает и на это не стоит рассчитывать. На какое вознаграждение может рассчитывать младший разработчик? Обычно это около 40-80 тысяч рублей, в зависимости от города и выбранной технологии.
Пока ИТ-индустрия позволяет невероятно быстро набираться опыта и навыков, а значит, увеличивать свой заработок. Если вы достаточно мотивированы и готовы развиваться, то всего за несколько лет работы вы сможете зарабатывать в среднем 130 тысяч рублей! Такое быстрое «продвижение» невозможно ни в одной другой отрасли, поэтому многие люди заинтересованы в том, чтобы стать программистом.
Пошаговое руководство: как стать программистом
Стоит ли изучать программирование
На каждого программиста, который взял в ипотеку двушку в Бутово, ездит на BMW X5 и отдыхает каждый год на Бали, есть как минимум два копирайтера и три сетевых маркетолога, которые прошли те же курсы, купили те же книги, но не смогли выйти даже на начальный уровень.
Программирование — как занятия в тренажерном зале. Эктоморфы плохо набирают мышечную массу, им лучше сосредоточиться на легкой атлетике, беге, воркауте. Эндоморфы в свою очередь вряд ли преуспеют в беге на длинную дистанцию, но достаточно быстро построят впечатляющий мышечный корсет. Каждый должен заниматься не тем, что сулит хорошую зарплату, а тем что нравится и хорошо получается!
Важный дисклеймер!
Несмотря на то, что некоторые люди обучаются программированию гораздо быстрее, чем другие, тем не менее, мы считаем, что практически каждый человек способен стать хорошим программистом. В данной профессии, как и в других, очень многое зависит от вашего желания и усердия. Возможно, чтобы добиться хороших результатов, вам потребуется потратить больше времени, но если программировать вам действительно нравится, то все в ваших руках и важна лишь ваша мотивация и упорство.
Как же оценить свои навыки и перспективы?
Математический склад ума — это основа
Умеете ли вы играть в шахматы? Если нет, хотели бы научиться? Любили ли вы в детстве собирать головоломки? Можете ли в уме перемножать двузначные цифры? Как насчет кубика Рубика? Пятерку по математике в школьном аттестате работодатель вряд ли будет искать, но если ее там нет, вероятно, программирование будет даваться вам чуть тяжелее, чем коллегам, с математическим складом ума, а это значит, чтобы добиться тех же результатов, вам придется трудиться усерднее и дольше.
Знание английского — это важно. IT-сфера меняется очень динамично, образовательные материалы публикуются в основном на английском
Многие замечают, что переводы книг на русский иногда содержат ошибки, хотя и появляются спустя полгода-год, когда технологии уже активно применяются теми, кто изучил их описание на оригинальном языке. Стандартом сферы уже давно является необходимость предоставить резюме на английском, а также доказать свои знания на собеседовании, даже если вас интересует работа начинающего программиста без опыта. Карьерный рост без знания английского невозможен, ведь даже начинающему программисту часто приходится участвовать в конференциях с заказчиками, которые часто базируются в Европе и США.
Готовность к сложной умственной работе. Думаете, разгружать вагоны сложнее, чем работа программистом 1с? Это так, но качеству сна грузчика позавидует любой программист, потому что его мозг просто не может расслабиться в нерабочее время.
Известное исследование: во время шахматного матча на первенство мира ученые оценили расход калорий чемпионом мира Анатолием Карповым (игра в шахматы весьма схожа с написанием кода) и пришли к выводу, что на партию ему требуется столько же энергии, сколько и футболисту на один футбольный матч.
Мозг программистов на самом деле постоянно напряжен, и такая нагрузка может быть не под силу бывшим бухгалтерам, экономистам, охранникам, школьникам, которые привыкли списывать, а теперь вдохновились высокими зарплатами и радужными перспективами.
Как поступить в университет?
Процедура такая же, как и для поступления в колледж: выберите понравившийся ВУЗ, изучите перечень документов и специальностей, и в период приема документов подайте заявку и документа. После подачи заявления, может потребоваться пройти дополнительное собеседование или тестирование. В определенное время будут размещены результаты приемной комиссии и абитуриент сможет узнать, принят он в университет или нет.
Программа обучения
В университетах довольно много направлений, которые позволяют выучиться на IT-шника.
Вот некоторые из них:
- Администрирование систем и математическое обеспечение.
- Информационные технологии.
- Фундаментальная информатика.
- Вычислительная техника и информатика.
- Программная инженерия.
Для каждой специальности своя программа обучения, которую нужно уточнять в соответствующем ВУЗЕ.
Формы, срок обучения
В разных университетах сроки могут отличаться, но в среднем необходимо проучиться 4 года. Форм обучения две — очная и заочная. В некоторых ВУЗах может быть и очно-заочная или вечерняя форма.
Преимущества работы
Первое, это, конечно же, достойная заработная плата. В данной сфере труд высококлассных специалистов оплачивается весьма неплохо. Зарплаты тут гораздо выше средних. Опытный специалист в месяц может получать от 60 до 100 тысяч рублей.
Высокий спрос. Многие компании осознают необходимость привлечения программистов, которые помогут улучшить бизнес и поднять показатели. Помимо этого, на рынке большое количество компаний, которые работают конкретно с программистами. Перед новичками предстает огромное поле действий — найти место не составит большого труда, но постараться, чтобы найти более выгодные условия, все же придется.
Свободный график. У многих компаний есть возможность трудоустройства с рабочим графиком. Это отличная возможность планировать свой день так, как хотелось бы
Важно успевать сдавать проекты вовремя, а когда сотрудник будет выполнять свою работу — не так уж важно. Но некоторые работодатели все же настаивают на физическом присутствии работников в офисе компании.
«Свобода» творчества
Привилегия обучения в том, что есть большой выбор направлений, в которых можно себя испробовать. Можно тестировать приложения, создавать игры, операционные системы. Если не нравится одна область, можно за довольно короткий срок переучиться, после начать работу в другой области. Это еще один весомый плюс. Работа приносит удовольствие.
Возможность карьерного роста. Успешных специалистов зачастую ставят по главе отдела или организации. Помимо этого, чем опытнее специалист, тем выше оплачивается его труд. Есть возможность поехать за границу и испробовать свои силы там.
Недостатков у данного направления гораздо меньше, чем преимуществ. Главный недостаток — это неподвижность во время работы. Практически вся работа привязана к компьютеру, что означает сидячий образ жизни. Необходимо следить за уровнем
физической активности и поддерживать состояние здоровья. Еще один недостаток, хотя, скорее всего, преимущество — необходимо постоянно обновлять знания. Техническая сфера постоянно развивается, каждый день появляются новые программы и устройства, поэтому необходимо постоянно отслеживать изменения.
Это не самая легкая профессия, но тем, кто усердно учится и работает, удается приобрести ценный опыт и найти достойное высокооплачиваемое место работы.
Адрес поступления:
Москва, Ленинградский пр-т. д. 80, корп. Г (м. Сокол) Москва, ул. Измайловский вал, д. 2, корп. 1 (м. Семеновская)
Телефон: 8 (800) 100 00 11
График работы приёмной комиссии:Пн — Пт: 09.00−20.00;Сб — Вс: 10.00−17.00.
Выбираем специализацию
Новичок должен определиться с областью развития. Он может создавать веб-ресурсы, десктопное, мобильное ПО, видеоигры, сервисы для ведения документооборота.
Основные направления деятельности:
Должностная инструкция сотрудника компании-разработчика определяется стажем, степенью подготовленности. Junior выполняет базовые функции фронтендера, создает пользовательские интерфейсы, кодирует отдельные компоненты. Профессионалы уровня middle (трудовой стаж 3−5 лет) проектируют сайты и ПО для серверов. Senior-специалисты выполняют комплекс задач, руководят командой, разбираются в нестандартных ситуациях.
Лучшие книги и средства обучения
- «Искусство программирования», Дональд Кнут
- «Жемчужины программирования», Джон Бентли
- «Путь программиста», Джон Сонмез
- «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
- «Алгоритмы. Построение и анализ», Томас Х. Кормен
- «Сам себе программист. Как научиться программировать и устроиться в Ebay?», Кори Альтхофф
- «Карьера программиста», Г. Лакман Макдауэлл
- «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
- «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
- «Совершенный код», Стив Макконнелл
- «Кодеры за работой. Размышления о ремесле программиста», Питер Сейбел
- «Мифический человеко-месяц», Фредерик Брукс
- «Программист-прагматик. Путь от подмастерья к мастеру», Дейв Томас, Энди Хант
- Codecademy — универсальная интерактивная платформа для обучения языкам программирования. Лычки, ачивки, геймификация — сплошная мотивация.
- Udacity — англоязычный ресурс для обучения программированию.
- Codewars — огромный сборник тестовых задач для тренировки навыков по любому языку программирования.
- Coursera — без комментариев, просто лучшая лекционная «солянка».
- MIT OpenCourseware — море курсов от Массачусетского технологического института.
неплохой обзор курсовогромная и свежая подборка
Особенности профессии
Суть работы специалиста заключается в том, чтобы разработать программы вычислительных работ на основе алгоритмов. Программист разрабатывает макеты, схемы ввода, определяет объем информации, вводимой в машину, следит за качеством выполнения установленных программ, за их бесперебойной работой.
Программист — это достаточно обобщенное понятие. На самом деле есть несколько направлений, где работают специалисты:
- Прикладные программисты разрабатывают игры, мессенджеры, редакторы, аудио- и видеосистемы (например, пожаротушения, видеонаблюдения). В спектр их обязанностей также входит адаптация уже существующих программ для конечного потребителя.
- Веб-программисты отвечают за разработку интернет-порталов. Они создают сайты и другие инструменты для работы в Интернете.
- Системные администраторы — самые высокооплачиваемые и редкие. Им нужно разрабатывать такие программы, которые, в свою очередь, будут управлять другими программами или оборудованием.
Инга Герасименко, HR-директор «БАРС Груп»
Одной из самых востребованных на сегодняшний день является профессия программиста. Нехватка специалистов в этой области настолько высока, что даже человек, не обладающий достаточным опытом работы, может легко найти себе место.
Мы не всегда набираем программистов именно с высшим образованием. Основная причина в том, что сейчас в вузах на факультетах программирования образование практически ничего не дает. Оно предлагает лишь базу и понимание того, как это вообще работает.
Но это не повод не идти в вуз. В Казани можно пойти учиться в КФУ, КХТИ хорошо готовит аналитиков, программистов — слабовато, но тем не менее. И еще не стоит упускать из внимания Техникум связи. Отличное заведение, для того чтобы прокачаться в современных языках программирования.
Поэтому, в любом случае, нужно подрабатывать, начиная со второго курса. Можно устроиться на полставки или работать стажером. Это обеспечит хороший бэкграунд к выпуску. Кроме того, необходимо развиваться самостоятельно. Есть хорошие онлайн-курсы, например: JavaRush, Otus, Ulearn.me, «ИНТУИТ», Microsoft Virtual Academy.
Пройдя их, можно получить знания в современных языковых программах, но это снова будет база. Желательно искать именно практическое применение: выполнять задачи на freelance-сайтах, а также работать с модулями.
Допустим, если это back-язык программирования, то к нему обязательно нужно изучать JavaScript. Кроме того, необходимо знать базы данных, иметь навыки в аналитике.
Кстати, не стоит пренебрежительно относиться к стажировкам в вузе. Мы с удовольствием набираем стажеров, давая возможность поработать на серьезных проектах и получить бесценный опыт.
Длительность обучения и навыки
Внутренние курсы ИТ-компаний и коммерческих центров в среднем рассчитаны на период от трёх месяцев до полугода. Этого времени вполне хватает для того, чтобы не просто ознакомиться с теорией, но и освоить языки программирования и все необходимые инструменты для разработки. Выпускник курсов получает знания в узком направлении, которые пригодятся здесь и сейчас. Он сразу готов начинать работу, чтобы в процессе постепенно расширять свой айтишный кругозор.
КУРС WEB-РАЗРАБОТКИ (FRONT-END)В ходе курсы ты научишься работать с системой контроля версий Git, получишь практические навыки создания страниц на HTML5 и CSS3, освоишь язык Javascript (ES6), приобретёшь навыки подключения внешних API, узнаешь как использовать новейшие API браузера: Storage, Geolocation, Messaging и другие.
Узнать подробнее и записаться
Чтобы получить специальность программиста в университете, необходимо посвятить этому четыре-пять лет очного или заочного обучения. За это время студент получает широкие знания в смежных его специальности областях и готовится быть многопрофильным разработчиком, который знает несколько языков программирования, умеет создавать базы данных, проектировать автоматизированные системы и многое другое. Но когда выпускник университета приходит на работу, он также проходит начальный период обучения и адаптации к процессам, которые происходят именно в этой ИТ-компании.
Почему ИТ-курсы лучше универа?