Здравствуйте, LaptevVV, Вы писали:
SaZ>>... SaZ>>2. Работа с чужим кодом. Я думаю многие видели джунов, которые не могут дорабатывать чей-то код (даже нормального качества) и хотят всё переписать с нуля. Как правило потому, что не могут разобраться. LVV>А вот это — да. LVV>Я пытался внедрить в курсе системное программирование. LVV>Пишем интерпретатор виртуальной машины — тестирование делает другой студент. LVV>Потом пишем ассемблер для виртуальной машины — опять же тестирование делает другой студент. LVV>Но не пошло — студенты же сразу друг с другом состыковались. LVV>Пока не придумал, как это осуществить в учебном процессе.
LVV>Это надо каждому дать индивидуальный чужой проект. И чтобы он его модифицировал в нужном направлении. LVV>Проекты не должны быть засвечены в учебном процессе ранее. LVV>Подумаю.
Спасибо за ответ. Я немного перефразирую: я пока не знаю как привить студентам навык чтения чужого кода. Мне в своё время этого очень не хватало. Впрочем, я не особо преподавал, вёл несколько месяцев факультатив по си, ещё будучи студентом. Потом несколько раз халтурил репетитором, но быстро надоело, потому что когнитивная нагрузка высокая, а выхлоп в долларо-часах на основной работе к тому моменту был уже заметно выше.
Переломный момент произошёл когда сабмитил какой-то мелкий фикс в Qt и меня тогда на ревью разнесли в пух и прах по всем фронтам. Тогда я начал читать чужой код и пытаться понять, почему написано именно так, чем хорош и плох кодстайл кутэ и т.п. В общем, это заметно добавило мне педантичности. А несколько самописных логгеров, которые я каждый раз пытался сделать лучше и лучше, но потом по факту осозновал что я сделал кривенький велосипед, собственно и подтолкнули к изучению чужих решений и способствовали тому, что я начал отличать плохой код от хорошего.
LVV>>Пока не придумал, как это осуществить в учебном процессе. LVV>>Это надо каждому дать индивидуальный чужой проект. И чтобы он его модифицировал в нужном направлении. LVV>>Проекты не должны быть засвечены в учебном процессе ранее. LVV>>Подумаю. SaZ>Спасибо за ответ. Я немного перефразирую: я пока не знаю как привить студентам навык чтения чужого кода. Мне в своё время этого очень не хватало. Впрочем, я не особо преподавал, вёл несколько месяцев факультатив по си, ещё будучи студентом. Потом несколько раз халтурил репетитором, но быстро надоело, потому что когнитивная нагрузка высокая, а выхлоп в долларо-часах на основной работе к тому моменту был уже заметно выше. SaZ>Переломный момент произошёл когда сабмитил какой-то мелкий фикс в Qt и меня тогда на ревью разнесли в пух и прах по всем фронтам. Тогда я начал читать чужой код и пытаться понять, почему написано именно так, чем хорош и плох кодстайл кутэ и т.п. В общем, это заметно добавило мне педантичности. А несколько самописных логгеров, которые я каждый раз пытался сделать лучше и лучше, но потом по факту осозновал что я сделал кривенький велосипед, собственно и подтолкнули к изучению чужих решений и способствовали тому, что я начал отличать плохой код от хорошего.
О необходимости обучения читать чужой код писал, по-моему, Роберт Гласс.
Посыл был такой: в школе мы учимся сначала читать, а потом уже писать.
А в программистской школе — наоборот почему-то.
Хотя чтение чужого (в том числе и легаси) кода — это просто профессиональный скилл для программиста должен быть.
Буду думать, как это можно внедрить в учебный процесс.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Курсовые - как это делается в Астраханском универе
Здравствуйте, LaptevVV, Вы писали:
LVV>А из центральных вузов что-то такое можешь привести как пример, к чему стремиться ?
К чему стремиться известно, смотреть как учат во всяких Стенфордах, Беркли, MIT — и стараться делать похоже. В инете можно найти и записи лекций, и какие у них задания, и как примерно идет обучение и тому подобное. Начиная с курсов для нулевого уровня, и заканчивая чем то более продвинутым. Хоть и 10 летней давности и иногда уже на вебархиве, сейчас уже начали требовать авторизацию и до черта материалов недоступно, ранее было с этим сильно проще. Но и сейчас при желании можно понять что у студентов за задания, как все происходит и подобное. Меня в свое время весьма это впечатлило.
Ну и вкратце. Пишите блин библиотеки кафедральные и общеуниверовские. Которые будут более удобными и лаконичными, чем стандартные в языке. Чтобы сложные вещи на этих библиотеках можно было делать минимальным количеством кода, без постоянных проверок ошибок, черти какой инициализации и все такое, чтобы можно было фокусироваться на задаче, а не на проблемах языка программирования. В том же Стэнфорде например используется для обучения крайне простая библиотека для построения GUI. Также очень хорошие библиотеки работы со строками, стандартные алгоритмы и все подобное, максимально простая и лаконичная многопоточность и много всего еще. Библиотеки позволяют решать задачи курса весьма компактно и красиво даже на чистом Си. И пофиг, что библиотеки не стандартные, важно то, что они более удобны, чем стандартные, как минимум для учебных целей и для задач, которые решаются в процессе обучения. К моменту выпуска студентов библиотеки и языки программирования 100 раз сменятся, однако будет сформирована привычка писать максимально понятный лаконичный код, где все сложности и жесть спрятаны под капотом. И так как привычка будет сформирована, то выпускники не будут постоянно говнокодить, и в случае чего, напишут собственную удобную библиотеку. Именно у буржуев постоянно до хрена на гитхабе всяких библиотек, где во главе стоит именно удобство. В РФ блин абсолютное большинство даже опытных программистов будут мучиться, но будут писать так, как в книжке написано по какой древней либе, и даже мыслей не возникнет скрыть сложность.
Нафик Qt в чистом виде и все такое! Нафик stl, бусты и все такое! Сделайте свои либы, более удобные, можно поверх стандартных, можно с нуля! Двойной плюс будет — и научите писать фундаментальные вещи, и возможно напишете действительно удачные либы, которые могут стать стандартом индустрии.
Re[6]: Курсовые - как это делается в Астраханском универе
Здравствуйте, elmal, Вы писали:
E>Нафик Qt в чистом виде и все такое! Нафик stl, бусты и все такое! Сделайте свои либы, более удобные, можно поверх стандартных, можно с нуля! Двойной плюс будет — и научите писать фундаментальные вещи, и возможно напишете действительно удачные либы, которые могут стать стандартом индустрии.
Вот соглашусь. Выпускники с прививкой от синдрома "not invented here" сегодня очень востребованы в индустрии.
Re[7]: Курсовые - как это делается в Астраханском универе
Здравствуйте, LaptevVV, Вы писали:
DS>>А всякие "школьные языки программирования" хороши в лучшем случае в начальной школе, где надо по-быстрому что-то показать не вдаваясь в детали, но для подготовки специалистов это бесмысленно. LVV>Если бы Вирт рассуждал так же — не было бы целой ветки паскалевских языков.
Здравствуйте, LaptevVV, Вы писали:
LVV>Ладно, мы провинциальный вуз. Допустим, у нас квалификация недостаточная (но я сильно подумаю на этот счет). LVV>А из центральных вузов что-то такое можешь привести как пример, к чему стремиться ?
Типа ИТМО?
LVV>Наши пацаны на гитхабе репы имеют. LVV>Некоторые в ИТМО поступают за совокупность этих учебных работ.
Это да, каждый что-то у себя делает и индивидуально развивается. А есть профиль на Гитхабе или российском аналоге у университета, где есть университетские проекты? Или у кафедры?
Re[6]: Курсовые - как это делается в Астраханском универе
LVV>>Ладно, мы провинциальный вуз. Допустим, у нас квалификация недостаточная (но я сильно подумаю на этот счет). LVV>>А из центральных вузов что-то такое можешь привести как пример, к чему стремиться ? N>Типа ИТМО?
О, спасибо! LVV>>Наши пацаны на гитхабе репы имеют. LVV>>Некоторые в ИТМО поступают за совокупность этих учебных работ. N>Это да, каждый что-то у себя делает и индивидуально развивается. А есть профиль на Гитхабе или российском аналоге у университета, где есть университетские проекты? Или у кафедры?
Нет, ничего подобного нет.
И руководство совершенно к этому не стремится.
У меня была инициатива по примеру ИТМО начать выставлять проекты в интернет.
Довольно давно уже.
Но как-то никто не поддержал...
Мы ж не программерско-математический универ.
Основное направление химия-биология.
Но с этой стороны никто к нам не обращается.
А я уже старый всех пиннать...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!