beldmit: (Манул)
[personal profile] beldmit
Вот тут [livejournal.com profile] zabivator пишет о том, что надо бы читать в вузах для программистов. Я с этим категорически не согласен.

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

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

Так вот, перечисленные Олегом вещи - это не куски картины мира. Навыки чтения и написания email - в чистом виде делопроизводство, уж простите. Курсы секретарей, 3 месяца без отрыва от труда. Task management - тоже где-то рядом на самом деле. Нужны не программистам, а каждому экземпляру офисного планктона. Да, способы работы с электронной почтой можно еще немного с психологией увязать, но тоже не в вузовском объеме.

А первые 2 пункта - про Release management и QA - более-менее IT-специфичные навыки. Но - проблема в том, что они не научные, а ремесленные. В лучшем случае - инженерные. Computer science там внутри тоже есть - в алгоритмах слияния изменений, например. Но этому учить надо явно не всех программистов. Как не всех надо учить лингвистике, но всех - правилам про жи-/ши.

На самом деле программирование - не отрасль математики. И не надо впустую тратить силы на подготовку программистов в ВУЗах. Готовить их (нас) по большей части надо в техникумах. Вбивая навыки ремесла: комментарии, автотесты, выравнивание кода, говорящие названия переменных - как вбивают технику безопасности работы на токарном станке.

Date: 2011-02-09 09:13 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Вот как раз у Димы совершенно никудышное высшее образование. А то бы он понимал важность ремесленных навыквов, данных в его процессе. Меня вот в ВУЗе (помимо всего прочего) копать шурфы учили.

Date: 2011-02-09 09:18 am (UTC)
From: [identity profile] beldmit.livejournal.com
Покажи, плиз, в тексте, где я не понимаю важность ремесленных навыков.

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

Хотя выкидывать нафиг мне доводилось именно грамотный с точки зрения "научной" объектно-ориентированный код. За неподдерживаемостью ремесленной.

Date: 2011-02-09 09:25 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Ты недооцениваешь важность давания ремесленных навыков в процессе высшего образования. Ну невозможно сформировать у человека целостную картину мира если эта картина не будет замыкаться на вещи, данные нам в ощущениях.

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

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

Date: 2011-02-09 09:29 am (UTC)
From: [identity profile] beldmit.livejournal.com
Именно. Но не всех бегающих с рейкой надо после этого учить изолиниям.

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

Date: 2011-02-09 09:34 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Как раз ести человека УЧАТ чему-то связанному с геодезией/картографией, его учат именно изолинии рисовать.
А с рейкой бегать на производстве можно первого попавшегося бича нанять. Даже трехмесячных секретарских курсов не понадобится. Главное чтобы знал с какой стороны у рейки верх. Но это в него той же рейкой вбивается в течение двух часов.

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

Date: 2011-02-09 10:09 am (UTC)
From: [identity profile] gineer.livejournal.com
\\ поделились на два класса - одну чтобы нечувствительно сделал сам пользователь, вторую - чтобы программист-инженер или хотя бы техник сделал быстрее, чем он сейчас это кодеру объясняет.

То есть... чтобы вообще устранить надобность в программистах? :))

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

А с другой стороны -- придумывают всякие CASE средства.
Вон Симони со своими Language Workshop'ами... какраз такая идея -- чтобы специалист не общался с програмером, а писал мета-спецификации по своей проблемной области.
Но что-то не слышно там большого хая на эту тему, свидетельствующего об успехе.
Видать потому, что эти мета-спецификации ВСЕ РАВНО нужно кому-то брать и переводить на язык компьютера.

Date: 2011-02-09 10:15 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Лично я под словом "программист" понимаю человека который способен спроектировать систему - вытрясти из пользователя невнятные хотелки и сделать из них формализованную спецификацию. Вот эта спецфикация и должна исполняться непосредственно, минуя стадию кодера.

Вообще на самом деле все делается ровно наоборот, по сравнению с тем что надо бы.

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

А пользователю надо давать "интуитивно понятные" GUI-средства.

Date: 2011-02-09 10:18 am (UTC)
From: [identity profile] beldmit.livejournal.com
Боюсь, ты сделал сколько-то ошибок в написании слова "аналитик".

Но с выводами - согласен.

Date: 2011-02-09 10:31 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Вы правда верите в этих ваших "программистов" и "кодеров" или просто по инерции ерунду пишете?

Date: 2011-02-09 12:57 pm (UTC)
From: [identity profile] gineer.livejournal.com
\\вытрясти из пользователя невнятные хотелки и сделать из них формализованную спецификацию. Вот эта спецфикация и должна исполняться непосредственно, минуя стадию кодера.

Вот это и есть то, что хотят получить через всяческие Language Workbench'и (http://martinfowler.com/articles/languageWorkbench.html)
Подсунуть пользователю вордо-подобную среду, в которой он словами своей проблемной области бы, написал чего ему хочется.
Дальше эти спецификации (полу)автоматически транслируются в тот или иной язык.
А "системные архитекторы" какраз тем и занимаются -- обеспечением того, чтобы подобная трансляция происходила максимально гладко.


\\А пользователю надо давать "интуитивно понятные" GUI-средства.

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

Вывод -- если у человека нет никакой заинтерисованности, то ему даже "интуититвно понятные интерфейсы не помогут".
Если же заинтерисованность есть, то ему и командную строку освоить будет не так и сложно.

Date: 2011-02-09 09:25 pm (UTC)
From: [identity profile] raccoon.livejournal.com
Лучшие программисты, которых я видела за свою довольно долгую жизнь, заканчивали:
ВМиК МГУ (3 человека)
Мехмат МГУ (2 человека)
РК МВТУ им. Баумана (3 человека)
Факультет кибернетики МИФИ (1 человек - это скорее счастливое исключение, чем правило, и факультет теоретической и экспериментальной физики МИФИ (3 человека - это скорее правило, чем исключение).
ФУПМ МФТИ (1 человек) и ФАЛТ МФТИ (1 человек).
Но - увы, никак не техникум.
На самом деле, именно основам, которые позволяют освоить профессию и неплохо писать на C++, дают в любой приличной физматшколе (в порядке углубленности проф. подготовки программиста номера будут располагаться примерно так: 18-я, 179-я, 91-я, 2-я, 57-я).
Без чего принципиально невозможен действительно хороший программист?
Без следующих дисциплин:
Теория множеств
Дискретная математика и математическая логика
Алгебра и функциональный анализ
Теория вероятностей
Где-то третий курс ВМиК и Мехмата, соответственно. Основы (т.е. первые два курса Мехмата) - это любая приличная физматшкола. Лично мне из приличных больше всего нравится 179-я: у них широкий естественнонаучный кругозор, и они легче ориентируются в окружающем пространстве.

Date: 2011-02-10 07:00 am (UTC)
From: [identity profile] beldmit.livejournal.com
У меня (без факультетов):

МГУ - Мехмат 1, Географический 1. ВМК-шников убедительных не встречал.
Бауманка - 2
Неоконченное высшее - минимум 2
МИЭМ - 2, считая меня.

Понятно, что с Физтеха должно быть много, но в мои сети они не попадались вообще. МИФИ-сты то же самое.

А соответствующих техникумов просто нет, вот и не встречаются оттуда программисты :-)
Про набор предметов скорее согласен, хотя и с оговорками, но это все нам давалось не позднее 3-го курса. То есть по-любому должно хватать "неоконченного высшего"...

Date: 2011-02-10 09:40 am (UTC)
From: [identity profile] raccoon.livejournal.com
ВМиК
наиболее яркие представители: [livejournal.com profile] gaperton, [livejournal.com profile] averros. Это те, кто здесь проявляется как-то.
В число лучших из всех, кого я знаю, они не включены: я считала только тех, с кем работала вместе.
МИЭМ - да, я видела очень хороших специалистов оттуда, но до ВМиК там (среди моих бывших коллег) там было очень далеко.

Date: 2011-02-10 11:50 am (UTC)
From: [identity profile] beldmit.livejournal.com
Кстати, вопрос по списку предметов.

Дискретка, видимо, включает графы?
Теория множеств - понимаю, РСУБД из нее растут. Логика - понимаю.

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

Date: 2011-02-10 12:34 pm (UTC)
From: [identity profile] raccoon.livejournal.com
Да, разумеется, дискретка включает графы.
Алгебра и функциональный анализ - вообще в теории алгоритмов, не только в криптографии. Криптография - частный случай.
Математический анализ - пожалуй, в применении к численному моделированию. Задачи распознавания/обработки изображений, например, без знания математического анализа просто не решаются.
У меня, кстати, не математический анализ в списке был указан, а функциональный анализ. Тоже используется в разных алгоритмах, и гораздо чаще, чем математический анализ.

Date: 2011-02-09 09:55 am (UTC)
From: [identity profile] mashiki.livejournal.com
А меня не учили, хотя были должны. Причиной не-учения было отсутствие прививки от энцефалита, так что шурфы я постигала в теории.

Date: 2011-02-09 10:02 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Деградация (пост)советского высшего образования это такая деградация. В мое время (вторая половина 80-х) из программы как-то ненавязчиво выпало вождение машины (военная кафедра гараж прихватизировала) и лошади (уж не знаю кто прихватизировал конюшню). Работе с шестом и каноистким веслом на лодке тоже уделялось несколько меньше внимания чем эти дисциплины того заслуживают.

Date: 2011-02-09 10:06 am (UTC)
From: [identity profile] mashiki.livejournal.com
Ремесленные навыки в процессе получения высшего образования таки постигаются на практиках, если их не прогуливать. Опять жеж, поскольку у нас система старая и советская, то по идее инженер должен начинать свой трудовой путь с младших должностей, на институтской практике поняв на собственном опыте всю тяжесть труда рабочего. Впрочем, в Омске эту систему модифицировали, и выпускников политеха, которые по части нефтеперерабатывающего оборудования, брали на работу только слесарями, а дальше вытянет или нет - уже его трудности. В этом есть суровая правда жизни: трудно быть старшим инженером установки, не зная, как работают подчиненные.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 27th, 2025 04:12 pm
Powered by Dreamwidth Studios