В течение последних двух месяцев у меня был следующий вопрос. После свидетельства качества ответов здесь я надеюсь, что здесь я получу отличные ответы.
Я направляю курс в отделе ЕЭК под названием "" Изучение цифровых информационных технологий ", предназначенный для не-майоров, чтобы их ноги мокрый с целым" как работают компьютеры". Будучи студентом-градиентом в компьютерной архитектуре, мой опыт в области значительно отличается от моего ученика (многие из них - первокурсники, не имеющие опыта работы с компьютером за пределами Word и YouTube), но мой весь образ мышления, по-видимому, принципиально отличается. У меня была большая степень успеха. Тренировка более технических курсов раньше, когда у студентов не было никакого фона в точном материале, но они были ориентированными на детали, технически настроенными людьми, которые сталкивались с такими вещами, как переменные, массивы, индексирование, косвенность, функции и т.д. У меня было необычно сложное время с первой частью курса, которая по существу охватывает HTML, JavaScript и Интернет (топологии сети, IP-адреса и т.д.).
Мои вопросы для сообщества SO - это много, но я начну с нескольких:
-
На самом высоком уровне, если вы пытались научить кого-то мыслить как программист (разбить алгоритмы человеческого уровня на простые шаги, которые могут быть переведены на функции, процедурные утверждения, инструкции if-then-else, и петли), будет ли HTML и JavaScript вашим подходом? Это дает результаты, которые являются релевантными (например, веб-страница, которая делает полезные вещи) быстрее, чем другие подходы, но разделение и интеграция HTML и JavaScript, а также весь "декларативный HTML, говорящий с процедурным JavaScript", кажется, забивают слишком много абстрактные понятия слишком скоро.
-
Если вы хотите научить HTML и JS новичку (кто-то, кто с трудом мыслит алгоритмически), какие ресурсы вы бы использовали, какие проекты вы бы назначили и т.д.? Я нахожу, что даже когда я разбиваю понятия, подобные циклу
for
, насколько я могу судить, это все еще немного. Есть ли где-то там, которые начинаются с первых принципов и действительно могут помочь истинному начинающему grok, почему нужны скобки и точки с запятой, какие аргументы функции и т.д.?
У меня, честно говоря, есть еще много вопросов, но я думаю, что это хорошее место для начала. Я с нетерпением жду возможности компилировать ваши результаты во что-то, что можно использовать не только для будущих итераций этого курса, но также и в моих личных "технологических евангелизации". Я читал другие вопросы "Как научить новичку делать X" здесь, но они, похоже, нацелены на совершенно другой класс "новичка": люди, которые математически настроены и очень заинтересованы в изучении программирования, но не знаю с чего начать. Я чувствую, что ответы для этой группы будут существенно отличаться от ответов с теми, у кого другое мышление и, возможно, менее внутренняя мотивация для изучения.