Стас Выщепан @gandjustas
Умею оптимизировать программы
Information
- Rating
- 329-th
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Software Architect, Delivery Manager
Lead
C#
.NET Core
Entity Framework
ASP.Net
Database
High-loaded systems
Designing application architecture
Git
PostgreSQL
Docker
Но в Java массивы фиксированы, в JS — динамические. В Java надо будет еще разбираться с ArrayList, который кстати generic и почему он так сильно отличается от обычного массива.
Вариант с очередью е вариант, потому что клиент стоит у кассы и ему надо напечатать билет или отказать.
Если Монго не предлагает третий вариант, то это не значит что его нет ;)
Вообще из-за хайпа вокруг NoSQL появилось дофига «школьников», которые не знают про подходы, используемые в РСУБД десятилетиями. Зато хорошо повторяют маркетинговый буллшит NoSQL. Вот и получаются такие опусы.
Ты пытаешься доказать что подход, который не просто работает, а очень хорошо себя зарекомендовал на протяжении десятков лет, плохой?
У тебя лично большой опыт преподавания, особенно начального?.
Проблемы с сетью? Вы о чем? У всех 3г\4г, да и на крайняк можно поставить ченить в классе.
Объяснить '===' и '==' очень просто. Первый выполняет простое сравнение, второй семантическое. Таблица для семантического сравнения простая, но все равно лучше не использовать.
Кстати почти во всех языках есть аналоги '===' и '==', ниче живут люди.
Какую теорию надо знать чтобы комбинировать? Разве что про ленивые\энергичные вычисления.
Еще раз говорю — прочитай SICP посмотри как там построен курс.
Где надо ===, а где == расскажет jshint, встроенный в jsfiddle. Кстати JSHint как раз работает по рекомендациям из книги JavaScript: Good Parts.
1) Начальное программирование преподается для тех, кто еще ни на чем никогда не программировал.
2) Весь курс занимает один учебный семестр, примерно 17 недель занятий (минус два, ибо первое вводное, а последнее — зачет). 15 занятий по 2 ак. часа + столько же практики. При интенсивном обучении такой курс можно уложить в неделю по 8 астрономических часов в день.
3) Цель курса — научить комбинировать программы из подпрограмм, обучить базовым структурам данных и базовым алгоритмам. Обязательно должны войти массивы и матрицы, рекурсивные структуры данных (списки и деревья), графы, немного динамического программирования.
Если ты в этот курс нагрузишь типизацию, управление ресурсами, ООП, многопоточность и синхронизацию, то только их будешь объяснять полгода.
После такого обучения ООП люди неправильно понимают ООП.
Как в анекдоте:
— доктор, когда я так делаю мне больно
— не делайте так
И типизацию не придется объяснять. Посмотри SICP там не объясняется типизация языка.
Ты смотришь через призму ООП. Если не затрагивать ООП и классы, то Объект === map отличная концепция. Очень простая и понятная.
Любой контейнер в типизированном языке это generic. Это вызывает кучу проблем с пониманием. Многие, кто переходят на C#\Java с PHP\JS довольно долго втыкают generic_и. Не думаю что на курсе начального программирования имеет смысл рвать этим мозг.
Хотя для математических специальностей, у которых кроме программирования еще курсы дискретной математики, матана и численных методов может быть более полезным начать обучение с ФЯ с выводом типов. Дискретная математика помогает осилить систему типов, а реализация численных методов поможет связать крус программирования с курсом математики. Но это только для студентов с сильным математическим уклоном.
Для инженерных специальностей лучше таки JS или Python.
Кстати в JS уже есть давно Array.prototype.forEach. Граблей много в любом яызке, по ним можно просто не ходить. Ведь во время начального обучения каждый шаг под присмотром преподавателя.
Вообще обучение программированию и программирование на конкретном языке — две большие разницы.
ЗЫ. После того как я прочитал JavaScript: Good Parts я вообще забыл про все грабли JS, просто перестал пользоваться потенциально опасными вещами. Ничего от этого не потерял.