me

slonik_v_domene


Убей в себе государство


Previous Entry Share Next Entry
ПО мотивам обсуждения в ФБ.
me
slonik_v_domene
Теперь я понимаю, откуда берутся пионеры.

Откуда берутся пионеры?

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

Еще раз и медленно.

Студентов.
Отличников.
Третьего курса.
Московского физико-технического института.

Что я там увидел:
- лабы по Assembler для MSDOS/6.22
- код на С и С++

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

Люди пишут код который лишь бы работал; там, где можно использовать зависящий O(1) по скорости от объёма данных алгоритм, можно обнаружить O(n^2). В частности, при программировании двоичных деревьев студенты не в курсе про вырожденные случаи несбалансированных деревьев и заранее полагают скорость поиска логарифмической (а она там линейная, лол). В случае с assembler люди ничего не слышали о конвейере, привет, 8086, и при этом они же метят на работу в Intel!

Далее.
Народ ничего не знает об STL. Это не нужно, так как закат Солнца вручную - модно и молодёжно.

Преподаватели проходят под никами, как вам такой: Alcoholic. Я так понимаю, это сокращение Коголик Александр, как, вы не знаете, что это ведущий специалист-алгоритмост круче Дейкстры?

Виноваты ли в этом студенты? Полагаю, что если и виноваты, то не сильно - нельзя учиться новому у старпёров, застрявших в MSDOS 2.0, нельзя всерьёз воспринимать в качестве преподавателей алкашей, нельзя писать качественный код, если проверяют только результаты, не оценивая алгоритм и его реализацию.

А вот то, что даже в #мфти полностью просрана школа - очевидно, и аукнется это не сейчас, и даже не через 3-5 лет, когда этот студенческий сброд пойдёт на работу, а через 15-20 лет, когда массово начнут выходить на пенсию те, кто еще успел отучиться в СССР. Вот тогда - да, наступит веселье.

Обсуждение в ФБ

  • 1

по крайней мере у нас всегда будет хлеб с маслом.


У нас в университете было хуже. На ассемблере вообще не писали.

Я ошибаюсь или тут идёт речь о необходимости возвращения к истинному исламу, тьфу, ленинизму, тьфу, программизму?

ну вот я студент МФТИ, бывший.
нас вообще не учили бинарным деревьям. был некий борланд с++, в котором можно было перейти в svga режим, и рисовать клёвые картинки.
были ещё двумерные массивы.
там же был преподаватель, готовивший программистов на олимпиады по информатике, и, вроде, наши команды занимали какие-то призовые места.

потом был борланд C++ билдер (это я уже сам схватил), но для вычматов, и там можно уже было удобно мышкой перетаскивать кнопку "решать дифур", а потом больше пикселей решения дифура влезало на форму через canvas, и ещё все кнопки и компоненты начинались с буквы T.

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

меня например потом пытались учить ещё ООП, перлу, командам HP UX, а дипломная была (при тщательных прогулах) имплементацией idiot's bayes - и хоть бы кто мне из преподавателей сказал название переизобретённого алгоритма.

ничего из этого не пригодилось при работе вполне состоявшимся программистом на вполне состоявшихся рельсах. мало того, я сильно сочувствую коллегам, которые не в состоянии написать даже O(n^2), при этом размазывающие соплями какие-то мелкие части программы ради "скорости, ибо может тормозить". (например, не видел не тормозящих прикладных джава программ, поскольку там за деревьями не видно, что тормозит - всё действие разворачивается в файловой системе, где по файлу на exception, cp -r, и прочим переизобретениям)

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

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

Относительно непроверки результатов выделения: как писал Саттер

Moral #2: There's often little point in checking for new failure anyway.

Но про молодежь поговорить, конечно, интересней намного.

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

Про коды завершения функций и про утечки памяти - понял.

Про O(1) - понял.

Про конвейер - не понял, где там скрываются косяки.

Про STL не понял, о ком из многих речь. Расшифруйте, плз.

Аукаться будет постепенно.

>Про конвейер - не понял, где там скрываются косяки.

http://old.computerra.ru/system/235537/

>Про STL не понял, о ком из многих речь.

Любому, кто пишет на С++, очевидно, что такое STL.

обычный код на сишке - правда зачем на сишке такие вещи элементарные писать - когда можно было бы на PHP. вот драйвер или ось бы - да.
и не понятно причем тут STL.

При том, что в промышленной разработке будут использоваться stl и boost, а в универе этому почему-то не учат. Для того, чтобы научить человека самостоятельно реализовывать дерево и двусвязные списки - пусть пишет без stl, на for и int[], но нужен и опыт разработки относительно крупных приложений, разумеется с осмысленным использованием сторонних библиотек.

так там сишный код - stl работает в сишке чтоли?

Я не понял, что вы хотели сказать.

так и я не понял причем тут STL вообще и C++
вы бы сходили по ссылке - посмотрели исходик на С.

Я ходил по ссылке и видел. И сам такое писал, и студентов учил, будучи репетитором, как такое писать.

Потом, когда эти студенты будут делсть сколь бы то ни было крупный проект, они не будут самостоятельно выпиливать напильником на plain c ни списки, ни деревья, ни прочее (кроме очень редких случаев). Их надо учить пользоваться средствами, которые предоставляют библиотеки, а это STL. Хорошо бы еще учить дизайну библиотек, как их делать так, чтобы будущие пользователи не плевались.

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

В промышленной разработке может использоваться что угодно Delphi, C#, Python или вообще Oracle DB
как тогда поможет STL и boost?

Edited at 2015-12-04 10:00 am (UTC)

  • 1
?

Log in

No account? Create an account