Примечание - "готовить" - не в кулинарном смысле)
Так уж получилось что в одном из универов, где, кроме всех прочих специальностей, готовят и "инженеров-программистов-системотехников".
Готовят из рук плохо, кстати говоря, по сути на первом семестре у первокуров 1 пара практических занятий по программированию в неделю, и одна лекция ( лк вообще бесполезны в принципе) . Каждую неделю предполагается, что студент сдает лаб. работу, каждая лаба - несколько заданий по вариантам, варианты КРАЙНЕ отличаются по сложности - начиная от элементарных 5-минутных задач и заканчивая олимпиадными, которые ставят в затруднение даже меня, давно уже не первокурсника... В итоге на группу (30 тел) имеется к концу первого семестра только 4-5 людей которые реально более-менее осознали программу.
Но это лирика. Суть вот в чем. Эти люди ( студенты) приходят ко мне, что бы уже я их натаскал в программировании. И я столкнулся со следующими проблемами:
1) Человек знает как решить задачу ( по идее) , но сам этого не осознает. Допустим, простейшая задача "удалить" элемент с номером к из статического массива, удалить - в смысле передвинуть элементы, начиная с элемента k+1 влево.
Человек знает, что такое массив, как с ним работать. Он может поменять два элемента местами. Человек знает, что такое цикл и как они используются. Но дальше происходит затуп - он не может сообразить, что эти однотипные действия нужно засунуть в цикл.
Как с этим бороться?
У меня таких проблем никогда не возникало. .
2) Как заставить людей понять, что проще не придумывать велосипеды в голове, а взять ручку и попытаться придумывать алгоритм, изображая что-либо на бумаге? Сам никогда на первом курсе блоксхемы не рисовал, на первом курсе это и не нужно, но элементарно - если работаешь с массивом, а надо как-то хитро с ним что-то мутить - на нарисуй же ты этот массив на бумаге, и покажи, что собираешься делать, стрелочками! А потом запиши это на яп!
3) Как заставить человека... ну даже не знаю... мыслить, как программист. Пишешь что-то, возник вопрос - гугл, мсдн тебе в помощь. Мозг в конце концов включи блин! Нет, люди даже не могут элементарно прочесть, какие ошибки компиляции выдает им студия. Или не могут понять, что за ошибка. Элементарные ошибки исполнения - использование неинициализированной переменной, или выход за границу массива вообще вызывают панику. Как с этим бороться?
Другие языки программирования и технологии
Как готовить программистов?
Программистом можно только родиться: имеется в виду математический склад ума и упорство.. . Если у человека нет такого дара от рождения, даже если он окончит институт на пятёрки, никогда не сможет работать программистом...
> студенты) приходят ко мне, что бы уже я их натаскал в программировании
Абсолютно неблагодарное дело.
Абсолютно неблагодарное дело.
Саша Прокопюк
Во-первых, я люблю учить программированию=)
Во-вторых, естественно, это происходит не за "спасибо". Ну и я не беру тупых, только людей, которые кажутся перспективными.
Во-вторых, естественно, это происходит не за "спасибо". Ну и я не беру тупых, только людей, которые кажутся перспективными.
У меня мышление программиста возникло внезапно, когда к экзамену готовился.. Всё вдруг показалось таким элементарным. Что я могу предложить: напишите им схему! Или схемы по решению всех этих проблем. Начните с установки русификатора на студию, если они не в состоянии перевести.
1. Для преодоления задач с затупами - просто сформулируйте задачу по-другому, ещё больше упростите. Пусть для начала попробует заменить какой-то элемент. Потом пусть поменяет местами два любых элемента. Ещё что-нибудь.
2. Я, когда работаю с массивами, не пользуюсь стрелочками. Мне кажется это неудобным. Я рисую массив прямо индексами. Исходный массив и то, что нужно получить. И ищё зависимости между индексами.
3. Напишите простой алгоритм: возник вопрос:
1. Мозг -> Enable->true;
2. MSDN
3. Гугл
4. Преподаватель-коллега-сосед и т. д.
И напишите список основных ошибок. Всё те же - синтаксические (какой-нить символ пропустил) , использование неинициализированных переменных ну и т. д. и то, что нужно делать. И пусть работают прямо по этому списку.
1. Для преодоления задач с затупами - просто сформулируйте задачу по-другому, ещё больше упростите. Пусть для начала попробует заменить какой-то элемент. Потом пусть поменяет местами два любых элемента. Ещё что-нибудь.
2. Я, когда работаю с массивами, не пользуюсь стрелочками. Мне кажется это неудобным. Я рисую массив прямо индексами. Исходный массив и то, что нужно получить. И ищё зависимости между индексами.
3. Напишите простой алгоритм: возник вопрос:
1. Мозг -> Enable->true;
2. MSDN
3. Гугл
4. Преподаватель-коллега-сосед и т. д.
И напишите список основных ошибок. Всё те же - синтаксические (какой-нить символ пропустил) , использование неинициализированных переменных ну и т. д. и то, что нужно делать. И пусть работают прямо по этому списку.
Надо им самим найти то что им нравится и они пойдут начнут читать сами а вдолбить тому кто пришел просто за галочками сложно!
Когда у меня был предмет структуры данных препод пришел и сказа как будим учить дисциплину для себя или для галочки, не кто не ответил ну и в общем только я и ещё пара человек ходили за дополнительными заданиями остальные делали только что давали для отчетности а мы сдали отчетность и пошли в другие темы в общем к концу семестра те прошли 5 тем а мы порядка 8-9.
Это зависит от человека но препод нам всегда наглядно рисовал как происходит работа с массивами будто стек или обычный лист!
Я кстати после этого предмета и решил стать программистом лежа на кровати и решая задачи по программированию в уме и компилируя там же) в итоге почти все похожие программы после переноса в редактор являлись правильными.
Когда у меня был предмет структуры данных препод пришел и сказа как будим учить дисциплину для себя или для галочки, не кто не ответил ну и в общем только я и ещё пара человек ходили за дополнительными заданиями остальные делали только что давали для отчетности а мы сдали отчетность и пошли в другие темы в общем к концу семестра те прошли 5 тем а мы порядка 8-9.
Это зависит от человека но препод нам всегда наглядно рисовал как происходит работа с массивами будто стек или обычный лист!
Я кстати после этого предмета и решил стать программистом лежа на кровати и решая задачи по программированию в уме и компилируя там же) в итоге почти все похожие программы после переноса в редактор являлись правильными.
Похожие вопросы
- Когда менеджер проекта говорит "Эта задача не вошла в спецификацию" - что это значит для программиста?
- Хочу узнать плюсы и минусы профессии программиста, хочу учиться на программиста,как востребованы программисты и какие ве
- Как стать настоящим программистом-самоучкой?
- Ребят направьте в правильном направлении, не знаю что делать, хочу стать программистом
- А техник-программист это хорошая специальность? Они так же много получают, как обычные программисты?
- Как сейчас программистов может быть много?
- В России программисты не нужны?
- Вопрос к опытным программистам! Вы стали работать программистом потому что многое из перечисленного ниже совпадает?
- чем занимаются программисты?
- Жизнь программиста.
Естественно, я учу не всех, беру лишь людей, кажущихся мне перспективными, и обладающих желанием чему-то научиться, а не тупо сдавать лабы.