Я студент первого курса в провинциальном вузе на направлении «Фундаментальная информатика и информационные технологии». Я отучился ровно 4 недели и уже хочу рассказать, что не так с нашим образованием, почему многие отчисляются, какие «бонусы» получают студенты аккредитованных ВУЗов и почему этого мало.
Сразу хочу сказать, что все ниже описанное мной не касается каждого ВУЗа страны, тем более не касается престижных ВУЗов в Москве или Санкт-Петербурге. Но в топовые ВУЗы попадают в основном призеры олимпиад, а куда идти тем, кто поздно понял, что хочет стать программистом и поступает по ЕГЭ? В провинциальные ВУЗы, в таком я как раз и учусь.
Еще до начала учебного года я познакомился с кураторами своей группы, пара из них были студентами четвертого курса, пара второкурсников и один магистрант. Нам сразу дали понять, что первый год писать мы будем только на плюсах, тупо нарешивать олимпиадные задачи. Никаких работ в группах, никаких проектов, никакого парного программирования. Только олимпиадные задачи, только хардкор.
На первом же занятии по «Технологии программирования» наш преподаватель попросил нас зарегистрироваться на сайте для решения задач, после чего мы начали кодить простенькие задачи на арифметику. Никакого введения в синтаксис не было, мы учились прямо по ходу занятия. Кто-то уже имел опыт на плюсах, поэтому помогая друг другу моя подгруппа справилась в целом хорошо, намного лучше, чем другая. Там был только один «плюсист»-олимпиадник, который решал задачи в одиночку и никому помогать не хотел, поэтому остальные всю пару задавали вопросы по типу «Что такое include <iostream>?», «Зачем нужен using namespace std?» и так далее. Они не имели ни малейшего представления о языке программирования, их просто посадили кодить. К концу третьей недели на лекциях нам все же поведали о базовом синтаксисе и условных операторах, но мы уже давно изучили это самостоятельно и на парах спали, либо делали домашки по остальным предметам.
Существует распространенное мнение, что во время учебы в вузе стоит делать упор на алгоритмы, благодаря этому потом не будет проблем с алгоритмическими собеседованиями. Я согласен, без сомнения, алгоритмы нужны, им правда стоит уделять много времени. Но какой в них смысл, если ты не знаешь, как писать код? Не знаешь, что такое функциональное программирование, объектно-ориентированное, не понимаешь, как работают базовые конструкции? Кому нужен олимпиадник, который в своей жизни не написал ни одного пет-проекта? Он придет к вам в компанию и начнет писать абсолютно не читаемый, но зато быстрый и оптимизированный код. Поэтому я считаю, что сначала нужно пройтись по основам программирования, дать студентам написать собственные проекты, оценить их код, дать им реальные задачи на практике, а не просто задачки на математику. Алгоритмов недостаточно, чтобы стать программистом.
Математика. Математика - это, пожалуй, единственное, что тут хорошо. Нет сомнения, что к концу четвертого курса любой из выпускников будет способен вкатиться в любую сферу, требующую знаний математики, например, в ML. Но и это не совсем положительная сторона. В индустрии много сфер, есть frontend, есть backend, есть DS, есть DevOps, и так далее, все перечислить я не в силах. Каждый студент, несмотря на интересующую его область, нуждается в навыках программирования, но не каждый нуждается в такой математической базе. Нельзя ходить на базовый или продвинутый курс, нет, ты обязан учить вообще все. Больше половины пар в неделю составляют области математики. Я нахожу эту систему неправильной. Вы можете сказать, что я еще молодой и зеленый студент, который мало чего понимает, и будете правы. Но мне лично интересен DevOps, я хочу изучать операционные системы и их администрирование, а вместо этого я вынужден учить математику в таких количествах, на которое после школьной программы даже смотреть страшно.
У меня не остается сил ни на что, кроме как изучения материалов, которые мне дают в университете. Я даже не в силах прочитать «Проект Феникс», который мне посоветовали в Discord-сервере Тупицы (twitter: @the2pizza). Учеба отнимает очень много сил, кто-то даже выгорает, как, например, мой куратор. К концу первого курса он понял, что его уже тошнит решать эти олимпиадные задачи, поэтому он ушел в дизайн. Человек не написал ничего стоящего, не узнал о практиках программирования, его просто гоняли по задачам по типу «ввести число / посчитать / вывести число». По этой причине многие забивают на учебу и отчисляются, а кто-то берет академических отпуск.
Допустим, что все же силы на обучению чему-либо кроме ВУЗовских предметов найдется, где брать материалы или инструменты? Тут на помощь приходят бонусы, которые некоторые компании готовы дать для обучения.
Например, JetBrains раздают свой софт бесплатно в образовательных целях, всем кто учится в аккредитованных высших учебных заведениях. Еще есть пакет студента на Github, куда входит более широкий спектр инструментов, позволяющие учиться, но этого все равно мало.
Начнем с того, что все эти инструменты или курсы на английском языке, и это проблема. Может это звучит дико, но в 2021 году у людей все еще проблемы с английским, в школе не дают достаточных знаний, а получать практику в разговорной речи почти не представляется возможным. Мне в этом плане повезло, я в 14 лет был хиккой-задротом и наиграл более трех тысяч часов в онлайн игру, в которую играл вместе с ребятами из Соединенных Штатов, благодаря чему довольно неплохо знаю язык и почти свободно на нем разговариваю.
Но что делать остальным? Им придется потратить кучу времени на изучение языка, ВУЗ достаточных знаний тоже дать не может, у нас одна пара в неделю, на которой мы изучаем деловую речь. Поэтому нужно больше русскоязычных курсов, которые будут бесплатно доступны для студентов, хотя бы урезанные в возможностях и только ограниченное количество времени, но они будут. Студентам нужен лишь структурированный материал и задания для практики, остальное они сделают сами.
У нас в стране есть большие компании, обладающие ресурсами, чтобы решить эту проблему, но они не хотят. И это плохо. Например, я бы с радостью прошел курс Яндекс.Практикума по облачным сервисам, но для выполнения практических заданий мне нужно потратить около 10000 рублей. Для студента это неподъемная сумма, моя стипендия в первом семестре составляет примерно ~2040 рублей в месяц, плюс мне нужны средства на проживание, которые я получаю от родителей. У меня просто нет возможности оплатить пользование облаком. Тут как раз бы пригодилась помощь для студентов, но ее попросту нет.
Я считаю, что нужно дать больше инструментов и материалов для студентов: курсы по английскому языку, по языкам программирования, по операционным системам и многому другому. Таким образом мы сможем компенсировать проблемы отечественного образования и у нас появится больше способных junior-разработчиков.
На правах рекламы оставлю свой, пока еще пустой, твиттер, может быть кому-то будет интересно последить за взрослением подростка и его развитием в IT-индустрии.