OberonCore https://forum.oberoncore.ru/ |
|
К вопросу о воспитании правильных качеств программиста https://forum.oberoncore.ru/viewtopic.php?f=7&t=6305 |
Страница 1 из 3 |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 11:08 ] |
Заголовок сообщения: | К вопросу о воспитании правильных качеств программиста |
Нашел на сайте Дединского его презентацию об обучении школьников программированию: http://storage.ded32.net.ru/Lib/Doc/Ana ... ch2010.pdf И там он конкретно пишет, что надо ВОСПИТЫВАТЬ качества - слайды 15, 16, 17. Без воспитания качеств - не поможет никакой инструмент. |
Автор: | Info21 [ Четверг, 08 Ноябрь, 2018 11:55 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Это Вы опять защищаете С++? |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 12:07 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Нет. Я в результате 25-летнего опыта преподавания пришел к выводу, что инструмент - вторичен. Программисты по мере "взросления" сами приходят к необходимости жесточайшей самодисциплины. Достаточно Боба Мартина почитать и Кента Бека с Мартином Фаулером. Да и собственный опыт говорит о том же. Поэтому при начальном обучении гораздо важнее ВОСПИТАНИЕ нужных качеств - о чем и говорит Дединский. Инструмент может помогать в этом (немного) или нет. |
Автор: | Rifat [ Четверг, 08 Ноябрь, 2018 12:57 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Валерий Лаптев писал(а): Нет. Я в результате 25-летнего опыта преподавания пришел к выводу, что инструмент - вторичен. Программисты по мере "взросления" сами приходят к необходимости жесточайшей самодисциплины. Достаточно Боба Мартина почитать и Кента Бека с Мартином Фаулером. Да и собственный опыт говорит о том же. Поэтому при начальном обучении гораздо важнее ВОСПИТАНИЕ нужных качеств - о чем и говорит Дединский. Инструмент может помогать в этом (немного) или нет. В описании графической библиотеки Amadeus-3 есть обсуждение языка C++. Вот некоторые цитаты: Цитата: There are no circular references in Oberon-2, contrary to Modula-2, where definition modules make circular references possible, and most other languages, where such rules have never even been considered; in C/C++, nothing could stop you from building a library with chaotic crossreferences. Цитата: Did you ever notice how difficult it is to proof-read a document in English? Imagine that every punctuation was fundamentally important and that missing a single comma could change the meaning of the entire text... Not so for C/C++. Single-character mistakes are possible in many places and won't be detected by the compiler. Цитата: This is a really difficult problem, since we tend to like what we know. Most people don't think about how to design a programming language, they just pick up a manual that says how it's done. Therefore, few people will say "Oh I just love this or that style of programming", they will like whatever they learned first, since that will save them a lot of intellectual effort - at least until they are confronted with problems arising from that choice. If the first language learned was C/C++, as it still is for a large majority of programmers, then the C-style syntax, the operators and the traps and pitfalls of the language will seem perfectly natural, just as the words "Procedure", "Begin" and "End" will be natural to the Pascal programmer. И основной минус С++ в том, что слишком много возможностей. Нельзя просто взять студентов и обучить только 10% языка и сказать, чтобы они использовали только эти возможности. Так как всегда найдутся студенты, которые захотят показать свою крутость и использовать крутые фишки языка. Пусть они будет знать 20%. Другие студенты тоже захотят подтянуть свои знания в этом вопросе и будут использовать другие 20% языка. При коллективной работе будет получаться, что в общем проекте используется 95% языка, при этом все студенты понимают ядро, состоящее из 10%, а оставшиеся части понимают с какой-то вероятностью, что-то понятно, а что-то не понятно. У Дединского в презентации как раз сказано про коллективную работу, в этом плане С++ не способствует коллективной работе. |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 15:16 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Rifat писал(а): И основной минус С++ в том, что слишком много возможностей. Нельзя просто взять студентов и обучить только 10% языка и сказать, чтобы они использовали только эти возможности. Так как всегда найдутся студенты, которые захотят показать свою крутость и использовать крутые фишки языка. Пусть они будет знать 20%. Другие студенты тоже захотят подтянуть свои знания в этом вопросе и будут использовать другие 20% языка. При коллективной работе будет получаться, что в общем проекте используется 95% языка, при этом все студенты понимают ядро, состоящее из 10%, а оставшиеся части понимают с какой-то вероятностью, что-то понятно, а что-то не понятно. У Дединского в презентации как раз сказано про коллективную работу, в этом плане С++ не способствует коллективной работе. 1. Абсолютно согласен с тем, что "контуперные гении" захотят полезть в самые темные закоулки языка. 2. Речь идет не о С++, а о том, что в школьниках (в школьниках, а не студентах) надо ВОСПИТЫВАТЬ правильные качества. 3. Инструмент здесь помогает мало - проверено. Одна из наших преподавательниц, которая обучает народ на Семантике, часто сетует: только отвернешься - они превращаются обратно в балбесов... То есть вылезают ВСЕ ВРЕДНЫЕ привычки обратно... Хотя более дружественный инструмент - поискать. |
Автор: | LKom [ Четверг, 08 Ноябрь, 2018 16:13 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Все очень просто. Требуйте, чтобы учащиеся в своих работах использовали только преподанные средства. Тогда не будет в программировании вредных привычек и выработается хорошая привычка работать в полном соответствии с требованиями. Для учащегося должны быть сформулированы четкие требования. |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 16:33 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
LKom писал(а): Все очень просто. Требуйте, чтобы учащиеся в своих работах использовали только преподанные средства. Тогда не будет в программировании вредных привычек и выработается хорошая привычка работать в полном соответствии с требованиями. Для учащегося должны быть сформулированы четкие требования. 1. ВУЗ - это не школа. Я вот со школьниками не могу работать - психологически трудно. Поэтому расписать все поурочно у меня просто не получится... 2. Вы плохо представляете уровень подготовки студентов в провинциальном городе... После введения ЕГЭ выискиваешь хотя бы 2-3 соображающих... Если еще запрещать - лучше сразу уволиться... |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 16:37 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Кстати, добавлю. Пока нет формального списка качеств программиста. У психологов они называются профессионально важные качества... А надо бы определиться с ними. |
Автор: | LKom [ Четверг, 08 Ноябрь, 2018 17:18 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Цитата: 1. ВУЗ - это не школа. ... Предложите работать так, как на производстве.Используйте технологию "Экстремального программирования". Программируем в паре, один разрабатывает, диктует; другой подвергает сомнению и пишет. Все отвечают за результат. Разработка не остается заброшенной при уходе члена команды. "Профессионально важными качествами" - это умение аргументировать, понимать, отвечать за общее решение и обеспечивать сопровождение всего жизненного цикла ПО. |
Автор: | Rifat [ Четверг, 08 Ноябрь, 2018 17:21 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
1) На большинстве производств экстремальное программирование не используют. 2) Есть много доводов против экстремального программирования и парного программирования в частности. Можно посмотреть книжку: "Agile!: The Good, the Hype and the Ugly" Bertrand Meyer (Author). |
Автор: | Илья Ермаков [ Четверг, 08 Ноябрь, 2018 17:35 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Материал в презентации разумен, траектория освоения хорошая. С++ там просто как вариант, на Обероне на порядок легче и с песней будет. С С++ всякая языковая хрень будет путаться под ногами, но она, в принципе, "изолируемая хрень", а в случае Явы-Шарпа будет путаться ещё и инструментально-экосистемная хрень, плюс какое-нибудь обязательное ООП и дин. память не изолируешь даже на начальном этапе ("всё есть класс и объект"). Ну а Питон вообще не позволит показать то, что нужно, в плане программирования компонентов на среднем уровне. Будет только клепание-склейка. Конечно, абсолютно "неспрямляемой" для образования является includ-истая "модульность" Сей. Ну и некоторые пороки синтаксиса типа ==. |
Автор: | LKom [ Четверг, 08 Ноябрь, 2018 17:37 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Rifat писал(а): 1) На большинстве производств экстремальное программирование не используют. 2) Есть много доводов против экстремального программирования и парного программирования в частности. Можно посмотреть книжку: "Agile!: The Good, the Hype and the Ugly" Bertrand Meyer (Author). Вы неправильно понимаете производство. При разработке на любом документе должны быть: подпись: разработал, подпись: проверил, подпись: утвердил. Так должно быть и при разработке ПО. |
Автор: | Rifat [ Четверг, 08 Ноябрь, 2018 18:07 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Илья Ермаков писал(а): а в случае Явы-Шарпа будет путаться ещё и инструментально-экосистемная хрень Сегодня только меня Шарп (на производстве) неприятно удивил. Ругнулся на мой код варнингом. Написал код следующего вида: Код: if ((100 <= x) && (x <= 200)) (все имена и константы вымышленные, а любые совпадения случайны) Так вот, варнинг был по поводу того, что 100 <= x не очень читабельно, что лучше писать x >= 100. Понятно, что это противоречит математической традиции, где написали бы 100 <= x <= 200. Пришлось пойти на поводу у Шарпа и переписать код (не для того, чтобы код стал читабельнее, а чтобы у других разработчиков при компиляции проекта не возникал этот варнинг): Код: if ((x >= 100) && (x <= 200))
|
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 18:17 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
LKom писал(а): Цитата: 1. ВУЗ - это не школа. ... Предложите работать так, как на производстве.Используйте технологию "Экстремального программирования". Программируем в паре, один разрабатывает, диктует; другой подвергает сомнению и пишет. Все отвечают за результат. Разработка не остается заброшенной при уходе члена команды. "Профессионально важными качествами" - это умение аргументировать, понимать, отвечать за общее решение и обеспечивать сопровождение всего жизненного цикла ПО. 1. По вашим, на мой взгляд, абсолютно наивным предложениям хочется сделать вывод, что вы в образовании не работали. 2. Со студентами мы и работаем "как на производстве". 2.1. Каждый семестр - 2 курсовых. По каждой курсовой: программа, документ Пояснительная записка (где и написано "разработал, проверил, утвердил"), презентация доклада и доклад. Читаем мы ВСЕ и не по 1 разу. Проверяем тоже все - и тоже не по одному разу. 2.2. ТРИ учебных практики, которые аналогичны курсовым, только не за семестр, а за 2-4 неели. 2.3. Коллективный проект. Ведет наш выпускник, технический директор одной Астраханской конторы. По совместительству сертифицированный спец Микрософта, кандидат наук, официальный тестер Windows. Там именно командная работа под его непосредственным руководством и при постоянном общении с заказчиком. 3. Профессионально важные качества - это не умения, и не знания. Это психологические характеристики, которые и позволяют научиться "аргументировать, понимать, отвечать за общее решение и обеспечивать сопровождение всего жизненного цикла ПО". |
Автор: | Пётр Кушнир [ Четверг, 08 Ноябрь, 2018 18:56 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
И сколько времени вся эта бюрократия занимает от всего времени "производства"? |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 19:11 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Это - не бюрократия, а обучение. Как учить, если не проверять, и не указывать, что надо переделать. |
Автор: | Пётр Кушнир [ Четверг, 08 Ноябрь, 2018 20:58 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Презентация, доклад, записка. Это надо запрограммировать или просто в "ворде" посидеть полдня? |
Автор: | Info21 [ Четверг, 08 Ноябрь, 2018 21:14 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Вправлять мозги приходится уже старшим школьникам. Начинать воспитывать нужно с 5-го класса. В школе -- предъявление идеальных образцов. Вы просто, похоже, понятия не имеете о средних классах. И вообще о школе в целом. |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 21:49 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Пётр Кушнир писал(а): Презентация, доклад, записка. Это надо запрограммировать или просто в "ворде" посидеть полдня? Петр, "ты, конечно, программист авторитетный... Но зачем ты так? ":) |
Автор: | Валерий Лаптев [ Четверг, 08 Ноябрь, 2018 21:53 ] |
Заголовок сообщения: | Re: К вопросу о воспитании правильных качеств программиста |
Info21 писал(а): Вправлять мозги приходится уже старшим школьникам. Начинать воспитывать нужно с 5-го класса. В школе -- предъявление идеальных образцов. Вы просто, похоже, понятия не имеете о средних классах. И вообще о школе в целом. С 5-го класса - я с этим полностью согласен. Насчет идеальных образцов, вы, естественно, правы. Лично у меня опыт очень небольшой. Приходилось учить школьников, но нерегулярно, и с большими перерывами. Собственно, отсюда и пошел мой интерес, как учить. Ибо одни понимают сразу, а вторым - надо каким-то совершенно иным способом все то же самое объяснять. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |