luckyea77 (luckyea77) wrote,
luckyea77
luckyea77

Categories:

Нужен ли программисту диплом вуза или достаточно курсов? Мнение директора IT-компании



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

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

Места хватит всем

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

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

1. сложность задач,

2. размер зарплаты,

3. особенности профессионального роста.

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

Более того, если у человека есть фундаментальные знания, он быстрее осваивает новые технологии.

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


Занятия в академии MediaSoft. Фото: архив компании



Самоучкам в этом плане намного труднее. Они вынуждены идти не от общих принципов к частным выводам, а наоборот – на практике нащупывать многие связи и закономерности. Бывает, что разработчик-самоучка не знает, что такое интеграл, не говоря о более сложных вещах.

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

Специалисты с темным прошлым и светлым будущим

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

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

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

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

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

сложность задач,

размер зарплаты,

особенности профессионального роста.

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

Более того, если у человека есть фундаментальные знания, он быстрее осваивает новые технологии.

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

Занятия в академии MediaSoft. Фото: архив компании

Самоучкам в этом плане намного труднее. Они вынуждены идти не от общих принципов к частным выводам, а наоборот – на практике нащупывать многие связи и закономерности. Бывает, что разработчик-самоучка не знает, что такое интеграл, не говоря о более сложных вещах.

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

Специалисты с темным прошлым и светлым будущим

Среди сотни разработчиков, работающих у нас в компании, есть люди с классическим вузовским образованием, есть сотрудники с неоконченным высшим, есть выпускники технических колледжей, а есть более нестандартные случаи — как раз те самые самоучки.
Если вы хотите поделиться опытом работы в крупной компании или маленьком стартапе, рассказать о перипетиях своей карьеры и раскрыть секреты профессии, пишите на careerist@rb.ru. Лучшие рассказы опубликуем на Rusbase.

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

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

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

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


После семинара в офисе MediaSoft. Фото: архив компании

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

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

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

Вообще далеко не все выпускники вузов способны к работе по специальности, и это справедливо не только для IT. В каждом институте, на каждом курсе есть так называемые «пассажиры», которые учатся средне и к профессии большого интереса не испытывают. Когда я учился (Ульяновский государственный технический университет, кафедра «Вычислительная техника»), на нашем потоке таких было около 30%.

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

Быть, а не казаться

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

Абстрактное мышление

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

Признаки того, что у вас больше развито абстрактное, а не конкретное мышление:

* вы чаще думаете об идеях и допущениях, чем о реально существующих вещах и данностях;

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

* вам проще и интереснее запоминать шаблоны и взаимосвязи, чем разрозненные конкретные факты.


Алгоритмическое мышление

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


Чемпион мира по шахматам Анатолий Карпов в MediaSoft. Фото: архив компании

Коммуникабельность

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

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

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

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

Усидчивость

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

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

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

Здесь обучают максимально прикладным вещам, которые можно быстро монетизировать.

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

Относительно курсов я бы дал три совета.

Начинать свой путь в программировании с курсов — не лучшая идея

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


Разработчики на новогоднем корпоративе. Фото: архив компании

Выбирать курсы нужно не по вывеске, а по содержанию

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

Вуз все-таки предпочтительнее

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

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

***

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

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

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

Спасибо за внимание и успехов в карьере!

Обучение программированию онлайн

Tags: программирование
Subscribe

Posts from This Journal “программирование” Tag

promo luckyea77 june 21, 2015 20:04 29
Buy for 10 tokens
В этой записи я буду давать ссылки на посты с лекциями и уроками в этом блоге: Учебные материалы и тесты: 11 ресурсов для бесплатного образования Онлайн-курсы по высоким технологиям и инновациям Дистанционное образование в России (среднее профессиональное образование, бакалавриат, магистратура,…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments