?

Log in

No account? Create an account
о преподавании программирования - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

о преподавании программирования [апр. 23, 2012|03:01 pm]
Anatoly Vorobey
В реддите обсуждают закрытие факультета CS (Computer Science) во Флориде и один обмен мнениями там заставил меня задуматься. Один из участников написал, что в Америке на факультеты CS поступает очень мало абитуриентов в сравнении с другими факультетами, после которых реально найти работу. Более того, даже это сравнительно малое число абитуриентов завышено, если учесть два обстоятельства. Во-первых, студенты в CS чаще других переходят на другие факультеты или бросают учебу (30-50% drop rate). Во-вторых, из тех, кто остается и заканчивает степень большинство и так уже умели программировать к тому времени, как они записались. Из чего следует вывод, что мы не умеем на самом деле преподавать программирование. Либо человек сам научился, и только дополняет свое умение формальным образованием, математикой, алгоритмами итд., либо не научился, и тогда университет его (чаще всего) не научит.

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

Вот я и думаю, кто прав, и как это чаще бывает? Большинство знакомых мне программистов занимались этим в детстве или школе еще до высшего образования. Очень мало я знаю людей, которые пришли в университет с нулевым знанием программирования. Из таких еще меньше - тех, кто закончили учебу и работают по специальности; есть такие, но выборка крохотная, не знаю, насколько это нормально и обычно.

Как вы думаете? Может, вы знаете много людей, которые учили программирование с нуля в университете, или сами такой человек, и поделитесь мнением/опытом? Может ли университет научить программированию?
СсылкаОтветить

Comments:
Страница 1 из 6
<<[1] [2] [3] [4] [5] [6] >>
[User Picture]From: anderson_mike
2012-04-23 12:08 pm
А как оценить количественно умение программировать? понятно же, что умение программировать - это не бинарный признак.
Так-то у нас в школе, например, 2 одиннадцатых класса из 4-х, или даже три, не помню, учили "программировать", на паскале. Некоторые даже смогли выучить циклы. Нельзя же их назвать умеюшими программировать в том смысле, в котором усеет программировать человек, которого возьмут на работу программистом.
(Ответить) (Thread)
[User Picture]From: rnkbb
2012-04-23 12:21 pm
для тех кто "умеет программировать" - этот признак практически бинарный ;)
(Ответить) (Parent) (Thread) (Развернуть)
From: krakenrus
2012-04-23 12:11 pm
Мне кажется, то же утверждение верно и про какую-нибудь математику. Нет никого, кто пришел бы на мат.факультет с нулевым знанием математики и пр.
(Ответить) (Thread)
[User Picture]From: edwardahirsch
2012-04-24 05:51 am
Но стоит скорректировать.

Если математике в каждой школе учат, и на матфак просто не берут НАСТОЛЬКО необразованных, то программированию в большинстве школ НЕ учат, поэтому университеты вынуждены брать на себя заботы школьных учителей (если брать только умеющих, пул абитуриентов сильно уменьшается).

Я убедился, что программистами потом работают не только те, кто программировал-как-дышал до поступления, так и те, у кого никакого опыта не было. Была бы голова на плечах.

С точностью до этого, на CS-факультете ожидается (не от всех - от кого-то одно, от кого-то - другое)
- владение теми концепциями и приёмами, которым в школе учить рано,
- навык работы в разной архитектуре,
- навык промышленной разработки,
- обучение математике, алгоритмам и пр.,
- обучение менее математическим предметам (базы данных и пр.),
- наконец, обучение не только программистов, но и информатиков.
Примерно вот так: http://mit.spbau.ru/ (я там отвечаю только за теоретическое отделение, но тем не менее) :-)
(Ответить) (Parent) (Thread)
[User Picture]From: vesch9
2012-04-23 12:11 pm
Я такой человек. В школе увлекался математикой и русским языком, в итоге выбрал техническую специальность. Закончил Мат-Мех СПбГУ на специальность математик-программист, работаю по специальности.
К слову, в нашем вузе программировать почти не учили. Три года у нас была высшая математика в различных ее проявлениях. БОльшая часть приобретенных по программированию знаний - самостоятельное изучение, основанное на собственном энтузиазме или на необходимости писать курсовую/диплом.
И по моему опыту работы программистом, учеба после окончания вуза не заканчивается, а только начинается.
(Ответить) (Thread)
[User Picture]From: creta
2012-04-23 09:13 pm
Очень нравится ваш юзерпик. Откуда это, если не секрет?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: penguinny
2012-04-23 12:11 pm
Может научить, но не до профессионального уровня. Очень ограничено кол-во часов преподавания, нет возможности делать проекты того размера, на котором многие чуть более сложные вещи становятся понятными и нужными. Университет может только толкнуть в правильном направлении, подробности нужно осваивать самостоятельно.

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

Edited at 2012-04-23 12:12 (UTC)
(Ответить) (Thread)
[User Picture]From: dzz
2012-04-23 12:15 pm
Программист - это, всё-таки, определённый склад ума, а уже потом - уровень владения техникой.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: dzz
2012-04-23 12:13 pm
На факультетах CS учат не только собственно программированию.

Я заканчивал факультет кибернетики МИФИ, программировать умел со средних классов школы (в активе на момент поступления было 5 языков программирования). IMHO, высшей школе обязан не столько практическими навыками разработки софта, столько теоретической подготовкой в области численных методов, статистики, моделирования, надёжности и создания больших программных систем. Многое потом очень пригодилось.

Среди одногруппников были те, кто программиировать раньше не умел. Часть из них научилась и даже работает по специальности.
(Ответить) (Thread)
[User Picture]From: avva
2012-04-23 12:18 pm
Да, я не спорю с тем, что на (хороших) факультетах CS преподают еще другие полезные вещи, кроме собственно умения программировать. Я не к тому, что эти факультеты не нужны :) просто с этим самым умением писать программы любопытно выходит.

Какие еще есть специальности, где [если это верно] большинство студентов, успешно заканчивающих степень, главное занятие умели неплохо делать и до учебы? Скажем, во врачи не идут ан масс люди, и так умеющие лечить. Подозреваю, что студенты-архитекторы не умели проектировать здания до начала учебы. Итд.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: olkab
2012-04-23 12:14 pm
Я такой человек. За меня в школе мальчики из параллельного класса программы писала. Я была тогда жуткий гуманитарий и брезговала.
Научили в huji как миленькую, потом 15 лет программировала, да и сейчас наверное могу, если сильно надо. На втором курсе пошла работать, и со товарищи такими же студентами написала программу для дапей-захав, с нуля практически, которая до сих пор им книжки клепает (сложная, интерактивная, с базой данных и непростым алгоритмом расположения фигни на странице и проч). Ну, потом ещё много всякой фигни писала, но главное - да, универ может. Но не любой.
(Ответить) (Thread)
[User Picture]From: webface
2012-04-23 12:15 pm
У себя в университете наблюдаю примерно тоже самое: все, кто учится нормально, занимались программированием еще задолго до университета, а кто плохо, впервые увидели Hello World уже начав учебу.

Думаю, дело не в том, что в университетах не умеют учить программистов, а в том, что толковые студенты начинают практиковаться самостоятельно, вне зависимости от школьной программы.
(Ответить) (Thread)
[User Picture]From: callis
2012-04-23 12:16 pm
Я такой человек. Поступила на Computer Science, программировать не умею, после университета хочу работать программистом.

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

Мне кажется, что и в других специальностях так же.
(Ответить) (Thread)
[User Picture]From: rnkbb
2012-04-23 12:27 pm
а можно вопрос: совсем никакие программки не писали? почему не попробовали что-нибудь программировать до университета? почему тогда выбрали CS - вдруг окажется не ваше?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: dollyli
2012-04-23 12:16 pm
моя подруга училась программированию - не в юни, в тейфе - это аналог техникума, наверное - там учат четким навыкам для работы.
Она всю жизнь считала (и продолжает) себя полным куку в математике, но при этом оказалась талантливым программистом, и сейчас (7 что ли лет она работает) - уверена, что это дело всей её жизни, её прет от того что она делает)

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

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

я училась в универе в россии на информатике, нас там тоже учили программировать помимо прочего - на паскале и на си, тоже с нуля.
но это было совсем давно и я по специальности не работаю)
(Ответить) (Thread)
[User Picture]From: furry
2012-04-23 12:17 pm
Меня учили, я вообще компьютеров до универа в глаза не видела и только догадывалась об их существовании. Понятно, что научить можно только того, кто сам хочет учиться - но обучение программированию не сильно отличается от обучения чему-то другому. С моей точки зрения, это включает в себя систематическую подачу теоретической базы - т.е. не "как", а "почему", и практику с анализом результатов. Не вижу тут особой разницы между органической химией и программированием :)
(Ответить) (Thread)
[User Picture]From: yan
2012-04-23 12:20 pm
Я знаю довольно много таких людей по очевидной причине -- лет мне много потому что -- и научились они (мы), чему научились, в университете, но нас учили любители, и это в некотором роде не в счет.
(Ответить) (Thread)
From: (Anonymous)
2012-04-24 09:49 am
my, navernoe, rovesniki (Minsk-22, potom 32, potom ES-1022?)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: breqwas
2012-04-23 12:21 pm
Формально, я именно такой человек - я практически не умел программировать до учёбы в институте, а во время неё - научился.

Лет в 12 я пробовал писать на паскале, дальше простейших if и while не ушёл, ничего интересного не написал и забросил это дело. Концепцию указателя осознать не смог. Учился я в гуманитарном лицее, мы учили английский и читали петрарку при свечах. Поступил, однако, на техническую специальность.

В институте двухсеместровые курсы по C и C++ были одними из немногих объективно хороших - их читали "for fun" двое ребят, выпустившиеся за несколько лет до того, и работавшие где-то программистами. Преподавание было не самое системное, но очень толковое - программировать я научился. С остальным образованием было всё плохо, причитающийся мне computer science я добираю сейчас на coursera, как ни смешно это звучит.

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

Edited at 2012-04-23 12:23 (UTC)
(Ответить) (Thread)
[User Picture]From: mfi
2012-04-23 10:53 pm
А вот вопрос насчет указателей - вот как это - не осознали? Не рассказали толком? Или не учили понимать/пользоватся, а потом в голову идея пришла? Или не показалось интересным/важным - а сейчас оценили и все стало понятным? Можно подробнее?

Потому что когда то этот признак довольно четко делил людей в профессии случайных - и прирожденных. Можешь в голове крутить их - или не получается, тяжело, неудобно, сложно, ну их нафиг. Киких то машинок в уме не хватает - и все. Я сам про них узнал, уже работая, когда познакомился с первым ассемблером, еще до Си - но там без них работать просто нельзя. А в фортране, алголе, пл/1 вполне без них обходился, хотя они там были (да и есть) .
(Ответить) (Parent) (Thread) (Развернуть)
From: (Anonymous)
2012-04-23 12:21 pm
Нынешние факультеты CS - это очень странный зверь. Чему-чему, а программированию там точно научиться нельзя, потому что большая часть преподавателей программировать не умеет - они ученые, а не программисты. Ситуация несколько бредовая: представьте, что есть факультет Здорового Тела, готовит он легкоатлетов и борцов, а преподают там врачи-профессора (с животом и одышкой, а как же) - вот это и есть CS в тепершнем виде.
(Ответить) (Thread)
[User Picture]From: cema
2012-04-23 09:46 pm
Ну это далеко не везде так.
(Ответить) (Parent) (Thread)
[User Picture]From: mad_ghost
2012-04-23 12:21 pm
согласен с penguinny
либо есть, либо нет ((( мне хочется высшее программиста только из за диплома. Нашел одного более менее толкового паренька, сейчас у меня работает, но опять же не программист конечно, но в компьютерах разбирается, только шум стоит. Т.е. если бы захотел мог бы. И я начал замечать, что есть люди которые могут работать с компьютерами вообще, не в смысле открыть программу, ввести текст, сохранить и т.п. а на уровне администратора или программиста.
В общем единичные случаи.
С другой стороны хорошо ) конкурентов меньше ;)
(Ответить) (Thread)
[User Picture]From: gruimed
2012-04-23 12:21 pm
Большинство моих друзей-программистов умели программировать и до поступления в универ, но абсолютное большинство моих коллег и сокурсников - нет. И ничего, нормально программируют. Не следует забывать что абсолютное большинство программистских задач не требуют каких-то сверхчеловеческих возможностей.
(Ответить) (Thread)
Страница 1 из 6
<<[1] [2] [3] [4] [5] [6] >>