Где лучше учиться на программиста


Куда пойти учиться на программиста

Школьники уже, кажется, сдали ЕГЭ и вот-вот отправятся подавать документы в ВУЗы. Программирование и IT-технологии пользуются стабильным спросом, примерно как юридические и экономические специальности 10 лет назад. В этой статье я расскажу как работает высшее образование для IT, как правильно выбрать IT-специальность. Статья будет полезна не только абитурентам-2015, но и школьникам старших классов, которые уже решили связать свою жизнь с IT.

Нужно ли поступать в ВУЗ, чтобы стать программистом?

Существует множество точек зрения на этот вопрос и, уверен, в комментариях его не раз поднимут. По моему скромному мнению, высшее образование не является обязательным условием становления специалиста в области IT, ровно как и гарантией этого. Но может стать прочным фундаментом для профессионального роста. Вы можете читать книги, участвовать в OpenSource-коммьюнити, подрабатывать на oDesk и через несколько лет будете опытным разработчиком, без высшего образования. Правда, ничто не мешает это всё делать параллельно учёбе в ВУЗе, кроме собственной лени. Вы можете поступить, сдавать зачёты и экзамены, получить диплом и не стать в итоге профессиональным программистом — таких историй миллионы. Хороший ВУЗ даёт прежде всего отличные условия для того, чтобы получать знания, опыт, связи и вырасти как личность. И только от вас зависит, как вы будете их использовать (и будете ли вообще). Примем условно, что вы уже приняли решение получить высшее образование в сфере IT, и пойдём дальше.

Бакалавр, специалист и магистр

С тех пор как министерство образование решило интегрировать Россию в болонскую систему высшего образования прошли годы и многое изменилось. Раньше все ИТ-шники могли получить только диплом специалиста. В этом году выпустились последние дипломированные специалисты (за исключением специальностей, где срок обучения более 5 лет). Сейчас вы можете стать бакалавром, после этого — магистром, а далее поступать в аспирантуру для соискания российского аналога Ph.D.

Что изменилось на самом деле?

В старых учебных планах для «специалистов» урезали количество часов на один год, при этом самые сложные дисциплины были либо удалены, либо сокращены. Многие академические темы из области алгебры, теории вероятности, физики останутся для бакалавра неосвещёнными преподавателем. В ряде специальностей, где программирование является вспомогательной компетенцией (например, информационная безопасность), под нож попали различные технологии программирования — от web-разработки до параллельного программирования. В остальном ни теоретический материал, ни методика преподавания не изменились. Сократился объем материала. Если в каком-то ВУЗе раньше давали лабораторные для Pascal, то по-прежнему их и дают. При этом учебные планы магистратуры могут похвастать новизной. Об этом можно написать отдельно, если будет спрос. Нужно учитывать, что бакалавр — это не готовый сотрудник, который может прийти к работодателю с красным дипломом и просить среднюю зарплату по больнице. Бакалавр что-то знает, что-то умеет из технологий, но как правило не умеет работать в команде, большом коллективе и полностью самостоятельно решать конкретные практические задачи. В терминологии разработчиков это Junior, подающий надежды через 2-4 года стать Middle Developer. Во многих компаниях таким выпускникам без опыта устраивают стажёрские программы с наставником на 6-12 месяцев.

Прикладной и академический бакалавриат

Само собой тот факт, что специалитет просто уменьшили на 20%, не мог порадовать министерство образования. Мало кого может порадовать «недоспециалист», который теперь знает ещё меньше. Поэтому с 2015 года будут повсеместно вводить прикладной бакалавриат как альтернативу неполному академическому образованию. Если коротко, то прикладной от академического отличается новым учебным планом, где все дисциплины сфокусированы на выпуск максимально готового к реальным рабочим задачам сотрудника. Без стажировок и прочих головняков для работодателя. Например, из академического бакалавриата может выйти «математик-программист», а из прикладного «Разработчик .Net», «Разработчик реляционных баз данных» или «Программист C++». Последние более интересны рынку труда сразу после окончания ВУЗа, первые же после окончания бакалавриата должны поступать в магистратуру и дальше качать свои компетенции, чтобы после выпуска претендовать на более высокие позиции. Другая полезная вещь — участие в учебной программе прикладного бакалавриата работодателей (как базы практики) и IT-вендоров. Несмотря на то, что идея на мой взгляд здравая и её реализация была начата ещё 5 лет назад в 44 пилотных ВУЗах, я ещё не встречал ни качественно новых учебно-методических материалов, ни готовых к самостоятельной работе выпускников. Предполагаю, что в ближайшие 2-3 года ничего не изменится и значительной разницы в подготовке академического и прикладного бакалавриата не будет. Тем не менее, если вы уже решили быть магистром — поступайте на академический, если после 4 лет обучения планируете идти работать, а к магистратуре вернуться «когда-нибудь» — то на прикладной.

Преподавание в ВУЗе

Если в школе учатся, то в ВУЗе обучаются. И разница тут огромна. Никто не будет заставлять учиться. Если хотите получить диплом — сидите, разбирайтесь, спрашивайте у однокурсников. Преподаватель — это просто носитель знаний, который умеет эти знания пояснять. Его цель — рассказать, ваша — понять. Если вы что-то не поняли — преподаватель свою цель всё равно выполнил. Даже если в отдельных случаях это не так — лучше думать именно в такой парадигме, будет меньше разочарований. Качество преподавания заключается именно в том, насколько хорошо преподаватель доносит до вас знания, какую практическую компетенцию вы при этом получаете. Например, донести принцип ООП можно на языке программирования Delphi, а можно на C# или Java. Вы поймёте ООП в любом случае, если будете стараться, но знакомство с языками C# или Java будет полезно для вас в будущем, при подготовке курсовых работ, при подработке или дальнейшем трудоустройстве. Преподавание — штука инертная. Чем больше преподаватель читает один и тот же курс на примере одних и тех же технологий — тем лучше у него получается донести знания до студентов. Но IT-технологии меняются слишком быстро, поэтому возможны две крайности:
  1. преподаватель читает вам то, что морально устарело, но вы всё прекрасно понимаете
  2. преподаватель рассказывает о новейших технологиях, но у вас остаются большие пробелы в понимании чего-либо (если вы не восполните их самостоятельно в книгах, на StackOverflow или MSDN — то так оно и останется).
Есть замечательные преподаватели, которые каждый год обновляют 30% своего учебно-методического материала, но на такие усилия готов не каждый. Помимо дробления бакалавриата на академический и прикладной, сейчас также проходит обновление стандартов образования со второго поколения на 3 и 3+. В условиях такого количества изменений в преподавании — есть риск, что ближайшие 2-3 набора студентов будут подготовлены хуже, чем последующие. А значит — нужно прилагать больше личных усилий. Выбирая ВУЗ и специальность желательно знать Кто и Что вам будет рассказывать. Перед окончательным выбором — узнавайте у текущих студентов, читайте студенческие группы VK.

Выбор специальности

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

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

Математическое обеспечение и администрирование информационных систем (МОАИС).

Специальность, дающая наилучшие условия для развития компетенций разработчика. Вы изучите: технологии программирования на различных языках (обычно за 4 года вы познакомитесь с минимум тремя языками программирования — например: C++, C#, Lisp, или C++, Java, Python), разработка и основы администрирования реляционных и объектно-ориентированных БД, сетевые технологии, разработка приложений «клиент-сервер», «клиент — сервер приложений — сервер БД», параллельное программирование. Обучение даёт понимание программирования в принципе, за пару месяцев вы способны изучить любой язык программирования и развиваться в нём; понимание как работает любая программа, как решить большинство вычислительных задач. После получения диплома из вас крепкий Junior, но как только вы разберётесь с конкретными задачами и инструментами в конкретной компании, багажа знаний будет достаточно, чтобы претендовать на Middle. После опыта работы и хорошей магистратуры по этой специальности вы сможете не просто делать программы и информационные системы, но познакомитесь с принципами разработки высоконагруженных систем, управления командой, планирования разработки и сможете претендовать на Senior и Team Lead.

Фундаментальные информатика и информационные технологии (ФИИТ).

Специальность близка к МОАИС, но ориентирована на вычислительные эксперименты и исследовательские задачи. Иными словами, как программист вы будете в наилучшей форме, но вы будете почти бесполезны для решения практических бизнес-задач. Зато вы ценный кадр для R&D-департаментов, научных лабораторий и научно-исследовательских команд. Обучение по этой специальности в хорошем ВУЗе даёт возможность выбирать место работы по всему миру, работая известных компаниях. Уже изначально предполагается, что бакалавриат будет только первой ступенькой вашего образования. Вполне реальная история: получив бакалавра в МГУ, поступить в магистратуру CalTech. Само собой, физика, алгебра и матанализ должны быть вашей страстью.

Информатика и вычислительная техника (ИВТ)

Специальность ориентирована на воспитание системных программистов, работающих «с железом». У вас будут навыки программирования роботов, систем реального времени и работы с паяльной лампой. С таким образованием разрабатывать скучные учётные системы и веб-приложения не захочется, но ваша дальнейшая карьера может начаться как инженера по видеонаблюдению в небольшом ЧОПе, так и в лаборатории робототехники крупного бренда (само собой после прохождения магистерской программы). На мой взгляд с чисто программистскими специальностями всё. Ниже будет перечень специальностей, где тоже обучают программированию. Но если у специальностей сверху учебный план построен так, чтобы выпустился Программист, то у специальностей ниже — Специалист в чем-то с навыками программирования.

Не только программист

Программная инженерия
Относительно новая специальность, готовящая по сути менеджеров программного продукта. Этот специалист смотрит поверх задач разработки, управляет требованиями, функционалом, версиями, командами разработки. На первых курсах вы изучите технологии программирования и, возможно, пару языков, но дальше в учебном плане будет всё больше про управление разработкой ПО. Начинать карьеру можно как Junior Developer, но вместо дальнейшего апгрейда до Middle вы станете менеджером проекта.
Прикладная информатика
Выпускает системных аналитиков с широким кругозором в IT и бизнесе. Они тоже умеют программировать, но по настоящему хорошо у них получается писать технические задания, формализовать бизнес-процессы и эффективно коммуницировать с разработчиками, которые витают в высоких абстракциях. Можно стать менеджером проекта или даже директором своей компании, если есть такие амбиции.
Бизнес-информатика
Очень близка к прикладной информатике, но компетенции менеджера у выпускника значительно сильнее. Можно быть консультантом по применению IT или управлять политикой IT небольшого холдинга. После получения диплома начать работать хоть в саппорте, но карьерная цель «IT-директор» может быть достигнута за считанные годы.
Информационные системы и технологии
Фокус на администрировании информационных технологий и правильном выборе софта и железа под задачи корпоративной локальной сети. Программирование будет, но на процедурном уровне, ближе к скриптам и конфигурационным файлам.
Математика и компьютерные науки
Большая порция фундаментальных знаний позволит вам работать как учителем информатики в школе, так и аналитиком в крупной компании. В хорошем ВУЗе эта специальность тяготеет к научным исследованиям и также может быть стартом в R&D для тех, кто физике предпочитает математические науки.
Информационная безопасность
Первый курс часто похож на специальности вроде МОАИС, где программируют много и на разных языках, но потом это прекращается. Вы не должны писать код, вы должны понимать как любой код могут атаковать. Сети и операционные системы будут знакомы как никому другому, можно будет называть себя хакером, но работать придётся в сфере безопасности, с нормативно-правовыми документами, а не только с firewall и sniffer. Важно понимать, что всё зависит от конкретного учебного заведения. Это как стандарт HTML и его реализация на сайте провинциального салона красоты. Есть ВУЗы, где студенты всех специальностей ходят на одинаковые лекции. Есть ВУЗы, где МОАИС изучает Visual Basic и Pascal, пишет макросы в Excel, а базы данных изучает на примере Access. Если в вашем родном городе именно такой ВУЗ, то пора покупать билеты на поезд.

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

P.S. Предлагаю хабрапользователям поделиться личным опытом: какая специальность в каком ВУЗе помогла вам стать таким замечательным разработчиком.

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

Теги:
  • программисты
  • студенты
  • вузы
  • образование в ит
  • обучение программированию

habr.com

Куда пойти учиться на программиста: мнения представителей сферы IT | Rusbase

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

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

Куда пойти учиться на программиста: мнения представителей сферы IT Софья Федосеева

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

Здесь уже все как на обычных производствах: высокие инженерные или исследовательские должности без высшего образования недостижимы. А начать карьеру простого разработчика (и в процессе «дорасти» до сильного спеца) можно сразу после школы или колледжа.

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

А вот стартануть в data science без профильного образования будет сложнее. Нужно знать предметную область, а она по сложности соответствует высшему образованию.

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

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

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

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

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

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

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

Будет нелишним знать лучшие практики отрасли – сейчас их часто преподают на продвинутых курсах и в вузах. Еще я бы порекомендовал почитать Макконела, Мартина, Фаулера, «Банду Четырех». 

И, кстати, можно пройти открытые курсы от ведущих мировых вузов – MIT, например. Много интересного можно найти на Coursera.

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

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

Евгений Лопатин, директор департамента разработки «Инфосистемы Джет» 

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

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

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

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

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

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

Денис Коровкин, генеральный директор WebProfy (Kokoc Group) 

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

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

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

Это то, чем программист занимается 80% своего времени — ищет причину, по которой код не работает так, как хочется. Что поразительно, очень большое количество программистов не умеет этого делать и тратит время работодателя на перебор вариантов и метод тыка.

С точки зрения обучения, мне нравится Британская высшая школа дизайна. Среди профильных ресурсов можно обратить внимание на Udemy, у них большая база англоязычных курсов. Слышал много хороших отзывов о Школе разработки интерфейсов от «Яндекса». Есть курсы, которые у всех на слуху, вроде HTML Academy или GeekBrains, но это больше заслуга маркетинга.

Вообще тема «опыта работы» кажется мне более актуальной, чем профильное образование.

Практический опыт — лучшее обучение. Чем больше шишек набито, чем больше решений найдено, тем эффективнее человек будет работать.

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

Евгений Салтыков, руководитель проектов департамента корпоративных систем ЛАНИТ

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

Мы не отдаем предпочтения выпускникам конкретных вузов, но складывается статистика в пользу МГТУ им. Баумана, МФТИ и МАИ (факультетов математики и информатики).

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

Что касается вопроса, где получить профильное образование, то я рекомендую вузы, указанные мной ранее, а также популярные у молодежи МИФИ, МИРЭА, МИСИС.

Андрей Коваленко, сооснователь и CTO Voximplant

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

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

Так куда пойти учиться? Есть топ технических вузов страны, тут я ничего нового не скажу. Это МГТУ имени Баумана, Университет связи, МИСиС, МАИ, МЭИ и МИФИ. Также к этому списку относят мехмат МГУ, хотя он больше заточен под фундаментальную науку.

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

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

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

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

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

Константин Ян, сооснователь, технический директор платежного сервиса CloudPayments 

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

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

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

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

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

Вадим Мельников, технический директор сервиса путешествий «Туту.ру»

Не буду категорично утверждать, что без высшего образования никак нельзя устроиться программистом и успешно работать. Но все же закончить вуз крайне желательно, причем именно технический. Я рекомендую идти учиться в МГУ им. М. В. Ломоносова, МФТИ, Бауманку, НГУ, СПбГУ.

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

Никто же не подумает идти работать хирургом после двухмесячного курса? А в чем разница? И у хирурга, и у программиста цена ошибки может быть высока.

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

Но есть и другая ситуация. Представим, у нас есть разработчик с 10-летним опытом, но он не учился в техническом вузе. Возьму ли я его на работу? Да не вопрос!

Решение в пользу «брать» или «не брать» основывается на множестве параметров. Недостаточно просто прийти и принести диплом. Диплом — это не гарантия трудоустройства.

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

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

Обязательна любознательность и желание узнавать что-то новое в нашей постоянно меняющейся отрасли, изучать причинно-следственные связи.

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

А вот с soft-скиллами сложнее, они практически не прокачиваются. Это работа в команде, эмпатия, коммуникация, способность слышать и давать обратную связь, ориентация на клиента, позитивное отношение к жизни. Эмоциональный интеллект должен присутствовать обязательно.

Мы с партнером по бизнесу закончили московский Физтех, факультет инноваций и высоких технологий. Кроме того, однозначно можем рекомендовать Университет ИТМО — кузницу победителей международных олимпиад, ВМК МГУ, НГУ, МГТУ им. Баумана, ВШЭ.

Для более детального изучения можно посмотреть мировые и локальные рейтинги, например, Times Higher Education по предмету «Computer Science» — особенно это актуально тем, кто ищет образование за рубежом.

Конкретные курсы я не смогу посоветовать, но, по мнению нашего CTO, все слишком зависит от направления и начального уровня программирования. Можно посмотреть то, что на слуху — Coursera, Code Academy, GeekBrains от Mail.ru и курсы от «Академии Яндекса».

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

Первый — оценка уровня необходимых знаний и умений в формате короткого тестирования. Второй — оценка личных целей и качеств человека для работы именно в нашей команде.

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

У нас в компании есть ребята на позициях middle back-end и middle front-end с бэкграундом бармена и аналитика в строительной компании. Они сами переквалифицировались в разработку и прошли необходимые курсы.

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

Анна Айрапетова, глава разработки p2b-платформы Penenza.ru

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

Из вузов рекомендую МГТУ им. Баумана, МИФИ, МАИ. МГУ, как ни странно, не лучший в этом списке, по моему опыту. В целом, не имеет особого значения, какой вуз. Главное, чтобы он был техническим.

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

У меня есть, помимо образования, и общие рекомендации ко всем разработчикам.

33% успеха — это профессиональные навыки, то есть знание технологий и языков программирования. Сейчас очень многие смотрят в сторону open source-технологий, поэтому востребованы специалисты, пишущие на Python, GoLang, Java и имеющие опыт работы с базами данных Postgres, MongoDB, Redis, интерфейсами обмена данными KAFKA.

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

И, конечно, опыт!

Евгений Кот, Frontend Team Lead, Wrike

Если говорить про Санкт-Петербург, то сильными вузами считаются ИТМО, Политех, ЛЭТИ. Про курсы сказать труднее, их сейчас немало. Что касается фронтенд и экспертных сообществ, рекомендую сходить на несколько локальных митапов.

Там можно познакомиться с экспертами и научиться многим вещам. Например, NodeSchool, PiterJS, PiterCSS, Spb-Frontend, а также наши регулярные митапы Wrike Tech Club.

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

Главное, чтобы было желание, причем достаточно сильное. Программирование — это не та специальность, которую можно освоить за неделю-другую.

Однако в интернете представлены огромные базы материалов по всем предметам (например, та же Coursera) и зачастую их можно найти бесплатно. И вместо того чтобы тратить пять лет на изучение не совсем профильных предметов (я с ужасом вспоминаю философию и ОБЖ), можно концентрированно получать именно те знания, которые точно пригодятся на практике.

Во Wrike мы, прежде всего, смотрим на навыки и самого кандидата, а не на то, что именно он закончил.

Давно уже не существует такого понятия, как просто «айтишники», которые умели бы делать все на свете. Они остались вместе со свитерами, дискетами и ZX-Spectrum где-то в далеком прошлом.

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

Если у фронтенда идет упор на визуальную составляющую (User Experience), то, например, у бэкенд-разработчика задачи лежат совершенно в другой плоскости. Но если попробовать составить портрет среднего программиста, то он обладет этими качествами:

  • Способность быстро усваивать информацию и развиваться профессионально. В нашей отрасли нельзя один раз что-то запомнить и потом пользоваться полученными знаниями до скончания века. Моргнешь, и все. То, что ты когда-то знал и умел, уже становится неактуально.
  • Способность строить сложные системы и просчитывать последствия решений на много шагов вперед. Это как со строительством дома: если фундамент плохой, то чердак не устоит. Но в отличие от дома программисту приходится учитывать тот факт, что заказчик может захотеть маленький гараж, причем в сжатые сроки. А потом передумать и решить, что все же хочет шикарный особняк. Если ты делаешь какой-то программный продукт, то приходится просчитывать план действий на месяц, полгода и год вперед.
  • Усидчивость. Для того чтобы усвоить много информации или придумать что-то непростое, приходится подолгу сидеть на одном месте и медитировать над клавиатурой и монитором. Я бы вообще сказал, что программисту полезно уметь мечтать. Как писатель думает: «На герое была коричневая потертая шляпа», а затем рождается целая история. Программист из одного предложения бизнеса должен развернуть целый мир. Хотя порой все сводится к шляпе.
  • Интерес к своему делу. Профессия у нас творческая, из-под палки много не накодишь. Ну, то есть можно, конечно, но разве это жизнь...
  • Позитивное отношение. Это совет не только к программистам, но к профессии в целом. О нас ходят разные легенды, что программисты, мол, асоциальны и угрюмы. Это не так, будьте веселее!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Юрий Минкин, руководитель департамента разработки беспилотных транспортных средств Cognitive Technologies

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

Конечно, есть самородки, не имеющие высшего образования, которые прекрасно владеют навыками своей профессии. Но в Cognitive Technologies не было опыта, чтобы такие ребята стали team leaders, руководителями или архитекторами проекта.

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

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

Знание английского приветствуется, как и знание других европейских и азиатских языков.

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

Как показывает практика, в наибольшей степени наши ожидания как работодателя, оправдывают выпускники МГУ, МФТИ, НИТУ МИСиС, МИФИ, Бауманки, а также ИТМО и СПбТУ.

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

Работа в IT без диплома программиста: миф или реальность?

С чего начать карьеру в IT? Возможно, вам подойдет именно этот вариант

«Меня поразило то, что все работают из дома». Дети — о своих стажировках в IT-компаниях

20 выражений из IT-сленга, которые вам нужно знать

Названы лучшие IT-компании в России

Фото на обложке: Unsplash

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Про другие виды рассылок можно узнать в разделе ПОДПИСКА

rb.ru

Куда пойти учиться программисту: советы опытного тимлида, преподавателя и новичка

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

Чем занимаются

Владислав Алеев, активный джуниор: Я начинающий верстальщик, мне 24 года. Верстаю и немного пишу на JavaScript. Много учусь программированию сейчас.

Борис Ванюшин, разработчик-наставник: Сейчас мне 32 года, я пишу на JavaScript для нескольких крупных клиентов CSSSR и параллельно веду интенсивы на онлайн-курсах программирования HTML Academy.

Евгений Вецель, опытный тимлид: Мне 37 лет, до прихода в CSSSR я создал один из самых популярных в России сайтов о гаджетах 4pda. Веду бесплатный курс: мы делаем YouTube-уроки, на которых я подробно объясняю программирование реальных компонентов на React от начала и до конца.

Как учились программировать

Владислав Алеев: Какие-то элементарные вещи я изучал ещё в 14 лет. Потом сделал долгий перерыв и продолжил учиться программированию с третьего курса университета. Учился по книгам, статьям и профильным группам «ВКонтакте». Вместе с учебой делал простенькие странички, пробовал находить первых заказчиков для переделки шаблонов сайтов. В таком формате я учился и работал несколько лет.

После университета пошёл в крупную контору человек на 50 и сразу попал в мясорубку. Из-за кучи дел моему наставнику было постоянно не до меня. Я ушел оттуда почти сразу, потому что ни учиться, ни работать там не получалось.

Борис Ванюшин: Я начинал учиться программированию лет десять назад, ещё в университете. Но вскоре бросил и переквалифицировался в менеджера проектов. Проработав менеджером несколько лет, понял, что это не моё, и снова пошёл в разработку. Поэтому в 30 лет я начал учиться программированию фактически заново.

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

Есть ли польза от онлайн-курсов и интенсивов

Владислав Алеев: Я не верю в эффективность дорогих и быстрых курсов и интенсивов по программированию. После них кажется, что ты можешь всё. Но когда сталкиваешься с реальными задачами, то попадаешь в тупик. Эти задачи не входили в программу, а фундаментальных знаний на интенсивах не дают. Деньги за курсы лучше отдать разработчику, до которого хочешь «дотянуться». Пусть он за эту сумму делает ревью кода и раз в неделю созванивается с тобой по скайпу. Будет в разы эффективнее.

Из курсов я проходил обучение в «Школе Программирования» (ныне — Geekbrains) и HTML Academy. После прохождения курса в Geekbrains могу смело сказать, что только зря потратил на них деньги и время. Чуть больше понравились бесплатные курсы от HTML Academy: у них интерактивный формат и интересная подача, но их материал запоминался с трудом. Через месяц после завершения HTML Academy я открывал их задачи как в первый раз. Совсем другое дело, когда сидишь над задачами сам. Несколько часов можешь убить из-за какой-нибудь глупой ошибки, но зато запомнишь пути решения надолго. С курсами такого нет: преподаватель выдаёт заученную программу без большого внимания к практике и твоим вопросам.

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

Еще одна беда интенсивов в том, что они часто работают по принципу «Бизнес Молодости»: тебя заряжают, говоря, «дожми ещё чуть-чуть, и всё получится!». Но заряд кончается сразу после курса.

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

Борис Ванюшин: Я сам занимаюсь наставничеством в рамках интенсива HTML Academy по JavaScript, поэтому знаю процесс изнутри. Курс проходит так: ученики смотрят лекции и выполняют практические задания. Я отвечаю на вопросы по лекциям и даю обратную связь по коду, допущенным ошибкам и возможным улучшениям. Такой интенсив длится около двух месяцев. Приходят люди совершенно разного уровня. Есть даже бабушки, которым скучно сидеть дома без дела. Но чаще всего на курс по JavaScript идут люди, которые уже изучали вёрстку и CSS. Для них знание JavaScript станет развитием карьеры верстальщика.

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

Мне не нравится, когда онлайн-курсы заманивают студентов высокими зарплатами программистов. Они любят продвигать темы в духе «заплати сейчас 70 тысяч и через несколько месяцев получишь зарплату в 150 тысяч». Но это нечестный маркетинговый трюк. Такую зарплату можно получать только через несколько лет напряженного труда.

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

За 70 тысяч, потраченных на курс, можно сэкономить три месяца. Тот же объём знаний получишь за два месяца вместо трех-четырех, но только если будешь впахивать. Чтобы получить по итогам курса хорошую работу, нужен некий минимум часов, потраченных на написание кода. Можно ориентироваться на 1000 часов. И тут никак не получится перепрыгнуть.

Евгений Вецель: Онлайн-курсы дают много информации, но они не дают «базу». Поэтому после курсов у людей нет знаний разных фреймворков и «полочек», по которым разложены все знания. Эти знания и структуру дают книги и закрепление знаний на практике с ментором, а не интенсивы. Красивые обещания зарплаты в 120-150 тысяч по их итогам — тем более миф. Платить такую зарплату человеку, который не может самостоятельно решать задачи, никто не будет. Вообще курсы без практического опыта — утопия. Я как-то работал с человеком, который закончил такие курсы и видел, как он пытался идти заученными тропами.

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

Владислав Алеев: Я ни в коем случае не советую начинать обучение только с книг. Простой пример: недавно вышла книга Леа Веру «Секреты CSS. Идеальные решения ежедневных задач». Русское издание настолько ужасно, что цветные градиенты в книге стали черно-белыми, а padding (внутренний отступ) стал «забивкой». Если новичок после учёбы по этой книге придёт в компанию разбирать код, используя слово «забивка» вместо padding, разговор с ним будет коротким. По моему опыту, книги будут полезны только вместе с практикой.

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

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

Евгений Вецель: Книги дают базу и основы, но в них проблемы с примерами. Я бы советовал читать книгу и создавать на её основе «полочки» в голове. Не пытайтесь всё досконально изучить. Когда появится структура, то делать вместе с ментором свой небольшой проект и пробовать на нём все задачи из книги. Зная, куда «положить» информацию, изучаешь её с большей охотой и лучше усваиваешь. В нашей профессии важно знать «почему» и «как», иначе это зубрёжка, которая программировать не поможет.

Куда идти работать новичку

Владислав Алеев: Советую начинать карьеру в хорошей студии. Это способ научиться работать над разными крутыми проектами, а не просто пилить однотипные лендинги. А если повезёт с коллегами, то они будут подсказывать, давать материалы, обсуждать код и так далее.

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

Евгений Вецель: Мой главный совет новичку — искать себе ментора. А работу выбирать такую, где есть обучение и время для обсуждений. Ментором может стать любой знакомый, если он знает язык программирования лучше тебя. Даже у меня часто бывают ошибки в коде, решение которых может занять несколько дней. Самому можно вообще никогда не найти эти ошибки, особенно если они связаны с внешней библиотекой. Зато ментор их быстро найдет, и не придется буксовать. Закапываясь в мелочах, рискуешь потерять весь запал и можешь забросить задачу.

Когда приближаешься к среднему уровню, имеет смысл работать в таких компаниях, где проекты сменяют друг друга хотя бы раз в полгода-год. Каждый проект — это разные подходы и технологии предоставления ТЗ. Кто-то использует Jira, кто-то Trello, а кто-то GitHub или Bitbucket. Пока не попробуешь весь этот зоопарк инструментов, не сможешь чувствовать себя уверенно в профессии.

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

Что самое важное в обучении программированию

Владислав Алеев: Лучший совет, который я могу дать, — больше практики. Чем больше, тем лучше. А книги используйте уже после, когда будет базовое понимание темы.

Если говорить об инструментах, то я советую смотреть вопросы и ответы на Stack Overflow. Со временем можно самому пробовать давать там ответы. Для новичка, который только начал работать с JavaScript, важно:

  • Понимать принцип работы и знать синтаксис языка. Без этого простейший код будет вызывать ступор. Пример ключевых слов: IIFE, замыкание (понять, а не заучить), каррирование, всплытие переменных.
  • Нужно научиться читать и понимать чужой код.
  • Важен не код, а мышление. Надо понимать, что язык — всего лишь инструмент. Если ты на позиции младшего разработчика можешь описать хотя бы три популярных алгоритма сортировки и поиска, нарисовать к ним схемку и написать хотя бы один на псевдокод — ты уже выгодно отличаешься от большинства новичков. Также нужно знать структуры данных (List, Array, Map, Set).
  • На практике полезно решать каты из Codewars. На собеседованиях, как правило, дают схожие.

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

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

Когда делал уроки для своего YouTube-канала, заметил, что гораздо увлекательнее учиться в паре с новичком. Он пишет код, а я подсказываю ему, куда рулить. Ученые уже доказали, что не воспроизведённое хотя бы один раз — изучено зря. Это значит, что практика при изучении программирования нужна обязательно. Я рекомендую всем завести свой небольшой проект, улучшать и усложнять его по мере обучения. Тем, кто учит JavaScript, особенно повезло: это ещё и серверный язык, на котором можно написать цельный продукт.

Почему я сторонник своих, пусть и небольших, проектов? Я считаю, что хорошие программисты — это эндорфиновые наркоманы. Когда пишешь код, то реализуешь всё по маленьким кусочкам. Так получаешь дозу эндорфина (удовольствия) после каждого удачно сделанного куска, и тебя тянет продолжать. Не пытайтесь писать весь код целиком. Реализуйте его маленькими итерациями и небольшими функциями. Каждая из них похвастается, что работает, а вы, получив «дозу», приступите к следующей.

Идеальное движение для изучения того же JavaScript — начать с написания в Codepen простой странички. Начать с HTML, потом перейти к основам CSS, а после создания странички, перейти к JavaScript.

Что читать и смотреть

Владислав Алеев: Если бы я сейчас мог сам себе отправить сообщение в прошлое, то сказал бы так: бегло пройдись по «Современному учебнику JavaScript». Полностью пройди курсы на Hexlet, закрепляя видеокурсом Sorax по основам JavaScript. Решай задачи на Codewars и пробуй писать что-то из реальных проектов — слайдер, валидацию полей формы или калькулятор, тайм-трекер. Периодически проси наставника сделать ревью.

Закрепи всё несколькими крутыми книгами по JavaScript вроде JavaScript: The Definitive Guide, You don't know JavaScript: this and Object prototypes. Можно и всю серию. Не забывай высыпаться и отдыхать — без этого обучение пройдёт гораздо хуже.

Борис Ванюшин: Давайте я что-нибудь нетехническое посоветую. Например, «Программист-прагматик» Эндрю Ханта.

Евгений Вецель: Для изучения JavaScript и React в частности, я бы порекомендовал посмотреть заседания нашего клуба React learning club. В нём уже более 36 уроков.

Виталий Иванов, React-разработчик, CSSSR: Для тех, кто изучает JavaScript, я отобрал следующие книги, которые надо прочитать:

Через какое-то время стоит изучить алгоритмы и структуры данных: Algorithms — книга будет легче читаться после Introduction to Programming in Java. По двум последним книгам есть целый курс на Coursera, но они пригодятся и без него.

vc.ru

Программист

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

Придется «подружиться» с рядом специальных дисциплин, в числе которых структуры и алгоритмы обработки данных, функциональное, логическое и объектно-ориентированное программирование.

Крупнейший в Европе ресурс для IT-специалистов: профессиональные новости и блоги

Статьи, исходные коды, блоги, форумы, видео-уроки по разным языкам программирования

Женский взгляд на программирование

Где учиться по IT—направлениям. Кодинг для девушек и программирование блокчейн-приложений. Веб или desktop? Swift или PHP? Где учиться тем, кто любит программирование, механику и робототехнику. Формула успешной подготовки и секреты заданий повышенной сложности. Как добиться максимально возможного результата, если ты девочка-программист?

www.ucheba.ru

17 московских вузов, где надо учиться на IT-специалиста

Сайт с вакансиями для молодых специалистов и студентов Career.ru подготовил рейтинг московских факультетов, выпускникам которых проще всего найти работу. «Мел» продолжает публикацию рейтингов — сегодня вузы, где получить IT-специальность и не остаться без работы.

Рассылка «Мела»

Мы отправляем нашу интересную и очень полезную рассылку два раза в неделю: во вторник и пятницу

Специалисты Career.ru создали рейтинг на основе резюме выпускников московских вузов — при поиске работы они указывают факультет и учебное заведение, где был получен диплом.

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

По две строчки рейтинга заняли факультеты МАИ, НИЯУ «МИФИ» и МГТУ им. Баумана. Один из факультетов «Бауманки» стал новым лидером рейтинга, факультет информатики и систем управления в МГТУ им. Баумана поднялся с пятой строчки на первую, набрав 8,37 баллов. Чтобы пройти туда на бюджет, необходимо набрать минимум 277 баллов ЕГЭ по трём предметам: русскому языку, математике и информатике.

Для поступления в РГУ им. А. Н. Косыгина (19-й в списке) необходимо получить 151 балл ЕГЭ в сумме по русскому языку, физике и математике.

Мария Игнатова, руководитель службы исследований HeadHunter:

Российский рынок IT-специалистов по-прежнему испытывает дефицит кадров, поэтому конкуренция в отрасли очень низкая. За 2017 год количество новых вакансий выросло на треть. Среди них большим спросом пользуются специалисты по машинному обучению, искусственному интеллекту, а также с навыками Big Data. При этом компании активно ищут разработчиков со знанием языков программирования Java и JavaScript, PHP, С и C++ и Python.

Сфера информационных технологий остаётся второй по востребованности после продаж. Зарплаты IT-специалистов за год выросли примерно на 10%, а по некоторым особенно дефицитным направлениям рост составил до 25% и выше.

Российских разработчиков часто приглашают к сотрудничеству и международные компании с возможностью релокации в Европу или США. Программисты часто соглашаются на выгодные предложения и уезжают работать за рубеж.

mel.fm

На какого программиста учиться?

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

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

1. Ситуация на рынке труда

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

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

2. Сложность изучения

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

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

Наиболее простыми считаются Ruby, Python, PHP.

3. Интерес

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

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

Но просто представьте себе, что это то, чем вы будете заниматься этим, к примеру, следующие 5 или 10 лет. Что вы при этом почувствуете? Радость? Интерес? Отвращение? Усталость?

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

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

1. Embedded-разработка (разработка встроенного программного обеспечения)

Практически во всех устройствах, окружающих нас в повседневном быту (и не только) используются микросхемы. Автомобили, электрические плиты, роботы-пылесосы, холодильники, банкоматы, стиральные и посудомоечные машины, роутеры, швейные машины...Этот список продолжает расширяться с каждым днем. Все эти многочисленные приборы работают при помощи электроники, которую кто-то должен запрограммировать. Именно этим и занимаются embedded-разработчики.

Основной язык программирования, использующийся в этой области — это C++, встречается также ассемблер и JAVA, использующиеся преимущественно для низкоуровневого программирования.

Порог вхождения в эту профессию достаточно высок: C++ и ассемблер не относятся к числу самых простых языков. Кроме того, вам понадобится хорошо ориентироваться в том оборудовании, для которого вы будете создавать программы.

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

Разработка встроенного программного обеспечения — это активно развивающееся направление. Поэтому если вам нравится работать непосредственно с оборудованием, и C++ для вас интересен — то это отличный выбор!

2. Разработка мобильных приложений (Android и iOS)

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

Данное направление отличается низким порогом вхождения — создание небольших приложений возможно даже в домашних условиях. В этой области легко набраться опыта и создать собственное портфолио.

Разработчику приложений под операционную систему iOS необходимо изучить языки программирования Objective-C и Swift (разработан компанией Apple).

В свою очередь, для создания приложений на Android вам потребуется знание Java или C#.

Доход разработчика мобильных приложений варьируется от 50 до 160 тыс. рублей и выше

3. Front-end разработчик

Еще одна очень востребованная и динамично развивающаяся область программирования — это веб-разработка (подробнее о профессии Web-программист). Не секрет, что интернет занимает существенное место в сфере продажи самых разнообразных товаров и услуг. Сейчас чуть ли не любая фирма имеет свой, хотя бы самый простенький сайт или представительство в социальных сетях. А это означает, что спрос на специалистов в области веб-разработки сейчас высок как никогда.

Frontend — это та часть сайта или приложения, которую непосредственно видит пользователь: страницы и разделы сайта, меню, интерфейс и т.п.

Соответственно, frontend-разработчик — это специалист, отвечающий за то, чтобы сделать сайт или мобильное приложение максимально удобным для пользователей.

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

Такие специалисты востребованы в крупных компаниях, вроде Google, Яндекс, Microsoft, Apple и др.

Начать работать в этой области сравнительно несложно, веб-разработка предоставляет хорошие возможности для приобретения опыта и профессионального развития. Для работы таким специалисту необходимо на высоком уровне владеть JavaScript в различных его проявлениях, знать Html, СSS, серверные языки (Perl, PHP), а также уметь работать с базами данных (MySQL).

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

Заработная плата web-разработчика колеблется в пределах от 50 до 150 тыс. рублей.

4. Back-end разработчик

Еще одна специализация в веб-программировании — это back-end-программист.

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

Back-end программист работает в постоянном взаимодействии с фронт-енд-разработчиком, получая от него информацию о мнении пользователей и внося в работу сайта соответствующие изменения.

Порог вхождения для работы в этой сфере выше, чем у front-end разработчика. Необходимо знать Ruby, MySQL, MongoDB, PostgreSQL, Python и .NET.

Зарплата такого специалиста составляет от 60 до 200 тыс. рублей.

5. Gamedev (Разработчик игр)

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

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

Какими навыками должен обладать такой специалист? Главным образом, это основы: С++, C#, Java, OpenGL, DirectX, шейдерные языки.

Также желательно знать Objective-C и Java, обладать навыками компьютерного моделирования, знать закономерности игрового процесса и особенности игровых миров.

Не будет лишним изучение игровых движков (Unreal, CryEngine, Unity3D).

В случае, если вы планируете разрабатывать браузерные игры, то пригодится знание HTML5 и JavaScript, а также сравнительно новой WebGL.

Заработок программиста, работающего в сфере разработки игр, может сильно разниться в зависимости от конкретной компании или проекта.

www.profguide.io


Смотрите также