Pull to refresh

Comments 108

Полностью с вами согласен, спасибо за статью!
Плюсадин, и пусть мне ещё сильнее насрут в карму, но я так согласен с автором статьи!..
да ну перестаньте, кто вам насрет, тут большинство согласных будет
Ну могут насрать за «плюсадин» в каментах — я это имел ввиду :). При отрицательной карме (а она была такой) сложно голосовать за каменты, но иногда нельзя удержаться от «плюсадина»!
''Оно не нужно в таком объеме большинству программистов''
к сожалению — да.
«Нужно читать математику по мере столкновения с проблемами при изучении самого программирования»
а вот этого неполучится. 'читать математику' такое же плохое выражение как и 'работать компьютерщиком'
UFO just landed and posted this here
Когда пойдете преподовать, позовёте меня учится. ))
А как же оценка сложности алгоритма и обход графов? Это не считая таких узких задач, как криптография, кодирования и т. д.
Хотя, возможно, для прикладного программиста — действительно нужно в ограниченном объеме. Для системного — нужно однозначно.
Давайте начнем с оценки сложности алгоритмов. Программист должен уметь КАЧЕСТВЕННО ОЦЕНИВАТЬ сложность. Ему не нужно находить точное выражение для оценки сложности, не нужна и точная асимптотика. Вы знаете, что для огромного количества тривиальных (казалось бы) задач, вообще не существует точных оценок сложности? Поиск верхних и нижних границ сложности для сотен фундаментальных алгоритмов является нерешенной математической проблемой. Для многих задач не доказана их NP-полнота. Что там далеко ходить — знаете ли Вы, что математики до сих пор не установили какова сложность операции перемножения двух обыкновенных матриц общего вида! И это в тривиальных-то задачах такая неясность, что уж говорить о задачах из реального мира…
Поэтому точная оценка сложности редко кому нужна. И в реальной практической работе программиста ему не нужна высшая математика такого уровня, которая потребуется для оценки сложности а-ля Кнут. Зато нужно уметь прикидочно оценивать сложность реальных алгоритмов, не прибегая при этом к мега-нетривиальной математике. На нее попросту нет времени, точная оценка может и месяцы занять.
Более того, той математике, которая нужна для оценки сложности некоторых алгоритмов, могут вообще не учить в ВУЗе — она может оказаться за пределами ВУЗовской программы. Чтобы ее понять нужно завершить математическое образование в университете и пойти заниматься научной работой в аспирантуру. Или читать самостоятельно монографии и работать своей головой месяцы и годы. Это нужно ПРОГРАММИСТУ, как Вы считаете? IMHO это интересует только истинных математиков, программисты же подождут их окончательного вердикта.
Понял, вы правы, выходит.
На самом деле, состоявшемуся программисту не нужно практически ничего, из того, что преподают в ВУЗ-ах. Но тем не менее, кучей тупых предметов человеку прививают навыки быстро и качественно усваивать и обрабатывать информацию. Т.е. учиться на более высоком уровне, чем в школе. Именно эти навыки позволяют хорошему программисту при необходимости изучить и освоить, к примеру linux, хотя он пишет на PHP, вникнуть в предметную область нового проекта по, допустим, медицине, понять все нюансы чужой работы. Ведь как ни крути — каждый хороший программист знает не только языки программирования и кучу алгоритмов. Хороший программист 1C — хороший бухгалтер, хороший веб-программист или разработчик интерфейсов — должен быть спецом в юсабилити, и т.д.
А математика — наука всех наук. И развивает соображалку похлеще всяких тестов :) Так что позвольте согласиться по поводу потраченного программерами только на половину.
UFO just landed and posted this here
Никто не спорит, что задачи нахождения корней квадратного уравнения или нахождение площади треугольника в чистом виде программистами если совсем не решается, то решается крайне редко. Но флеш-программист должен знать математику и геометрию — там куча задач связано с траекториями движения объектов, изменения их пространственного положения по каким-то формулам. Все зависит от задач. А программисты решают задачи уже практически во всех сферах жизнедеятельности человека.

И вообще — если рассуждать что программисту многое не надо знать — можно вообще чисто по-программерски прийти к заключению, что программисту нужен один глаз — чтобы читать код, две руки чтобы писать код, рот чтобы кушать и дышать ну и задний проход — чтобы выводил продукты жизнедеятельности и способ наказания за несоблюдение сроков по проекту :))) Программист — человек с высшим образованием, интеллигенция, зарабатывает себе на жизнь умственным трудом. Я не хочу чтобы программистами считали людей, которые живут на мевине, пиве и чипсах, боятся общества, выходят на свежий воздух по маршруту дом-ларек, и не видят ничего дальше своего монитора.
UFO just landed and posted this here
Вечный вопрос — кто есть программист :))
С криптографией аналогичная ситуация. Что более важно для специалиста по computer science — иметь широкие познания в области существующих алгоритмов шифрования и схем аутентификации с их «подводными камнями», а так же знать приемы их эффективной реализации, или же уметь доказывать китайскую теорему об остатках через теорию групп расписав выкладки на салфетке на вечеринке, но не представлять, как эффективно реализовать быстрое умножение на «C»? (Понятно, что в идеале лучше и то и другое — но что приоритетней, когда на все нет времени и нужно делать выбор?)
Да, кто-то захочет стать разработчиком оригинальных криптографических алгоритмов. Он может тогда пойти получать истинное математическое образование. Честь ему и хвала. Но подавляющее большинство системных программистов, которые будут имплементировать эти алгоритмы в библиотеках и использовать их в своих системах, не нуждаются в умении оценивать их криптостойкость аналитическим путем.
Оно, конечно, так. Но именно так и получаются дырки в системах шифрования, как недавняя, где программист, который имплементировал вполне нормальный алгоритм не задумался ни о чём и использовал знаковое целое вместо чего-то длинного, сократив пространство подбора всего до 32768-и значений :).
Один из моих преподавателей в ВУЗе, тогда заведующий кафедрой информатики
Тайцлин Михаил Абрамович
Доктор физико-математических наук, профессор,
посмеиваясь над студентами признался однажды на лекции по Дискретной математике,
что за последние 25 лет ему ни разу не пришлось брать тройного интеграла и он не представляет почему
на факультете Прикладной математики и Кибернетики практически отсутствуют прикладные моменты, зачем нужны пять семестров одного Математического Анализа, а теории и особенно практике программирования внимания уделяется крайне мало.
я сам мехмат закончил, ВАЩЕ ничего из математических курсов не помню, но зато меня там научили неплохо думать, складывать фактики и делать выводики — это единственный и очень важный плюс, а в остольном для меня мехмат был бесполезн. ну кстати за исключением еще и того, что я познакомилса с большим количеством людей, у которых есть чему поучиться.
полностью согласен
брат учится в Великобритании на должность программиста второй год (1 год он учился в Москве) и говорит что в отличии от России там из математики учат то что реально понадобится в работе, а не всякую мега-продвинутую математику которая понадобится программисту как яйца женщине :)
По ходу чтения статьи возникла мысль спросить как с «там» этим и тут ваш комментарий, спасибо.

P.S.
Если есть еще хабражители, знакомые с ситуацией на западе — расскажите.
А вы можете посмотреть все online. К примеру MIT.
У нас просто не хватает программерских-шараг. Все хотят высшее обращование и дипломчик, но не хотят учить кучу предметов. Ну если они не нужны и не пригодятся вам в реальной работе, то, имхо, и нужно идти в другие учебные заведения, где будут учить тому минимуму, который нужен для работы.
У нас, извините, и так уровень образования падает ниже плинтуса.
Не полностью согласен с автором статьи. У себя на специальности мы изучали математику лишь 2 курса. Также было много всего, что касается программирования и системного администрирования:
— языки: Assembler, Pascal, C++, Perl, PHP, HTML+CSS
— проектирование и разработка приложений баз данных
— разработка приложений под windows
Правда это было несколько далековато от реальных рабочих нужд дальше, но это была неплохая база
А какая это была специальность?
специальность «Информационные технологии проектирования»
привет от матмеха.
Да, к сожалению, всё так и есть. Хоть и появляются какие-то намёки на Computer Science, но как будто для виду. У нас, например, чтобы сдать спецкурс по Java, можно приходить только на экзамен, не зная даже как пишется helloworld. А вот из-за замечательного предмета матфизика людей толпами отчисляют с 3его курса.
Спасибо за статью.
Ну для Computer Science вроде как отдельный факультет есть, нэ? Другое дело что там тоже сложно с ним, но зачем оно на чисто математическом факультете?
нет, отдельного факультета нету, разве что тот же ПМПУ. Матмех выпускает много программистов.
Есть в СаратовскомГУ факультет Computer Science & IT
Спасибо за поддержку, я полностью согласен с этим. Раньше (в начале 90-х) все было совсем плохо — поступив на факультет прикладной математики — процессов управления, я обнаружил, что большинство преподавателей программирования в университете вообще имеют смутные представления о предмете. Я сам мог бы читать им лекции, причем не только по практическим вопросам, но и по фундаментальным основам, таким, как системы счисления и представление данных в машине. Я был в шоке.
При этом я знаю талантливых программистов, которые не смогли поступить в СПбГУ и МГУ, не пройдя по конкурсу из-за экзаменов по литературе или по физике, и пошли в отраслевые ВУЗы. Программирование — их талант, а они вынуждены были изучать черчение или теорию электрических цепей, чтобы получить диплом о высшем образовании (в случае ребят еще и для того, чтобы не попасть в армию). Беда не в том, что их ВУЗы плохие, это не так! Но это не профильное образование для программистов и оно еще хуже, чем переизбыток математики в фундаментальных госуниверситетах.
Что получается в результате работы такой системы в целом? Люди вынуждены изучать программирование самостоятельно. Если приходит устраиваться на работу молодой специалист, и он хорошо пишет программы — одно из двух: или научился сам, или вообще не имеет высшего образования (зато имеет талант и практический опыт). Так же приходят устраиваться на работу люди с красными дипломами математиков, прекрасно берущие интегралы, даже если их разбудить среди ночи, но не умеющие написать что-нибудь мало-мальски сложнее «hello, world!».
Те, кто изучил программирование именно в ВУЗе (а не самостоятельно [в свободное от учебы время]) в массе своей нуждаются в ПЕРЕучивании. У них бессистемные, отрывочные познания, куча ложных представлений.
Даже если брать не отраслевые ВУЗы, а бывшие госуниверситеты тип СПбГУ/МГУ, то из-за переизбытка математики с моей точки зрения возникают проблемы социализации студентов именно как молодых специалистов по computer science. Они просто не могут себя толком проявить как программисты. Плюс, по крайней мере раньше, был переизбыток людей из математических школ, которым программирование вообще по барабану, они просто прошли конкурс, а из-за заполнения групп не попали в свои математические группы и зачислились на программистские специальности.
ну сейчас всё вроде бы не так фатально, см. хотя бы комментарий ниже. Из математических школ на программистские специальности идут уже целенаправленно)
Что осталось — так это негласное правило, что математика — царица наук(не спорю), а программирование — просто приятное к ней дополнение.
CS на матмехе есть, например, тут logic.pdmi.ras.ru/~infclub
Спецкурс по java — это просто такая возможность получить халявный ск, к обучению отношения не имеет.
Матфизикой, по-моему, больше пугают, не так она и страшна.
А вообще на матмехе есть масса спецкурсов. Основная проблема — узнать, какие же есть, и выбрать из них интересное. Так что всему там можно научится, просто надо расписание себе самому составить. Если очень хочется — из него можно даже выкинуть некоторые «математические» предметы (хотя это делать надо аккуратно, сдавать всё равно придётся).
за ссылку спасибо, надо будет походить.
Jav'у я конечно как крайность привела.
А вообще, знаете, это отдельная интересная тема. Как говорил один мой друг, «матмех по-прежнему остаётся отличным местом для САМОобразования». Да, для отдельно взятого студента возможности есть, хочешь жить — умей вертеться и тп, с другой стороны, когда халява есть, и её много, не будем обманывать себя, ей будут пользоваться.
Получается такое факультативное образование для желающих. Я никого не защищаю, но согласитесь, это довольно спорное преимущество…
да, матфизика — единственный в жизни предмет, который я завалила)
Согласна, что из всей математики, которую нам преподавали, это самый сложный.
Поступил на матмех, подскажите, пожалуйста, где узнать про спецкурсы?
Если только на первый курс поступили — не надо ничего узнавать, на первом курсе совсем не до того. Там как раз всякими основами математики грузят, без этого никак.
да и со спецкурсами на 3м курсе беда. даже не знаю что выбрать.
Давайте так.

Во-первых, как выше было правильно замечено «подчитывать» математику по мере надобности нифига не получится. Для этого совершенно необходимо иметь общую математическую культуру, которая получается только при «глубоком погружении».

Во-вторых, в любой профессии есть градация специалистов. Чтобы стать script-kiddie безусловно не нужна университетская математика. А вот создать что-то новое, изобрести сложное алгоритмическое решение — без нее врядли. (понятно, что большинству это и не грозит, но один из тысячи-то может все таки применит когда-то свои знания в полном объеме и забабахает чтонебудь этакое в сфере ИИ или распараллеливания)) — есть прецеденты)

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

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

имхо, шурэ
По поводу вывода неправильного:
Я имею в виду что «математика должна сопровождать программирование». Это извините глупость прикладная.
Программирование это не наука, а навык, деятельность. Наука — информатика, хочется вам этого или нет является разделом математики.
Хотите только навык — пожалуйста идите в техникум или колледж или как там называются такие заведения (зачастую частные)-- вполне оправдано, вам будут давать исключительно прикладной аспект, вот эти все php, sql, т.д. И слегка «сопровождать» математикой…
Не понимаю такого однобокого подхода и надменности.
Вам же не приходит в голову идея о том, что врачей нужно учить математике в течение 5 лет, параллельно на втором плане читая им кое-что из медицины. Типа пусть университет даст им фундаментальное математическое образование и разовьет мозг, а медицине-то они как-нибудь сами потом научатся, на работе. Благо по сравнению с математикой это вообще не наука, а так, практический навык. Да и вообще, зачем им ВУЗ? Могут пойти в техникум или на платные курсы и там подучиться…
Вы убеждены, что математику нельзя понять, если она читается в ограниченном объеме «по верхам», ей нужно учиться именно 5 лет фундаментальным образом. При этом Вы считаете, что программирование можно освоить в техникуме. Так ведь и математике можно пойти учиться в техникуме, вот только какой результат-то будет?
Ваше отношение к программированию как к вторичному предмету или одному из частных разделов математики — заблуждение. Программирование сейчас настолько необъятная область, что ее изучению можно посвятить всю жизнь, особенно если вдаваться глубоко в каждое из направлений (и затрагивать смежные области, связывая задачи программирования с той же математикой, например).
Так что пусть кафедры математических факультетов готовят специалистов в таких областях программирования, где не обойтись без высшей математики. Но в университетах должно быть представлено и программирование как таковое, читаемое как основная дисциплина и сопровождаемое изучением основ математики. Знаний математики в объеме первого курса советского университета предостаточно, плюс можно дополнительно прочитать курс лекций по булевой алгебре, полям Галуа, БПФ/вейвлетам и комбинаторике (может еще что-то забыл, но не суть). Причем в первую очередь практический курс, а не глубокую теорию с доказательствами всех теорем от нуля. Весь фундаментальный курс математики из университета БОЛЬШИНСТВУ программистов не нужен. Не «быдлокодерам» он не нужен, а в том числе и будущим ведущим специалистам знаменитых фирм не нужно столько математики.
Если же ничего не менять в преподавании программирования, то так и будут приходить устраиваться на работу в программистские компании люди с высшим образованием и красными дипломами, которые прекрасно берут интегралы и даже знают, что такое гомотопическая эквивалентность, но зато не знают, как проинвертировать второй бит в числе и делают три ошибки в программе бинарного поиска в массиве.
Причем тут врачи? Речь о программистах же. Речь об информатике, науке, являющейся разделом математики.
Математическая крепкая база разумеется может пригодиться. А может и не пригодиться.

Я абсолютно искренне верю, что не стоит грузить УрМатФиз, ТФКП, ДифУр-ами и прочими несомненно полезными науками на CS специальностях — ведь для этого существует много-много других не менее важных специальностей.
Не абсолютно верное утверждение, что именно глубокая математическая база позволяет с лёгкостью переходить с одного языка на другой, изобретать новое…

Если знаешь дискретную математику, алгоритмизацию — изучение нового языка — плёвое дело. Ещё ознакомиться со структурами данных, дополнить это знание парой концептуально различных языков (например c++, asm и IO :), и вуаля, перед нами почти готовый программист — остальное опыт и желание.

А изобретение нового — вариант, на мой взгляд, слабо связанный с глубиной математической базы. Лично я, помнится, в 8-ом классе с удовольствием потратил ни один день изучая матрицы преобразований, думая «как бы заставить этот дурацкий кубик из линий правильно вращаться». Буквально на днях на работе изучали методы аппроксимации, вычисляя по какой функции «этот пунктик меню должен перемещаться чтобы было красиво :)».
На заре компьютерной эры программирование можно было рассматривать как раздел математики, так как задачи, которые решал программист, были простыми и могли быть сформулированы с помощью языка математики, а поиск их решения был сродни доказательству теоремы. Сейчас же программист имеет дело с настолько сложными системами, что описать их математическим языком не представляется возможным или, как минимум, это описание будет неимоверно громоздким. Математик решает задачу, условия которой формальны. Программист часто имеет дело с задачами, условия которых не полностью формализованы, критерии правильного решения расплывчатые и имеется огромное разнообразие путей решения, каждый из которых ведет к цели (кроме немыслимого разнообразии неправильных путей). Талант программиста раскрывается именно тогда, когда он интуитивно находит простое для реализации и вычислительно эффективное решение, доказать правильность которого формальным путем не представляется возможным и формальная оценка эффективности которого тоже часто затруднена.
Да и в области формальных задач не все безоблачно. Приведу Вам пример ограниченности применения математики для практического решения задачи. Есть простейшая по своим условиям задача — игра в шахматы. Правила игры абсолютно формальные и очень простые. Но за тысячи лет математики не смогли решить эту задачу — по сей день не существует ее аналитического решения. При этом некоторые люди интуитивно находят правильную стратегию и побеждают в игре всех остальных, не используя математику. Прошли тысячи лет с момента изобретения игры и программисты создали системы, которые способны выиграть у чемпиона мира по шахматам. Шахматные программы используют в своей работе (в том числе) и уловки, придуманные математиками. Но их разработчикам не обязательно нужно владеть высшей математикой в объемах университетского курса, чтобы написать программу. Задача так и не получила математического решения, но она решается практически.
Безусловно, знание математики иногда помогает в программировании. И есть области, в которых без высшей математики вообще тяжело/невозможно что-то сделать (например, коды коррекции ошибок или восстановление изображений). Но это узкие, специфические области. Большинство разработчиков систем, которые нас окружают, в своей работе высшую математику не используют напрямую вообще, они прибегают к ней изредка, опираясь на готовые решения.
Приведу еще один пример. Математический аппарат, который стоит за простейшей задачей сортировки массива целых чисел, настолько сложен, что в полном объеме понять его может не каждый выпускник университета, читающий книгу Кнута. При этом талантливый программист может интуитивно оценить эффективность методов сортировки, понять, как они работают (причем даже по неполному и неформальному описанию), и запрограммировать их.
UFO just landed and posted this here
а вы его распечатайте и почитывайте вечерами в свободное время от работы: D
Хм, крупно ошибаетесь. Это как раз таки математики проделали огромную работу по определению методов решения таких задач и воплотили их в жизнь. Поверьте мне, программисты которые делают такие вещи гораздо ближе к математикам, чем к тому, что большинство считает программистами.

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

Не спорю, сейчас есть большой спрос на простых кодеров не отягощенных расширенными знаниями, что позволяет экономить на зарплате. Но если вы пошли в вуз получать высшее образование, то не вижу причин не учить собственно то, что дает жизнь нашей профессии. С чего вы вообще взяли что в высшем учебном заведении должны готовить банальных кодеров? Для этого есть курсы на несколько месяцев. А здесь как раз готовят специалистов готовых решать сложные задачи.
Можете доходчиво объяснить зачем программисту скажем вычислительные методы или механика сплошных сред (жидкость, газ, твердое тело, сумарно 4 семестра)? зачем дифуры?

Вам приходилось на работе когда-нибудь изучать систему дифуравнений на устойчивость по Ляпунову? Исследовать, когда сдавленая с двух сторон железная балка преодолеет предел текучести по Треска или Мизесу? Изобретать разностную схему с третьим порядком аппроксимации? Расчитывать движение r-волны разряжения в трубе?

Даже если и взять боллее близкие курсы типа матлогики, я всё равно не могу понять как, например, применить теорему Лося-Вота (Łoś-Vaught) в повседневном программировании…

Иначе Кнута Вы потом как откроете, так и закроете…


а стоит ли его вообще открывать?
А вот про Кнута так «с плеча» я бы не торопился высказываться. Подобное систематическое изложение еще поискать стоит.
Вы часто в это систематическое изложение заглядываете? или может загрузили его в мозг от начала и до конца?

слишком много ненужной математики, слишком много подробностей, вот что такое Кнут. программисту он не нужен.
кстати забыл сказать: выбор MIX в качестве способа описания алгоритмов это отдельный косяк сего труда.
> Можете доходчиво объяснить зачем программисту скажем вычислительные методы или механика сплошных сред (жидкость, газ, твердое тело, сумарно 4 семестра)? зачем дифуры?

Смогу. Буквально только что хотел сам написать, что программисту, помимо банальных дискретной математики и реляционной алгебры, надо как минимум представлять основы университетского курса алгебры-геометрии (матрицы, операции с ними и т.п.) и пройти курс дифуров.
Матрицы — это вещь, которая понадобится фактически в любой области. Кроме того, матрицы дают представление о контейнерах и векторных вычислениях. На дворе 21-ый век, транзисторы на процессорах уже вплотную подошли в размере к своим физическим пределам — дальше только параллельные/векторные вычисления.
Дифуры — это основа моделирования всего и вся. От социальных процессов до движения робота в гравитационных полях. А моделирование… Оно много кому понадобится, особенно тем, кто любит не только решать чужие, но и ставить новые свои задачи. Да даже чужие… посмотрите на последний ICFPC :)
посмотрите на последний ICFPC :)


Смогу.


Ну, если сможете так давайте. Я пока не увидел ни слова про МСС.

Концепт матрицы как таковой — тривиален. В рамках курса алгебры изучить его, плюс различные классы линейных операторов — полсеместра. Однако на этом ведь не останавливаются. Изучается всякая тяжелая артиллерия типа теоремы Жордана и т.д. Я вам скажу, мне на работе матрицы пока не приходилось использовать. И я не знаю никого из программистов (исключая тех кто занимается разного рода математическими расчетами), кто бы их использовал.

Алгебра вещь полезная и красивая. Я её очень люблю. Теория Галуа вообще песня! Но к моей работе программистом она не имеет никакого отношения.

Теперь о дифурах. Изучить ОДУ и общие методы их решения полсеместра достаточно. Но опять же подтягивается тяжелая артиллерия: много частых видов, со специфическими трюками для решения, устойчивость к малым возмущениям, а потом курс уравнений в частных производных (часто известный как урматы — уравнения математической физики) — это самая настоящая труба! А вычметоды, все эти разностные схемы, равномерные и неравномерные сетки, методы Галеркина?

Еще раз повторю — большинству программистов достаточно математики в объеме 2 семестров.

посмотрите на последний ICFPC :)


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

Про дифуры. Сами по себе дифуры, может, и не нужны и бесполезны. Как бесполезна сама по себе таблица умножения.
Но у нас в ВУЗе был мегакурс под названием «математические модели в естествознании». Те же самые дифуры, но на прикладных задачах. И вот это уже полезно и нужно. Но дифуры являются для него prerequirement-ом.

К слову, про механику сплошных сред… У нас его не было, у вас, я так понимаю, было. Я знаю, моя ситуация совершенно вырожденная и статистически несостоятельная, но… матмодели колеблющихся тел, мембран, резонанса — вообще генерации звука, например, в музыкальных инструментах, звучания пианино в тех же синтезаторах, или ударных в электрических ударных установках (не сэмпловых, разумеется) — это случайно не оно? И если оно, то не подскажете лично мне хорошие материалы на эту тему? Мне это понадобилось/захотелось для некоторых экспериментов буквально сегодня утром.
Про дифуры. Сами по себе дифуры, может, и не нужны и бесполезны. Как бесполезна сама по себе таблица умножения.


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

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


У нас в МСС были конечно законы газовой динамики, но там вообще одномерный случай рассматривался… вообщем не про то. Больше похоже на урматы, там уравнения аккустики рассматривались, правда достаточно бегло и исключительно с точки зрения их математических свойств, без приложения к реальности. Так что я вам ничем не помогу, к сожалению. Я думаю лучше физика спросить, а я всё таки математик по диплому =)
У нас в МСС были конечно законы газовой динамики, но там вообще одномерный случай рассматривался…
Да, именно — глубокое исследование сферических коней в вакууме, и никаких практических примеров. Это же программисты, а не будущие физики-теоретики, им бы лучше если уж и изучать акустику, то практические аспекты из их будущей реальной жизни, на примере синтеза 3D-звука или конкретного алгоритма компрессии (типа DTS, например). Зачем им понимать, как физически возникает звук в материале и как он распространяется в среде в таких подробностях, будто бы они будут конструировать акустические пушки LRAD, когда они не с физикой будут работать, а может быть кодировать/декодировать звук по готовым алгоритмам. Если это программисты именно! А не математики, физики, специалисты по вычислительным методам на стыке наук.
Все-таки подавляющему большинству программистов не нужны ни дифуры, ни глубокие познания в алгебре как в науке. Они не будут доказывать теоремы, это не их работа! В лучшем случае они будут использовать готовые результаты, полученные профессиональными математиками.
Программистам нужны общие представления о математике, поэтому я и не спорю, что математика в объеме первого курса МГУ/СПбГУ полезна для развития мозга и как основа для будущего изучения каких-то отдельных направлений, если вдруг возникнет потребность. Но дифуры, ТФКП, матфизика или даже алгебра на глубоком уровне понимания нужны только тем, кто сознательно решил специализироваться конкретно на моделировании физических процессов или, скажем, на разработке кодеков.
Но, например, системному программисту не нужен полный фундаментальный курс математики. Подавляющее большинство программистов никогда не будут ничего моделировать через дифуры. Даже если они работают в Microsoft над ядром Windows — им не нужна вся эта высшая математика! Зато им остро нужен фундаментальный курс собственно программирования в широком смысле слова — структуры данных, алгоритмы, методы организации вычислений, технология разработки программ и так далее.
Плюс нужны практические (без доказательства всех теорем от нуля) познания в ряде областей математики, тесно связанных с программированием. Но не глубокая теория, такая, которой учат будущих математиков. Даже работая в Microsoft или в Oracle над ядрами соответствующих систем, программист не будут решать системы линейных уравнений в вещественных числах и никогда не столкнутся с вопросами сходимости и точности вычислений при решении таких систем. Никогда и нигде не применит ТФКП.
Если только он не занимается моделированием физических процессов профессионально — но это же отдельная область! Этим занимаются единицы и им действительно нужна и математика, и физика. Остальным же достаточно общих представлений.
Я отучился всего полтора курса ИТМО. Не по профильной специальности. Потом сбежал из ВО. Язык за ночь — не проблема. Парадигма за неделю — в зависимости от количества инфы(по некоторым вещам хрен найдешь без того кто это УЖЕ знает).

Я одного не понимаю. Почему те у кого ВО есть — уверены что оно обязательно для банальных вещей рабочих?
> Язык за ночь — не проблема.

Ммм, честно? У меня знакомые ищут программистов на Q. Если освоите за ночь — предполагаю (но не обещаю), они вам сделают хорошее предложение :)
Проверяльщики… *пип* Какой алгоритм вам накатать к завтра? В личку уйдет. Работу к слову я не ищу. %)
Да не проверяльщики. Просто самому любопытно, действительно способен ли кто-нибудь освоить так быстро такой дикий язык, как Q/J/K какие :) (Я сам, к сожалению, ни одного из них пока не знаю, так что даже проверить правильность алгоритма не смогу).

Но вообще, было бы очень интересно увидеть решение на Q чего-нибудь из Project Euler.

> Работу к слову я не ищу. %)
И правильно. Нехай работа сама тебя ищет :)
Ну… Дикие да. $) Но ЯП всегда ЯП. Я осваивал любые не дикие но редкие (из последних примеров — lua) — за 5-7 часов. До вполне нормального уровня. Попробую к завтра сделать. Сети правда дома нет… Сегодня нет. Но постараюсь.
UFO just landed and posted this here
UFO just landed and posted this here
Люди, а тогда может образование как оно есть вообще не нужно для больших предприятий. Если хотят подготовить хорошего узконаправленного специалиста, то корпорация создает своё отделение подготовки специалистов, куда набирают очень молодых ребят (можно даже со школьным фундаментом), обучают его той специальности, котороя требуется предприятию. Например, обучают вообще всего трём-четырем дисциплинам… пример «С++, СуБД ORACLE, Assembler» и как бы всё… Выучили его быстро и пошел работать, если потом еще что понадобится, то пошел изучил еще что, прошел курсы — сдал экзамены…
В каком-то смысле так и происходит — только косвенно. На Западе крупные компании частично финансируют ВУЗы или выделяют гранты под конкретные исследования, по ходу дела присматриваясь к молодым специалистам, своим потенциальным сотрудникам. А студенты присматриваются к компаниям и что не менее важно получают представление о том, что сейчас реально востребовано, какие технологии находятся на переднем крае исследований. Так в нормальной системе образования происходит постепенная интеграция программиста в профессиональную среду — он уже в процессе обучения контактирует с будущим работодателем или даже начинает косвенным образом на него работать. А ведет эту работу обычно профессор, имеющий множество научных публикаций, человек с именем из академической среды, вызывающий доверие у корпораций и поэтому получающий щедрые гранты на свои исследования. Поэтому на Западе нет зияющей пропасти между ВУЗом, академической средой, research & development и прочими подразделениями крупных компаний.
Если обучение платное, как в США, то люди еще и имеют четкое представление о том, зачем они пришли в ВУЗ и почему именно на эту специальность, а не на другую. По мере обучения они не только знакомятся с теми, с кем видимо будут работать в одной области и возможно даже с кем-то в одной компании, но и устанавливают первые контакты с профессионалами в компаниях или же постепенно интегрируются в академическую среду, если выбирают для себя путь остаться в чистой науке. Изучают то, что находится на переднем крае науки и техники и более того — сами начинают принимать участие в создании технологий будущего. В том числе работают над известными open source проектами на гранты корпораций и фондов.
А советские ВУЗы могут гордиться своей фундаментальной математической программой, оторванной от реальности и еще тем фактом, что большинство их выпускников не работает по той специальности, по которой они получили диплом, а многие учатся там вообще для получения отмазки от армии, «ради корочки», потому, что туда пошли друзья/подруги, чтобы найти жениха/потому, что там много клевых диффченок и т.п.
Согласен что советским вузам не хватало всегда практичности что ли. Ведь только у нас принято говорить, что в университетах тебя учат искать информацию, а учиться будешь на производстве. Что, на мой вгляд, в корне не правильно.
Я бы чутка с другой стороны глянул: для 80% того кода, который пишется в наши дни университетского образования не нужно ВООБЩЕ.
В этом смысле нам не хватает нормальных аля-западных колледжей, где бы учили кодеров, хорошо владеющими прикладными навыками…
Нафиг станочнику широкого профиля сопромат? Ему нужно в резцах разбираться…
А вот для оставшихся 20% задач как раз математика и нужна: если ты занимаешься серьезным программированием, то там с одной стороны теория алгоритмов, потом комбинаторика, потом всякие там лямбда-исчисления и т.д. И ВОТ ДЛЯ ЭТОГО и нужно поступать в универ после колледжа.

Поэтому все нормально с нашими вузовскими программами… Не все гладко со средним специальным образованием…
Абсолютно согласен.
Почему-то постоянно приходится читать статьи на тему плохой советской учебной программы. А ведь всё очень просто. ВУЗы готовят специалистов высокого уровня с широким кругозором для решения нестандартных задач. Именно так и было в СССР. Потом эти специалисты шли в НИИ и КБ. При этом для подготовки кодеров существовали техникумы.
Сейчас грань между техникумом и ВУЗом стёрлась из-за падения уровня образования. К тому же многие идут туда, чтобы откосить от армии. Т.е. в высших учебных заведениях появилось много людей, которым наука чужда. НИИ и КБ бедствуют. Поэтому выпускники ВУЗов идут работать кодерами.
Но разве из всего этого можно сделать вывод, что надо ВУЗы окончательно превратить в техникумы?! По-моему нет. Из этого следует, что надо навести порядок в системе образования, чтобы в ВУЗах готовили исследователей, а в техникумах качественных кодеров.
Не нужно придумывать виртуальный СССР!
Точно так же в СССР шли в ВУЗы, чтобы откосить от советской армии. И для тех же «корочек» — чтобы иметь шансы стать начальником, а не рядовым сотрудником. Точно так же переписывали друг у друга конспекты прогулянных лекций. И больше половины группы не могло объяснить толком, почему они оказались именно на этой специальности. А зачеты и тройки многие получали, похлопав наивными виноватыми глазками перед преподавателем.
При этом если сейчас все-таки уровень преподавания подтянулся и в ВУЗах есть хорошие преподаватели, то во времена позднего СССР с программированием была полная задница. Преподавателей могли учить студенты. Исключения из этого правила были единичными.
При этом интернета не было и ознакомиться с работами западных специалистов можно было только по немногочисленным переведенным книгам в публичной библиотеке. Литературы было очень мало, а того же Кнута (как и прочую редкую литературу) можно было или купить на удачу в «Старой Книге» если ОЧЕНЬ-очень повезет, или же заказать (если книга переиздается) и больше года ждать, пока тебе придет открытка, а затем стоять в очереди в книжном магазине с утра пораньше, пока не раскупили.
Если с трудоустройством по специальности в СССР и было легче, то не для всех специальностей и еще благодаря распределению, которое в России отменили. А не из-за того, что в СССР готовили супер-специалистов, а сейчас готовят «быдлокодеров». Наоборот, сейчас уровень преподавания конкретно программирования (computer science) намного выше.
Это вообще две РАЗНЫЕ проблемы. Отсутствие в России нормального среднего специального образования для «казуальных» программистов, типа обычных Web-программистов делающих типовые сайты это одна проблема, а неправильное преподавание computer science в университете и пропасть между академической средой, компаниями и студентами — это другая, самостоятельная проблема.
Я пишу сейчас именно о том, что обучение программированию именно в рамках университетского курса построено в корне неправильно, так как людей грузят высшей математикой (дифференциальными уравнениями, математической физикой, теорией функций комплексной переменной, топологией, сопротивлением материалов, дифференциальной геометрией — в зависимости от ВУЗа, факультета, конкретной специальности).
Да о чем вообще можно говорить, когда даже ПО ЧАСАМ на факультете прикладной математики — процессов управления ФИЗИКИ (влючая матфизику) читают больше, чем собственно программистских дисциплин!
Да, основная масса проектов это 1С, сайт-frontend к БД и пр. Тут математика совсем простая.

Но по опыту скажу что ни на предыдущей работе, ни на текущей не получается найти человека способного сделать шаг в сторону. Все из-за того что все ориентируются на запоминание классов, библиотек и паттернов используемых в этой основной массе задач, а нам нужен человек способный на большее. Задай человеку вопрос по API он ответит, а вот попроси написать нетривиальный алгоритм и все, приехали. Взять человека на работу выполнившего второй пункт не проблема, первое выучит, это лишь поднапрячь память, а вот наоборот — уже вряд ли получится :(
И я не говорю вам про сверхматематические задачи, типа упомянутая выше обработка изображений, протоколы и пр. Все гораздо проще, но не из основной массы задач. Но тоже вполне обычные задачи по организации данных (как в БД так и в памяти), масштабирование системы.
Да, и еще слышал про подобную ситуацию у игроделов. Рассказывали как они намеренно отказываются от некоторых интересных вещей потому что не надеются найти нужное количество нужных людей. Там ведь «танчики» тоже не просто так «из точки А в точку Б» ездят.

Так что тут у монеты опять две стороны.
Хех, здесь многие советует идти учиться в колледж, техникум и т.д., если хочется простого «прикладного» программирования, без углубления в науку. Однако, сам будучи студентом провинциального колледжа, могу сказать, что там господствует кромешный ужас. Если в ВУЗах все-таки можно найти талантливых преподавателей, отдельные хорошие дисциплины и курсы, внимание крупных региональных фирм к выпускникам, то в колледжах всего этого нет. Как правило, на программистких специальностях учатся люди, не способные овладеть даже азами своей профессии, а учат их преподаватели, в лучшем случае прочитавшие пару книг или набор статей из Интернета по своей дисциплине.

Поэтому, чтобы получить хоть какую-то пользу от образования, надо все-таки идти в ВУЗ. Признаться, именно обилие ненужных академических предметов (главным образом — математических) и отпугивает меня от продолжения своего образования. Я хочу быть просто прикладным программистом, поскольку весьма четко сознаю предел своих способностей — ну что поделать, не всем дано автоматизировать работу АЭС или разрабатывать проекты в масштабах страны. Неужели для этого обязательно углубляться в дебри математики, математического анализа и теории вероятности? От подобных дисциплин в колледже у меня осталось впечатление их полной оторванности от реальных задач и практической бесполезности. Хотя, если бы кто-то показал, зачем эти знания нужны программисту и как он их может использовать… но увы.

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

P.S. Извините, что не совсем по теме :)
Ну так пусть и появляются статьи на тему «Повысим уровень техникумов и колледжей». Зачем же писать о том, чтобы по сути превратить ВУЗ в техникум?!
Согласен с Вами. Но, видите ли, поднять уровень колледжей крайне сложно, если вообще возможно. В колледжи сейчас идут те студенты и преподаватели, которые не попали не ВУЗы. Уровень их крайне низок — потому, что в ВУЗ сегодня может поступить любой человек, имеющий деньги и/или нормальную школьную подготовку. Только в моем провинциальном городке на 130 тысяч человек действует 3 ВУЗа (!) — фактически, «фабрики дипломов». Так что, боюсь, поднять престиж средне-специального образования может только резкое сокращение числа институтов и университетов, а также ужесточение правил приема в них.

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

В общем, все сложно :) Понятно одно — человек, который хочет всерьез работать в IT, в современном колледже просто потеряет время и ничего не приобретет взамен. Поэтому люди и идут в ВУЗы с такими разными ожиданиями от образования — кто-то хочет ограничиться рамками CS, кто-то хочет получить фундаментальные знания и навыки, а большинство студентов просто надеются не вылететь во время очередной сессии :) На мой взгляд, это основная причина всех споров.
Не переживайте, Фурсенко уже постарался: в проекте сократить в 5 (пять) раз количество ВУЗов.
История нескольких лет моей жизни… Будь проклят тот день, когда я поступил на матфак нашего провинциального ВУЗА.
Ребята, повторю уже во второй как минимум раз: не стоит считать что программирование это и есть computer science. программирование это инструмент и объект исследования одновременно. а вот целенаправленно только «программировать» на факультетах информатики не учат нигде в мире!
могу заверить по европейскому техническому университету что программировать БОЛЬШЕ приходится прикладным математикам.

«учить программированию» — это задача самообразования, предприятий, в лучшем случае спецкурсов, но уже точно никак не фундаментальной науки. десятки языков с кучей различных философий и подходов. ставить такое в основные курсы — значит готовить просто кодеров, а не учёных специлистов в информатике. такое не будет двигать науку вперёд.
Ну вот сейчас поступают иначе — куда-то в боковую ветвь вынесли все то, что относится к программированию и алгоритмам, зато на фундаментальном уровне, заложив железобетонную основу, читают математику с физикой. Что в результате мы имеем? Тех самых «быдлокодеров», которых все ругают по форумам! А откуда они, блин, берутся? Никто не задумывался??? У них же у всех ТОТАЛЬНО дипломы ВУЗов! Иногда бывших госуниверситетов с их фундаментальнейшей программой.
Не путайте понятия. Есть «программирование», есть «прикладная математика» и есть мат-меховская «математика». В плане все читаемые курсы расписаны. Если не хочешь изучать математику — иди на «программирование», наших ей не грузили. Образование не виновато, что студент ошибся в выборе.

Хорошая IT программа за 5 лет — это очень сложно. Индустрия за это время два раза обновится. Университет дает фундаментальные знания и настраивает на обучаемость. Чтобы быть на острие — ищите интересные темы дипломов и курсовиков. Не валите все на образование.
Не будучи ни программистом, ни математиком у меня возникают примерно те же мысли… Из мехмата много выходит программистов — факт. но все же это не основное, а побочное направление.
Странно идти на мехмат и ждать математике в объеме первых двух курсов.
UFO just landed and posted this here
Проблема IT образования это очень сложная проблема.
Сам поднимал ее здесь maxh0.habrahabr.ru/blog/26526/
И то, что специалист с вузовским образованием чаще всего работает там, где с головой хватает средне-специального — т.е. все что он знает ему не нужно, это одна из них.
Математика нужна. Но специфическая. «Конкретная» математика.
НО гораздо важнее научить человека нетривиально мыслить. В контесте математики, логики, програмирования — не суть важно. Навык этот по моему опыту очень хорошо переностися из одной области в другую.
Это мое мнение.
З.Ы. Помоему людям не равнодушным к образованию надо объедениться и подумать — что можно сделать.
Перечитал тьму комментариев. Правы и защитники математики, и противники перегибов.

На мой взгляд, надо вообще отходить от классического образования, как от «готового пакета», выдаваемого тебе за 5-6 лет, и переходить к схеме постепенного обучения, при котором человек сам выбирает, когда и что он хочет изучать. По-моему, аналогичная схема принята в западных ВУЗах. Поправьте меня, кто знает об этом не по наслышке.
Лично мне нравится такая схема:

1. Вы приходите в ВУЗ, и самостоятельно указываете перечень дисциплин, которые планируете изучать. Примерный перечень дисциплин, требующихся от работника, можно узнать от самих компаний, куда вы хотели бы пойти работать.

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

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

4. У вас всегда должна быть возможность прервать обучение после окончания семестра, и вернуться к нему, когда будет возможность/желание, продолжив с того же места. Очень желательно, чтобы можно было при этом легко сменить ВУЗ, выбирая лучших преподавателей и лучшие условия обучения.

5. Должна быть возможность продолжить образование, когда вам будет необходимо. Т.е. если в 30 лет вы решите, что без углубленного изучения функционального анализа вам жизни не будет — идите и изучайте! Кстати, будете куда внимательнее на занятиях, так как будете понимать пользу предмета. Если же вы к тому времени сильно растеряете старые знания, что же, вы можете самостоятельно позаниматься, перед записью на курс. Вас никто не гонит.

Насчёт платности образования: я не считаю платное образование злом. Но, в принципе, и тут можно предусмотреть гос. поддержку. Государство по-прежнему может определять специальности, в виде «пакетов дисциплин», и давать возможность бесплатного обучения по этим специальностям, при условии успешной сдачи вступительных экзаменов и поддержания высокого среднего бала в дальнейшем. ВУЗ тоже может поддерживать толковых студентов, желающих, в будущем, стать аспирантами.
Хм, Ваша схема почти совпадает с моими представлениями об идеальном ВУЗе :) С ней только одна проблема — большинство людей в 17 лет поступают в ВУЗы потому, что «так надо», под давлением родителей или угрозы преждевременно стать солдатом. В лучшем случае — потому, что хотят получить достойное образование и сделать карьеру. В большинстве своем они даже толком не знают, чем хотят заниматься. На выбор конкретного списка дисциплин, я думаю, способны только увлеченные единицы, имеющие хорошее представление о своей специальности.

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

Все дисциплины я бы разделил на две группы: «стержневые» (обязательные) и факультативные (необязательную). Список стержневых максимально ограничить, но давать эти предметы хорошо и в полном объеме. Возможно, это будет математика, алгоритмы и структуры данных, БД, техника программирования, английский язык — это отдельный вопрос. В любом случае, эти предметы должны пригодиться практически любому программисту или даже IT-специалисту.

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

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

Мечты, мечты… :)

Хм, Ваша схема почти совпадает с моими представлениями об идеальном ВУЗе :) С ней только одна проблема — большинство людей в 17 лет поступают в ВУЗы потому, что «так надо», под давлением родителей или угрозы преждевременно стать солдатом… В большинстве своем они даже толком не знают, чем хотят заниматься. На выбор конкретного списка дисциплин, я думаю, способны только увлеченные единицы, имеющие хорошее представление о своей специальности.

Про солдат говорить не стану, чтобы не поднимать флейм на больные темы, а вот остальное упомяну.
Пожалуйста, пусть поступают исходя из каких угодно соображений. «Так надо»? Хорошо. Поступите, отучите то, что нужно для устройства на работу (на которой вас мечтают видеть родители), и работайте! Более того, вы не будете нервничать по поводу «не того направления», потому что всегда можете доучиться и переучиться. И высока вероятность, что ваше дообучение оплатит уже организация, которая в нём заинтересована.

Вы не теряете 5-6 лет. Вы гибки, вы мобильны, вы всегда можете перестроиться. По-моему, многим это сильно понравится. А что до родителей — нынешнее поколение родителей (я сам отец) уже будет смотреть на всё по-другому. Да и прошлое поколение постепенно начинает понимать реалии рынка. Что «корочку для галочки» получать бессмысленно — работодатель будет руководствоваться своим мнением о сотруднике (в первую очередь, опытом решения конкретных задач, и результатами испытательного срока). Стереотипы ещё будут биться в агонии лет 10, потом исчезнут окончательно. Халявы не будет. Наступили времена, когда надо бы уже что-то уметь, а не просто ходить с крутыми бумажками. Знания реальны только тогда, когда ты способен их применить. Иначе это — самообман, фикция. Какие бы оценки у вас ни были.

В данном случае, на мой взгляд, эффективность обучения будет выше, так как:

1. Вы изучаете то, что вам нужно и интересно. А если вы дообучаетесь, в голове сразу будут роями возникать мысли о приложении новых знаний к вашим прошлым и нынешним разработкам, что поднимет мотивацию до заоблачных высот.
2. Растянутое во времени дообучение приведёт к закреплению знаний. Согласитесь, если вам на протяжении 15 лет, каждые два года надо вспоминать разделы мат. анализа или теории вероятностей, значительно увеличиваются шансы крепко владеть материалом и через 30 лет. А сегодняшние 35-летние мужики, закончившие с отличием свои ВУЗы зачастую не помнят вообще ничего, только на уровне банальных «алгебраических рефлексов», да и те, возможно, ещё со школы.
Как уже сказал тов. kaiden.habrahabr.ru/ лишь небольшая доля первокурсников представляет себе, чтО они хотят. Методика их ориентации в имеющихся на факультете не выработана (думается, что это общая беда для многих ВУЗов). Вдумайтесь: врачей всех специальностей учать одинаково 5 лет и лишь затем следует специализация.

Вывод: пускай выбор специализации будет сделан студентом тогда, когда он получит базовую культуру (в моем случае — физфак — на третьем курсе).
Согласен с вами.Сам в свое время попал на ФизФак (радио-физика) =)Обучение 4ех годичное, 3 года преподавали именно те же темы по «математике» (этим термином я, в данном случае, объединяю все дисциплины обучения различным методам вычислении), что и на факультете прикладной математики, НО не так углубленно… Знаю это, так как мой хороший знакомый-какраз с прикладной.После 3тьего курса начал работать стажером-программистом при лабе… На С++ реализовавали какраз различные физ процессы.Затем сменил профиль на веб… Физиком работать, скорее всего уже никогда не буду.И грустно и нет.Мнеж Очень нравится та профессия, которую я сам, фактически, осваиваю.С уверенностью могу сказать, что моё тех. образование мне Очень помогает, для общего развития за эти годы перечитал литературу для программистов об алгоритмах, расширенный курс теории вероятностей.Уверяю, знания ети очень даже пригодились, конкретно, например при проектировании достаточно серъезной базы данных.
Статья понравилась, обратите внимание, что совершенно необязательно ВСЁ применять, но знать и читать про все, что возможно-стОит… Кто знает, что будет завтра, а разносторонние люди чаще находят аналогии и интуитивно получают лучшие решения.
Уважаемные минусователи, выскажите свою точку зрения, если не трудно.
У нас в HUJI так почти и есть. Есть обязательные курсы (по другому, дисциплины), есть обязательные на выбор (например 5 из 10 курсов надо по направлению выбрать), и есть общие курсы (хоть испанский учить можно, но можно в математику углубиться). Каждый курс дает 2-7 очка (зависит от кол-ва часов в неделю, а не от сложности). У курсов есть иерархия, то есть их нужно брать в определенном порядке.
Степень бакалавра 134 очка. Потом получаете бумажку с курсами и их оценками и средней оценкой за степень.

Вот так и живем…)
Наверное, проблема все-таки в нехватке квалифицированных преподавателей. Не тех дедушек, что преподают по совковой программе устройство и программирование БЭСМ, а нормальных преподавателей, которые знают, что такое Haskell и Lisp, работали в Linux, и могут сказать, чем отличается char от wchar_t.
UFO just landed and posted this here
Может у нас прогресс (Украина, Черкассы), «вышка» была всего два года. Программирование в разных соусах было изложено лучше, чем математика. Но, увы. Программирование все равно на низком уровне с отставанием лет на 10 — 15. Учится надо самому…
UFO just landed and posted this here
В ВУЗе отучился 2 года, после чего ушел работать. Ситуация в конкретно моем ВУЗе двоякая: Специалисты в возрасте 35-55 лет дают фундаментальный материал, который нужен большинству нынешних программистов, в том числе вышеупомянутые системы счисления, основы тестирования, алгоритмы и т.д. Но молодым преподавателям — аспирантам дают «на откуп» темы абсолютно ненужные вроде устройства ЭВМ на примере ХТ 286, работа с архиватором ARJ.
На потоке 3 специальности, 1 — прикладные программисты, 2 — АСУТП, 3 — электропривод. При этом все три специальности обязаны были изучить электротехнику и черчение. Зачем? Все та же советская система образования. Последствия оказались печальными — из-за этих двух предметов студенты научились давать взятки (зачет нужен чтобы получить доступ к экзаменационной сессии, а эти два предмета многих оставили на доп.сессию) и держать автомат (тех кто не сдал/купил, отчислили и забрали в армию).
Вышка была 2 года. Причем бюджетники ее тоже далеко не все понимали, что уж говорить о внебюджетах. Для тех же, кто ее (вышку) понимал, вышка стала источником дохода из-за обилия расчетных заданий, домашних заданий, контрольных, срезов, зачетов и экзаменов.
незнаю насколько необходима простому php-кодеру математика, но то что многим верстальщикам полезно было бы подучить геометрию уровня школьного курса, это точно.
особенно в свете CSS3.
… оффтоп
И топологиюанафема! вашу бл*цкую тоже запретим! :)
Математика нужна безусловно, но не в том количестве, которое дается в некоторых вузах… А ведь раньше было ещё хуже: основы марксизма, ленинизма и пр. Эти предметы, слава богу, самоликвидировались. Уж они точно программистам были не нужны…
А вы учитесь не в классическом, а техническом ВУЗе. Я поступал и туда, и туда. Остался в техническом (сейчас заканчиваю 5 курс и ни разу не пожалел) — т.к. дают именно практические навыки и не заморачиваются дифференциалами, интегралами. Основной упор — именно на программирование, ИИ, алгоритмы, железо и ассемблер, исключительно программистские разделы математики (дискретная математика, выч. математика, мат. логика и пр. — имхо, они программисту необходимы). А вот мат. анализа было всего 3 семестра, которые со скрипом сдали и больше о них не вспоминали.

В классическом университете всегда учат математике, а не программированию. Наши 2-3-курсники легко делают дипломы для выпускников классического университета. Т.к. те математику знают отменно, а вот с программированием — проблемы.

PS Я — инженер-системотехник по специальности «Выч. машины, сети, системы и комплексы».
Only those users with full accounts are able to leave comments. Log in, please.