Showing posts with label образование. Show all posts
Showing posts with label образование. Show all posts

Saturday, November 19, 2011

Онлайн-курсы от Стэнфорда

Многие программерские ресурсы уже раструбили эту новость, но, может, кто-то еще не слышал. Полтора месяца назад Стэнфордский университет запустил бесплатные онлайн-курсы по Artificial Intelligence и Machine Learning. Эксперимент оказался довольно удачным (хотя отзывы по курсу AI и хуже, чем по ML) и с января по март запускается вторая волна курсов, 8 9 по Computer Science и 2 по Enterpreneurship:

1. Machine Learning — jan2012.ml-class.org
2. Introduction to Computer Science — www.cs101-class.org
3. Natural Language Processing — www.nlp-class.org
4. SaaS and Software Engineering — www.saas-class.org
5. Human-Computer Interaction — www.hci-class.org
6. Game Theory — www.game-theory-class.org
7. Probabilistic Graphical Models — www.pgm-class.org
8. Cryptography — www.crypto-class.org
9. Design and Analysis of Algorithms — http://www.algo-class.org/
10. Technology Entrepreneurship — www.entrepreneur-class.org
11. The Lean Launchpad — www.launchpad-class.org

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

Курсы можно проходить в одном из двух режимов: Basic или Advanced track. В Basic треке вы просматриваете лекции и отвечаете на еженедельные тесты. При этом никто ничего от вас не требует. В Advanced треке в дополнение нужно делать лабораторные работы, которые будут проверяться преподавателями. Работы оцениваются, их нужно сдавать вовремя, за опоздание начисляются штрафные баллы. В конце курса в случае Advanced трека будут подведены итоги, и вы получите письмо от преподавателя с вашими результатами. Никаких сертификатов и прочего – все знания, что успели ухватить – все ваше.

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

Я решил записаться на 3 курса: Machine Learning, Natural Language Processing и Game Theory. По первому очень хорошие отзывы, да и просто любопытно сравнить с тем, чему нас учили, вторым я немного занимался в университете, а третий просто интересно прослушать – на нашей специальности (ПОАС) теории игр не было, но встречаюсь с ней все чаще. Не уверен, что хватит времени пройти все по Advanced треку, но во-первых, всегда можно перейти на Basic или вообще отказаться, а во-вторых, я думаю начать проходить Machine Learning сейчас с первой группой, включая лабораторные работы, чтобы в январе-марте сэкономить себе время на этом курсе.

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

PS. Кстати, кому интересно, до середины декабря проходит AI Challenge. В этом году, к сожалению, совсем нет времени участвовать, а жаль.

PPS. Курсы добавляются как грибы после дождя. Появился еще один курс, на этот раз по дизайну и анализу алгоритмов: http://www.algo-class.org/

Friday, May 20, 2011

Компании + вузы = исследования?

Только что прочел новость о том, что в ХНУРЭ открыли научно-учебную лабораторию по IT-технологиям. Особенно доставляет несколько моментов:

  1. лабораторию открыли при непосредственном участии EPAM Systems
  2. лабораторию называют “научно-учебной” :)
  3. проректор по научной работе ХНУРЭ говорит (просто на камеру?), что открытие лаборатории позволит улучшить уровень исследовательской работы университета

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

Смешно другое. Каким боком это все к исследованиям и научной работе? Это ведь обычный компьютерный класс + программа обучения студентов, направленная на то, чтобы они знали востребованные на рынке языки программирования и технологии и их уровень адаптации на месте работы был минимальным. Аутсорсинговой компании, которая организовывает подобные курсы, не интересны исследования и научная работа. Об интересах студентов, компаний и вузов я писал 2.5 года назад, но все это до сих пор актуально.

Более того, уверен, что все в ХНУРЭ и других вузах понимают лучше меня, что лучшие студенты, которые уходят на подобные курсы, по сути, потеряны для исследований и научной работы. Их свободное время сначала будет уходить на курсы, потом они пойдут на практику в компанию, потом уйдут туда работать – и все. И произойдет это даже не на 5м курсе, а на 3-4м. Учеба (почти) закончится, диплом будет написан абы как, в аспирантуру студент не пойдет, потому что возможности там заработать нет.

Самое неприятное во всем этом – это то, что в данной ситуации ничего с этим поделать нельзя. Это как раз та модель, когда довольны остаются все стороны: студент получает высокоплачиваемую работу, компании – сотрудников, вуз – хм, в общем, он тоже не остается в накладе. Но это все краткосрочная перспектива. В долгосрочной перспективе студент не получает некоторые фундаментальные CS-знания и исследовательский опыт, предпочитая им изучение инструментов, вуз – талантливых студентов, способных заниматься наукой под руководством преподавателей и аспирантов, компании же не теряют почти ничего, их задачи такие “выпускники” покрывают, серьезных же R&D компаний в Украине нет или почти нет. Две “проигравшие” в долгосрочной перспективе стороны – студенты и вузы – либо не понимают этого (студенты), либо просто живут сегодняшним днем, предпочитая синицу в руке (вузы).

И ситуация не изменится пока в Украине не появится серьезный спрос на исследовательскую работу в области Computer Science и возможность платить за эти услуги. Только тогда вузы смогут удерживать у себя студентов хотя бы на период обучения, давая им другой, не промышленный опыт и знания, в рамках вузов начнут рождаться интересные разработки и стартапы, и курс нашей страны на IT рынке, возможно, сменится с аутсорсинга/аутстаффинга на разработку собственных продуктов и серьезные наукоёмкие исследования.

Sunday, June 14, 2009

Снова об IT-образовании

Эта заметка является комментарием на заметку Артема Сердюка "Обучение программистов в украинских вузах". К сожалению, она не поместилась там как комментарий из-за размера, поэтому выкладываю ее здесь в полном виде. Заранее прошу прощения у автора за это.

"Тема, конечно, животрепещущая (сам писал недавно заметку на немного другую, но тоже связанную с образованием тему), но заметка уж очень эмоциональна. У вас много претензий к вузам, в которых плохо построен образовательный процесс, к преподавателям, которые не обучают студентов на должном уровне, и к самим выпускникам, которые не умеют работать на "промышленном уровне". А вместе с тем разве коммерческим фирмам кто-то обещал, что выпускники будут сходу вышивать крестиком? Вроде бы нет. Более того, спросите тех же опытных банкиров, экономистов, юристов, и не только в нашей стране - там те же проблемы с "дорабатыванием напильником". Разве что напильник может быть более или менее грубым.

Программирование и "промышленная" разработка софта - это, как говорится, две большие разницы. Хороший "промышленный" программист (как и любой другой специалист) - это не только технически подкованный программист, но еще и грамотный, ответственный, умеющий работать в команде работник. У вузов же задача другая - они не конвейерных рабочих готовят для ублажения нашего родного аутсорсового бизнеса (т.е. по принципу ПТУ), а стараются, кроме непосредственно программирования, научить человека еще и другим важным предметам. Да, не все из них понадобятся в жизни. Да, образовательно-техническая база устарела. Да, действительно хороших преподавателей мало. И наконец, да, программистов нужно учить по-другому. Все эти проблемы есть. Но только решение их нужно искать не с точки зрения "а вот нам сейчас нужны PHP-девелоперы, давайте нам их, и побольше", как того требует рынок, и не с точки зрения "забрать студента как можно раньше, пока вуз его окончательно не развратил" а все-таки с точки зрения реформирования наших вузов для того, чтобы на выходе они давали хорошо подкованных CS-специалистов, которые будут:

  1. знать техническую базу: устройство компьютера, микропроцессора, и т.д., понимать, что такое ОС, как работают компьютерные сети, что такое интернет
  2. уметь программировать (язык не важен, важно понимание и алгоритмическое мышление)
  3. знать алгоритмическую базу, структуры данных, базы знаний, основы нейросетей, искусственного интеллекта, и т.д.
  4. понимать, что такое качество кода, ООП, шаблоны проектирования, масштабирование, производительность и т.д.
  5. знать хотя бы по одному языку программирования разных уровней, и те или иные технологии по выбору студента и на том уровне, который он хочет знать
  6. разбираться в базах данных (реляционных, объектных), XML и других форматах и способах хранения данных
  7. понимать весь цикл разработки софта (а не просто уметь писать лабы), иметь представление о методологиях разработки, командной работе, QA
  8. быть немного знакомым с best practices of software development: source controls, unit testing, CI, и др., возможно - BDD, DDD, XP-практиками
  9. наверняка, что-то забыл, впишите сами...

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

Это, конечно, не все. Со стороны вузов еще нужно перенимать опыт коллег (МГУ, MIT, etc.), хотя бы лекции их посмотреть, отправлять преподавателей на стажировку. Заинтересовывать студентов действительно интересными научными разработками. Брать заказы и гранты у крупных госорганизаций и не только у них. Обновить подходы к обучению программированию, продумать и улучшить программу. Дать студентам бОльшую гибкость в выборе "специальных" предметов: один может хотеть изучать веб-программирование, второй - мобильные системы, а третий - робототехнику, одному нравится LAMP, второму - .NET, третьему - Ruby on Rails. Постоянно держать связь с IT-индустрией нашей страны.

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

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

Thursday, November 20, 2008

IT-образование vs. профессиональный рынок

К написанию следующей заметки меня подтолкнула статья Виктора Ивановича Каука, к.т.н., директора Центра технологий дистанционного обучения Харьковского национального университета радиоэлектроники о проблемах подготовки кадров для IT-отрасли, ссылку на которую Паша Подлипенский разместил и снабдил комментариями в своем блоге. Меня эта тема также волнует уже очень давно, т.к. я только относительно недавно сам был студентом ХНУРЭ и видел все происходящее с нами и университетом своими глазами. Более того, я был активным участником данного действа, и мне бы хотелось высказать свои мысли по этому вопросу.

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

Итак, у нас есть три действующих лица: вуз, коммерческие IT-фирмы и студенты. Причем говорить я буду не обо всех студентах, а лишь о тех, о ком говорит Виктор Иванович – о тех 10-20%, которые находят себе работу по специальности, еще обучаясь в университете. Исходя из своего опыта (я учился на кафедре Программного обеспечения автоматизированных систем, на потоке численностью около 180 человек, «работал» в университете с первого курса и после третьего ушел работать в крупную IT-компанию города Харькова) я могу сказать, что я наблюдал 2 волны оттока студентов. Первая волна началась где-то с начала третьего курса и закончилась где-то на четвертом. Если не считать тех единиц, которые пошли работать на 1-2 курсах, здесь ушло порядка 15-20 человек, т.е. где-то 10% потока. Связана первая волна была с тем, что 1) толковые ребята поднабрались уже достаточно опыта в вузе и шабашках, чтобы попробовать свои силы, 2) у них появились запросы, требующие финансов, и 3) многие из них попали на практику в коммерческие фирмы, после которой они там и остались. Потом в течение полугода-года опять же устраивались на работу единицы, а где-то с середины 5-го курса, когда начался диплом, пошла вторая волна, которая захватила еще где-то человек 10-15. Общее количество работающих на потоке приблизилось к 20-25%. После окончания вуза работать по специальности (в той или иной мере) пошли еще наверно процентов 10. Остальные работают не по специальности. Но разговор сейчас не о тех, кто нашли работу после вуза, а о тех, кто, по сути, частично бросил обучение с различными целями.

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

Итак, почему толковый студент-программист хочет идти работать:

  1. хочет найти применение тем знаниям и опыту, что у него уже есть (есть у человека стремление к самовыражению, есть)
  2. хочет быстрее получить более серьезные знания в реальной работе, т.к. он этого не может получить в вузе, где дают широкие, но неглубокие знания
  3. хочет получить опыт реальной работы, т.к. это ему пригодится после вуза
  4. хочет начать зарабатывать деньги, причем не такие и маленькие, т.к. запросы уже выросли, а стипендия – нет (или ее и не было), хочет стать финансово независимым
  5. и, да, как правильно отметил Виктор Иванович, иногда хочет просто казаться взрослым и шарящим, мол, меня вот взяли, я работаю, я умный

Чего хочет вуз и преподаватели:

  1. дать своим студентам максимально качественное образование
  2. трудоустроить студентов после окончания вуза (есть такое требование Минобразования, насколько я знаю)
  3. высокой посещаемости студентами занятий
  4. проведения совместных исследовательских работ, т.к. у преподавателей на это зачастую просто не остается времени, им нужны помощники и исполнители, не говоря уже о том, что часто они просто исследователи в душе
  5. привлечения самых толковых ребят в аспирантуру с прицелом на работу в вузе

Чего хотят коммерческие фирмы в условиях большого спроса на специалистов:

  1. получать после вуза хорошо подкованных специалистов в достаточных количествах, которых не нужно переучивать или учить с нуля
  2. лучше получать специалистов средних, но много, чем действительно классных, но мало, т.к. специфика аутсорсинг-проектов, как правило, не требует много асов, она требует одного-двух асов и кучу хороших исполнителей
  3. успеть забрать самых лучших на работу именно к себе, т.к. в противном случае они будут работать на других, а тебе останутся ребята послабее
  4. дать возможность работающим у них студентам не тратить много времени на учебу, т.к. это отвлекает их от реальной работы, которая приносит прибыль фирме
  5. не давать особой возможности студентам работать на полставки (есть фирмы-исключения, но их не так много), т.к. такую работу сложнее координировать, планировать и, в конечном счете, продать конечному клиенту

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

К сожалению, состояние нашего государства сейчас таково, что ему плевать на все эти проблемы. Какие там стипендии, гранты, какие там исследования. Я считаю, что IT-отрасль в Украине существует во многом не благодаря, а вопреки. В то же время, я уверен, что если бы в университете была интересная исследовательская работа, подкрепленная именными стипендиями, грантами и неким подобием зарплат, многие из тех, кто ушел работать, подумали бы 30 раз, прежде чем сделать это. Не знаю, кто как, а я уже насмотрелся на эти однообразные аутсорсовые приложения, в которых можно найти в лучшем случае технологический интерес, но уж никак не исследовательский (что бы там кто ни говорил, а настоящего R&D в аутсорсовых проектах, как кот наплакал). Если бы мне сейчас предложили программировать роботов, системы с элементами ИИ или спутники, я бы пошел, не раздумывая. А если бы это предложили в университете, это был бы вообще предел мечтаний. По крайней мере, часть людей, которым это действительно интересно, остались бы и могли бы заниматься тем, что им нравится, и не факт, что с меньшими зарплатами и перспективами.

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

  1. С ранних курсов стараться занимать студентов на различных внутренних проектах вуза, как учебных, так и практических, в рамках изучаемых ими дисциплин. При этом не нужны эти искусственные курсовые и лабы. IT – это новый век, здесь нужны новые подходы. В разных вузах используются экспериментальные подходы по обучению студентов программированию, когда пишутся проекты целыми группами студентов, максимально приближенно к реальности.
  2. Давать студентам по-возможности полные и последние знания, чтобы им было интересно ходить на занятия. Чтобы они знали, что они могут и там могут научиться чему-то полезному, а не только «на улице». Постоянно совершенствовать свои знания и умения, чтобы быть «в струе».
  3. Стимулировать внеклассные, факультативные занятия на различную тематику.
  4. Проводить в рамках вуза различные конференции, форумы, приглашать признанных специалистов, чтобы заинтересовать, зажечь людей.
  5. Проводить олимпиады по программированию, конкурсы научных работ, отправлять ребят с их работами в другие города, за границу. Пусть посмотрят мир.
  6. Стимулировать исследовательскую работу. Искать реальные, интересные проекты, желательно оплачиваемые, и решать их силами студентов и кафедры. Создавать исследовательские центры внутри вуза, получать гранты и т.д.
  7. Отправлять талантливых ребят (а не тех, кто заплатил, как у нас часто случается) учится по обмену за границу, выполнять там какую-то исследовательскую работу. В общем, активизировать связи с другими вузами и двигаться в этом направлении.
  8. Поощрять ребят, добивающихся успехов, стимулируя и подстегивая тем самым остальных.
  9. Сделать будущую возможную работу в аспирантуре максимально привлекательной для студентов, причем не только в финансовом плане.
  10. И так далее, думаю, основная идея понятна, а дальше можно развивать фантазию.

Да, эти меры не дадут 100%-го возврата людей в вуз, но они, по крайней мере, оставят тех, кто бы действительно хотел бы заниматься наукой и исследованиями, в вузе, а также, возможно, повысили бы те 20-30% работающих в результате по специальности ребят еще раза в полтора-два. Разве овчинка не стоит выделки? И, что удивительно, это выгодно не только вузам, но также и коммерческим фирмам, не говоря уже о студентах.