1. В роли учебного пособия для себя выбрал "Современный учебник Javascript"
http://learn.javascript.ru/, по совету этого же лектора. Годится ли он?
Имхо да, хороший учебник. Но других я все равно не видел
2. Проблема в том, что у меня нету понимания основ программирования. Был когда-то курс Pascal. Что можно почитать вводного (без погружения в глубину), что бы понимать термины "ООП, инкапсуляция, прототип, наследование и т.д."?
Вместо слова "прототип" должно бы стоять "полиморфизм"...
Но это детали. ООП - это в значительной степени про то, как лучше организовать код, когда его ОЧЕНЬ много. Пока кода мало (а у студентов на учебных проектах его будет мало), преимущества не так очевидны.
Изначально идея простая. Весь ООП состоит в принципе из нескольких понятий - абстракция, инкапсуляция, полиморфизм, наследование. Еще есть принципы
SOLID. Каждый из этих принципов можно в одном-двух абзацах объяснить, теоретически. Дальше начинаются паттерны (грубо говоря, типовые проблемы и типовые подходы для их решения). Обычно, паттерн можно объяснить на нескольких страницах. Читать можно было бы Фаулера ("Рефакторинг. Улучшение существующего кода"), Кириевски "Рефакторинг с использованием шаблонов"...
Но самая большая проблема со всеми этими принципами и паттернами в том, что без практического опыта программирования вы просто не поймете, в чем именно там проблема. Это примерно как объяснять охотнику-собирателю из африканских джунглей проблему заготовки сена и дров на зиму крестьянами в средней полосе России. Тут я соглашусь с
Pphantom - интересующийся студент, скорее всего, будет располагать гораздо большим временем, будет много писать для себя, и, рано или поздно, ощутит все это на своей шкуре.
Можно попробовать еще почитать Хабр по тегу
ООП.
-- 26.02.2019, 23:12 --С этой проблемой я подошел к лектору, на что он мне ответил, что на "лабах" можно не переживать, главное как-то оценивать.
А вы внедрите
TDD (можете заодно с лектором обсудить, если он практик, то может и советов полезных даст).
Вкратце, суть подхода TDD в том, что вы сначала пишете автоматические тесты, которые должен проходить код, а потом пишете код. В вашем случае, у вас будет какая-то задача для лабораторной работы, и соответствующие тесты, а студенты должны будут принести решение, которое через эти тесты пройдет. Это, в общем-то, относительно просто. Тестирование для javascript описано в учебнике выше в главе
Автоматические тесты при помощи chai и mocha.
Ввиду семейных обстоятельств готов уделять этому делу 1-1,5 часа в день. Насколько реально вникнуть до сентября хотя бы в основы JS? Или нужно пойти другим путем?
Существенный момент, про который я совсем забыл, - это то, что с некоторых пор JS перестал быть скриптовым языком для исполнения в браузере, и уже давно существует серверный фреймворк node.js - там тоже javascript, но решающий немного другие задачи. Про него я ничего не знаю, а вот что касается клиентского javascript - то, имхо, если вы действительно уделите честных 200 часов изучению этой темы, какой-то толк может выйти. Опять же, заручитесь поддержкой лектора, чтобы хотя бы раз в неделю минут 15 обсуждать с ним какие-то непонятные места и расставлять приоритеты.
Перед курсом JS пробегите хотя бы по диагонали самоучители
HTML и
CSS. Они древнющие, конечно, но какие-то основы поймете.