Индустрия требует все новой и новой крови. Мы присматриваемся к IT-специальностям при выборе своего будущего. Можно ли скипнуть высшее образование и построить успешную карьеру в IT? В чем проблема заполонивших все вокруг онлайн-курсов? Как стать настоящим инженером и поработать в большой продуктовой компании? Про все это мы поговорили в новом выпуске подкаста «Разрабы». Наш гость Юрий Усков — основатель IT-компании iSpring. Он открыл в Йошкар-Оле современный институт для айтишников. Туда поступают почти как в обычные университеты и учатся в офлайне, при этом пытаются больше ориентироваться на запросы современного бизнеса, чем в старых академических программах.
Ниже избранные цитаты.
Питон — это новый Бейсик. Программирование надо преподавать в школе
Мир изменился за 30 лет, а школа практически нет. По крайней мере, в лучшую сторону. Я считаю, что программа с уклоном в программирование должна быть доступна в любой российской школе.
В школах часто учат программированию на Питоне. Но Питон нельзя показывать детям. Он формирует неправильное представление о программировании. На начальном этапе очень критичен вопрос о стиле. Питон задает неправильный стиль.
Такая педагогическая инновация уже была. В 70-е годы упростили Fortran и придумали Бейсик. Дали детям, а потом поняли, что совершили ошибку. Для меня Питон похож на Бейсик. Люди, увлеченные Бейсиком c детства, потом получают травматический опыт при изучении программирования.
Человек как белый лист. Если на нем что-то начеркали, поверх писать уже сложно.
Pascal может вырастить инженера, а знание всех языков — нет
Студенты часто спрашивают, сколько языков программирования вы нам дадите? В первый год обучения они хотят изучить сразу десяток языков. Правда в том, что языки ничего не говорят о квалификации программиста.
Человек может знать один язык и быть сеньором, а может двадцать и быть джуниором. Языки — это десятый вопрос. На первом курсе надо изучить один язык глубоко, потом еще один язык глубоко. Изучение нескольких языков на первом курсе скорее зло. Вы не будете знать хорошо ни одного.
Мы не язык программирования штудируем, мы изучаем программирование, как таковое. Наш вводный курс по программированию построен на старом добром Pascal. Этот язык специально спроектирован для обучения программированию.
Первые полгода студенты работают на сокращенном подмножестве Pascal, где действует только символьные и файловые переменные. Всё, больше ничего нет. Студенты решают сложные задачи в очень маленьком базисе. Они тренируются как инженеры и не тратят энергию на изучение языка. Качество разработки определяется не стеком технологий, а как раз инженерией.
Я не говорю, что на Pascal надо делать что-то в продакшн. Но в первые два года обучения он очень полезен. Я всем его рекомендую. Классику должны знать все.
Хороших инженеров мало кто готовит, но берут на работу всех
Во всем мире конверсия в инженера около 30%. Из набранных ста человек, тридцать полностью закончат программу и станут инженерами. Остальные найдут себя в индустрии на более простых позициях.
Я делю индустрию на три сегмента: высокий, средний и низкий. Высокий сегмент — это продуктовые компании, которые делают уникальный продукт. Там востребованы программисты с хорошей инженерной и алгоритмической подготовкой. В Яндексе вас выпотрошат до дна на предмет знания классических алгоритмов и понимания инженерных основ программирования.
Компании, которые занимаются системной интеграцией и аутсорсингом, представляют средний сегмент. Задачи там не такие сложные. Тиражность продукта меньше. Запрос на квалификацию в разработке проще.
Наконец, низкий сегмент — это подразделение внутренней автоматизации в компаниях. Уровень квалификации там еще меньше.
В России есть образовательная программа 09.03.04 — программная инженерия. Теоретически по этой программе должны хорошо готовить. В девятой группе образовательных программ есть и другие варианты в духе «информационные системы в экономике» или «математические методы где-нибудь». Я их называю морскими свинками. И не морские, и не свинки. С краешку программисты, с краешку экономисты. Они прекрасно себя находят в задачах попроще.
Надо готовить инженеров. Не всем дано пройти этот путь. Из кого не выйдут инженеры, получатся люди, о которых мы говорим.
Набить шишек, но подогреть интерес к языку
Некоторые ВУЗы на первом курсе сразу предлагают С++. Это адский ад. С++ нельзя давать в начале. Представьте, вы учитесь летать. И вас сразу сажают на сверхзвуковой истребитель. Вы даже взлететь не сможете. Сначала надо попробовать полетать на простом и маленьком самолете.
В нашем случае Pascal — это тот самый “кукурузник”. Человек получает первый опыт. К С++ мы подходим только в четвертом семестре. Это не случайно. Студент должен освоить структурную парадигму программирования и только потом заходить в большой и сложный мир С++.
В iSpring есть одна педагогическая инновация. В третьем семестре студенты пишут игру на С++, не зная языка. Мы даем проектный фреймворк, они по нему идут. Умные ребята методом грубой силы пишут эту игру, параллельно осваивая стек. Набивают о все разложенные грабли лбы в кровищу! Героически сдают игру, показывают и защищают свой результат. Одновременно они очень сильно проблематизируются.
На четвертом курсе приходит Прометей и показывает огонь пещерным людям. Они начинают понимать, как правильно делать. Когда дают С++ в самом начале, то просто вываливают на человека проблематику, о которой он даже представления не имеет. А наш метод хорошо заходит.
Чему на самом деле нужно учиться программисту
Хорошие разработчики нужны всем. Программист должен быть не только спецом, но и человеком, который принесет хороший эмоциональный вклад в команду. Как говорят: посмотрит — рублем подарит. Жизнерадостный человек, с которым приятно работать и дружить. У таких людей карьера идет хорошо.
Достаточной для блестящей карьеры будет ситуация когда вы попадете в хороший коллектив, где будете общаться с профессионалами, и вашу экспертизу обточат на топовых проектах с топовыми людьми.
Профессионализм формируется не только из умения решать задачки, знания базы и стека. Он формируется из человеческих качеств. В первые дни обучения мы с ребятами делаем одно упражнение. Представьте, что вы уже завершили обучение. Вы — молодой амбициозный профессионал и хотите попасть компанию мечты. Каким нужно быть, чтобы вас туда взяли?
Я предлагаю назвать несколько атрибутов профессионала, которые помогут пройти собеседование. Студенты перечисляют, а я записываю.
Опыт, знание, сделанные проекты — пишу «квалификация». Не сразу, но вспоминают про ответственность, внимание к деталям, про умение завершать проекты в срок. Вместе мы выводим около 15 атрибутов профи. Про порядочность, и про вовлеченность, про умение поддерживать ровные отношения с коллегами, про оптимизм.
В конце упражнения ребята понимают, что похоже дядька на собеседовании будет решать их судьбу исходя не из квалификации, а на основании стека человеческих компетенций. Квалификация решает, какая у тебя зарплата, и на какую роль в проекте тебя возьмут. А в принципе — возьмут или не возьмут — зависит совсем от другого.
Именно эти компетенции потом позволят сделать так, чтобы в нашей стране появилось больше крутых продуктов. Продуктовые компетенции состоят больше из гуманитарного, чем из технического стека.
Мы научились формировать хороших программистов, но сформировать человека с большой буквы — вот где вау!
В России 100 лет не было бизнеса. Люди шли в экономисты и юристы, но не находили там экспертизы. И ничего не получалось. В IT-индустрии экспертиза есть. Талантливые ребята правильными и неправильными путями, но все равно идут в IT. И это прекрасно. Это уникальная ситуация. Думаю, индустрия будет расти еще как минимум 50 лет. Все, кто сегодня туда придет, найдут себя в ней.