Аннотация:
В этом эссе доктор Ньюкамер высказывает свои идеи о причинах плохой подготовки большинства выпускников университетов по профилю computer science.
АЛП>Статья:
АЛП>Авторы: АЛП> Андрей Лягусский (перевод)
АЛП>Аннотация: АЛП>В этом эссе доктор Ньюкамер высказывает свои идеи о причинах плохой подготовки большинства выпускников университетов по профилю computer science.
Кошерная статья.
Кстати, чему равно звание свежеиспеченого баклана ... тьфу ты, бакалавра у нас ?
Здравствуйте, Андрей Лягусский (перевод), Вы писали:
АЛП>Статья:
АЛП>Авторы: АЛП> Андрей Лягусский (перевод)
АЛП>Аннотация: АЛП>В этом эссе доктор Ньюкамер высказывает свои идеи о причинах плохой подготовки большинства выпускников университетов по профилю computer science.
Интересная статья, но его рассуждения по поводу объема кода показались мне странными.
Это как бы не очень то и к делу относится.
Ну пишет он тысячами строк в день. Дак это мало о чем говорит.
Dog>Кстати, чему равно звание свежеиспеченого баклана ... тьфу ты, бакалавра у нас ?
Просто выпускник универа "без регалий". Еще так называемый undergraduate student. Graduate students (masters) — это уже аспирантура. Post-graduate (doctors) — докторантура.
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Что играет? Где играет? Где Винамп, я вас спрашиваю?!">>
Здравствуйте, Андрей Лягусский (перевод), Вы писали:
Вот эти понты мне нравяться:
За пять дней, предшествующих написанию этого эссе, я написал 4470 строк кода. Оплачиваемое время составило 31 час. Получается 144 строки в час (Японский Стандарт Продуктивности), не учитывая 28-страничное руководство, написанное в то же время. Японский Стандарт Продуктивности разрешает мне включать строки кода из существующих библиотек, которые можно использовать. Если я вычту 1038 строк существующей библиотеки, которая была использована, получится 3432 строки или 110 строк в час действительной продуктивности. Это меньше чем мой обычный стандарт, потому что это был действительно красивый «эталонный код», который должен был компилироваться как минимум на трех различных платформах, и я попотел над ним. Плюс был выполнен один нетривиальный пересмотр кода, повлекший за собой вычищение нескольких сотен строк для упрощения задачи в связи с корректировкой модели. В то же время, индустриальный стандарт продуктивности – это 5 строк в час, а для «супер-программистов» — 20 строк в час. И это не включая полное тестирование и документацию.
Сразу видно, крутой американский программер, у которого внук круче, наверное, меня, и все кругом просто дебили какие-то.
У меня такое ощущуения, что всё примеры некомпетентности этот автор придумал сидя в сартире и читая газетку (извените за вульгарность).
"Не верю!" (с)
"Man feed machine
Machine feed man"
Peter Gabriel — OVO — The Tower That Ate People
Довольно интересная статья. И многие идеи — насчёт обучения на практике или брать идеи из чужого кода — безусловно интересны и полезны.
И в то же время очень многое — спорно. Начиная от истории с девушкой, которой он так и не сумел обяснить — где надо ставить запятую в простейшем коде, до его рассуждений о том, что он пишет лучше потому что пишет болше кода.
Мы сейчас имеем дело с американцами, которые пишут код в стиле swicth — case — безумного объёма, который потом очень тяжело поддерживать. О наследовании, интерфесах и реализациях и уж тем более о шаблонах проектирования у них знает только один человек — главный разработчик. Но он держит книги в далёком шакфу и никому их не показывает. (Это кстати совсем не шутка )
В общем их код рефакторингу не поддаётся — нам просто приходится писать свой. И естественно по объёму он типично — в три-пять раз меньше — а по поддержке — на порядке легче чем их код. НО! Мы не умеем писать в стиле switch-case, по крайней мере с такой дикой скоростью как они. А потому — они считаются лучшими программистами...
AndreyFedotov,
> очень многое — спорно. Начиная от истории с девушкой, которой он так и не сумел обяснить — где надо ставить запятую в простейшем коде,
Вот этому я как раз легко верю: в соответствии с грамматикой английского запятая ставится внутри кавычек, и очень легко можно себе представить описанный диалог
> до его рассуждений о том, что он пишет лучше потому что пишет болше кода.
Это да...
Posted via RSDN NNTP Server 1.9
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>AndreyFedotov,
>> очень многое — спорно. Начиная от истории с девушкой, которой он так и не сумел обяснить — где надо ставить запятую в простейшем коде,
ПК>Вот этому я как раз легко верю: в соответствии с грамматикой английского запятая ставится внутри кавычек, и очень легко можно себе представить описанный диалог
С этим я согласен. А вот с чем я совершенно не согласен — так это с тем, что ей нельзя было обяснить, где должна была ставиться запятая. Мой опыт показывает, что пре желании и умении можно обяснить кому угодно и что угодно, за исключением полных дебилов. А он сам в статье упомянул, что студенты (включая девицу) полными дебилами не были...
AF> А вот с чем я совершенно не согласен — так это с тем, что ей нельзя было обяснить, где должна была ставиться запятая. Мой опыт показывает, что пре желании и умении можно обяснить кому угодно и что угодно, за исключением полных дебилов. А он сам в статье упомянул, что студенты (включая девицу) полными дебилами не были...
совершенно без подколов: а вы когда-нибудь преподавали? я помню репетиторствовал по физике и надо было объяснить такую простую вещь как относительная скорость девушке ... короче я так и не понял, поняла она или нет . некоторые вещи довольно трудно объяснить некоторым людям
Здравствуйте, Shady, Вы писали:
>[/q] S>Сразу видно, крутой американский программер, у которого внук круче, наверное, меня, и все кругом просто дебили какие-то. S>У меня такое ощущуения, что всё примеры некомпетентности этот автор придумал сидя в сартире и читая газетку (извените за вульгарность). S>"Не верю!" (с)
Еще будучи студентом, я часто слышал от некоторых однокурсников вопрос: "Моя программа написана правильно, однако не работает. Почему?". (Речь идет о факультете ВТ.) Со временем заметил, что одни перестают его задавать после выполнения пары-тройки заданий, а другие и после 20 лет работы в разных проектах то и дело рассказывают об очередном найденном ими баге в компиляторе или операционной системе. Некоторые вообще последовательно перебирают все возможные конструкции языка и/или классы/функции, пока не получат нечто не вылетающее после первого запуска.
Ну, а насчет массы написанного кода — тут действительно "Не верю!" (c). Разве только этот код просто писался без какой-либо дополнительной обработки типа компиляции.
Здравствуйте, Denis, Вы писали:
AF>> А вот с чем я совершенно не согласен — так это с тем, что ей нельзя было обяснить, где должна была ставиться запятая. Мой опыт показывает, что пре желании и умении можно обяснить кому угодно и что угодно, за исключением полных дебилов. А он сам в статье упомянул, что студенты (включая девицу) полными дебилами не были...
D>совершенно без подколов: а вы когда-нибудь преподавали? я помню репетиторствовал по физике и надо было объяснить такую простую вещь как относительная скорость девушке ... короче я так и не понял, поняла она или нет . некоторые вещи довольно трудно объяснить некоторым людям
Я преподаю электротехнику — недавно не смог объяснить человеку как по нарисованной на ветке стрелке определить куда течет по ней ток Однако, это был мужик — девушкам обычно объяснять проще, так как они исполнительнее
Смущает расхождение — 140 строк японский стандарт, а 5 — индустриальный. Индустриальный какой страны?
А вообще-то 5 строк без отладки в час — ну это перебор... Хотя — если при этом пару раз в кваку загамиться, то даже и ничего
Кстати — что-то давно я не видел и не слышал японских программ
СА>Смущает расхождение — 140 строк японский стандарт, а 5 — индустриальный. Индустриальный какой страны? СА>А вообще-то 5 строк без отладки в час — ну это перебор... Хотя — если при этом пару раз в кваку загамиться, то даже и ничего СА>Кстати — что-то давно я не видел и не слышал японских программ
А как же все их роботы — от сониевских до мицубишных, половина консольных игр, 3G телефония?
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Что играет? Где играет? Где Винамп, я вас спрашиваю?!">>
Здравствуйте, Shady, Вы писали:
S>У меня такое ощущуения, что всё примеры некомпетентности этот автор придумал сидя в сартире и читая газетку (извените за вульгарность). S>"Не верю!" (с)
Зря. Я преподаю программирование на факультете ВТ. Правда первый курс — не бакалавры, но в конце семестра перлов можно собирать гораздо больше. Во все примеры верю. Только объему кода не верю.
Например, задаю вопрос: "объявите массив вещественных (float) чисел размером 20 элементов и заполните его числами от 0 до 19 по возрастанию, используя оператор for". Вроде бы подвоха никакого нет. Можно пользоваться любой литературой. Отвечающий минут 40 роется в книжке, затем выдает следующий код (напомню, что факультет ВТ):
int a[5];
for (int i=0; i<10; i++)
Начинаю задавать наводящие вопросы, почему человек написал именно так. Ответ меня шокировал: я в книжке нашел только такой массив и такой цикл. (В смысле, пример массива в книжке был int a[5], а пример цикла от 0 до 9).
Ну и заполнения массива тоже нет, так как в книжке не написали, как это делать в цикле.
Здравствуйте, Mamut, Вы писали:
СА>>Смущает расхождение — 140 строк японский стандарт, а 5 — индустриальный. Индустриальный какой страны? СА>>А вообще-то 5 строк без отладки в час — ну это перебор... Хотя — если при этом пару раз в кваку загамиться, то даже и ничего СА>>Кстати — что-то давно я не видел и не слышал японских программ
M>А как же все их роботы — от сониевских до мицубишных, половина консольных игр, 3G телефония?
Я когда-то считал сколько кода пишу в день... но это совсем не адекватная оценка. Например 2 года назад я писал примерно по 400 строк в день, т.е примерно 50 строк в час. И это при том, что код писался с использованием опенсорсовой библиотеки по которой нифига небыло доки и даже не было толковых коментариев, кроме глупостей с рожицами. Сейчас у меня выходит около в среднем 200, но качественно это уже не switch..., а шаблоны.
Что касается обучения, то яркий пример, мой собственный универ, который я закончил летом 2004-го, Так вот преподы с каждым годом всё больше удивляются почему народ на защиту представляет с каждым годом всё более слабые дипломные работы Так вот, знаете как с этим принято решение бороться??? — обязать всех студентов 5-х 6-х курсов посещать все пары не зависимо от их успеваемости... а за несоблюдение отчислять. Так как же человеку набраться опыта, да и кому он нужен вообще без понимания, что такое та же ERP, CRM или как управлять исполнительными механизмами, если человек работает для благ промышленности.
Что касается японцев, то я знаю, что они пишут и, надобно сказать мужики молодцы. Весь их код больше направлен на реализацию эффективных алгоритмов распознавания, управления робототехничискими комплексами и прочей хардварей. При этом их код направлен именно на реализацию гибких алгоритмов, а не кучи менюшек и разноцветных кнопочек.
как-то мы делали мозги для станков с ЧПУ upgrade с 1980 года на 2000-й так вот,, что меня больше всего поразило, так это то, что интерпретарор там был реализован на 8-ми разрядном сдвиговом регистре , а мы 3 месяца долбались над алгоритмами имея в с воём распоряжении Turbo C и Industrial PC на базе пентиум 133. Правда тогда я совсем ещё зелёный был и даже вспоминать стыдно про содержимое кода.
По поводу способности обучать — это верно замечено..., если человек пошёл на курсы — значит ему интересно узнать истину и пояснить где ставится запятая и почему англ не эквивалент С — святая обязанность лектора. Вот не так давно мою подружку попросили заняться репетиторством по матану девочки, учащейся в 6-м класе. Подружка закончила с красным дипломом универ по направл прикладная математика, но тем не менее объяснить не всегда может и частенько я просто объясняю как лучше преподнести тот или иной материал конкретному дитю и, надо заметить, это работает. Так что тут главное засунуть все амбиции в одно место и спуститься до того уровня, на котором студент может понять, вплоть до проведения аналогии с песочницей
Здравствуйте, MarW, Вы писали:
MW>Здравствуйте, Shady, Вы писали:
S>>У меня такое ощущуения, что всё примеры некомпетентности этот автор придумал сидя в сартире и читая газетку (извените за вульгарность). S>>"Не верю!" (с) MW>Зря. Я преподаю программирование на факультете ВТ. Правда первый курс — не бакалавры, но в конце семестра перлов можно собирать гораздо больше. Во все примеры верю. Только объему кода не верю.
MW>Например, задаю вопрос: "объявите массив вещественных (float) чисел размером 20 элементов и заполните его числами от 0 до 19 по возрастанию, используя оператор for". Вроде бы подвоха никакого нет. Можно пользоваться любой литературой. Отвечающий минут 40 роется в книжке, затем выдает следующий код (напомню, что факультет ВТ):
MW>
MW>int a[5];
MW>for (int i=0; i<10; i++)
MW>
MW>Начинаю задавать наводящие вопросы, почему человек написал именно так. Ответ меня шокировал: я в книжке нашел только такой массив и такой цикл. (В смысле, пример массива в книжке был int a[5], а пример цикла от 0 до 9). MW>Ну и заполнения массива тоже нет, так как в книжке не написали, как это делать в цикле.
Перлы дело такое... я сам не так давно закончил универ факультета ИВТ и могу Вас заверить, что многие студенты обладают такими знаниями не из-за того, что бараны полные, а просто т.к. им не объяснили практического применения без которого просто не интересно учить что-либо т.к. это что-то считается бесполезным.
Так я, например к окончанию второго курса не знал толком как объявляются функции в С, хотя нам его уже читали 2 семестра. Но рассказывали только как объявлять массивы, методы классов и т.д. без привязок конкретным задачам... в общем, я в своё время просто подумал, что не стоит "дурным" голову забивать.
После сессии я решил, что это было -таки нужно. Пошёл на рынок и спросил наиболее новый компилятор борландового С (1999 год) на рынке мне дали Borland C++ Builder 1.0. Принёс домой просетапил и понял, что это что-то уже интересное
но неизведанное и в след выходные купил книгу Белорусского издательства. В общем начинал учить С++ с конструирования из компонентов , постепенно понимая, что программирование не сводится только к написанию обработчиков событий..
Через 3 месяца я уже писал рабочие многопоточки (естественно не с использованием Win API. а на борландовых заманухах). К своему бакалаврату (через 2 года я уже успел сотворить ядро интерпретатора для станочных мозгов).
В общем я считаю, что первым нужно давать студентам проектирование систем, чтобы они въехали в предметную область, затем запускать на реализацию с использованием мощных IDE вроде JBuilder, Delphi, C++ Builder, чтобы человек понял, что написать виндовое приложение реально и для него, а не говорить ему, как писал автор, что ты баран и это не лечится. И только после этого, когда человек уже понимает суть проблемы и не боится реализовать (а зря) пояснять, что в мире не всё так просто и вводить в детали (STL, расположение объектов в памяти, указатели на таблицы вирт функций), а после показывать, что любое алгоритмическое решение можно унифицировать для разных типов данных реализовав его в виде шаблонного класса или функции.
Мы активно общались с моим руководителем магистерской работы на эту тему и не только я, но и другие магистранты и специалисты и в результате добились изменения учебного курса, но вот, допустим шаблонов в курсе нет и STL , просто читать некому, а такие как я и прочие, кто таки стал программистом за 70$ в месяц не хотят хработать на кафедре, что вполне естественно.
Здравствуйте, MarW, Вы писали:
MW>Зря. Я преподаю программирование на факультете ВТ. Правда первый курс — не бакалавры, но в конце семестра перлов можно собирать гораздо больше. Во все примеры верю. Только объему кода не верю.
Наверное код на твоей web-странице, передающий тебе email сообщение (и остальные поля формы) методом GET тоже нельзя назвать лучшим...
Здравствуйте, Андрей Лягусский (перевод), Вы писали:
После прочтения уже нескольких статей американских авторов ("Сделай это сейчас" и тп), начинаю понимать, насколько же отличается их менталитет чтоли, восприятие мира от нашего. Даже не знаю как объяснить. Понтов что ли много.
Не буду говорить что понравилось в статье, что нет. Это личное.
На что очень обратил внимание, так это на высказываение:
Самая серьезная проблема – научить людей размышлять о программировании как о виде искусства.
Много думал над этим раньше. Правда собственного опыта не хватает, но ИМХО это правильно. Т.е. программирование — вид искусства, а не какая-то машинальная работа, которая выполняется после зубрежки пары-тройки книг. И объяснить это людям бывает трудно (вижу по ребятам, с которыми учусь).
adr>Вот не так давно мою подружку попросили заняться репетиторством по матану девочки, учащейся в 6-м класе. Подружка закончила с красным дипломом универ по направл прикладная математика, но тем не менее объяснить не всегда может
У нас такой учитель по математике был. Готовил нас к выпускным экзаменам в лицее (молдавский "бакалавр" по румынской системе, кто знает — поймет).
Так вот, он по совместительству являлся тренером международной команды Молдовы по математике (в активе команжы — 3-е место на всемирной олимпиаде). О, Боже! Объяснять он мог только жестами и невнятными конструкциями типа "вот если мы отсюда сюда, а потом вот так, то все здесь". Любимая его фишка была — нарисовать на доске формулу какую-нибудь в две строки, посмотреть на нее в течение 2-3 минут, потом сказать "А, так здесь все видно" и, ничего не объясняя, совершив все действия в уме, написать конечный результат — два-три символа.
Но было весело (повезло, что класс был физико-математический, народ иногда до 10% процентов объясняемого понимал сам )
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Что играет? Где играет? Где Винамп, я вас спрашиваю?!">>
Здравствуйте, anton_m, Вы писали:
_>Здравствуйте, Андрей Лягусский (перевод), Вы писали:
_>После прочтения уже нескольких статей американских авторов ("Сделай это сейчас" и тп), начинаю понимать, насколько же отличается их менталитет чтоли, восприятие мира от нашего. Даже не знаю как объяснить. Понтов что ли много.
Гдавное отличие в том, что авторы книг зачастую ведут себя с читателем "запанибратски". И хотя в оригинале это выглядит нормально, то в русском переводе это становится "понтами". Наши книги отличаются большей серьезностью и "офийиозностью", что ли.
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Что играет? Где играет? Где Винамп, я вас спрашиваю?!">>