Поигрался в пиктомир - он не провоцирует возникновения рефлекса оптимизации алгоритма! Наоборот, можно слепить неоптимальный алгоритм, который с большим оверхедом закрывает задачу и так сойдет! :) Ребенок с самого начала привыкает так думать! В этом плане программируемый советский лунный трактор был в разы интересней.
Ну, я не умею детей монадам учить. Этому легко учить того, кто или прошел курс алгоритмики и успел понять, как это скучно, или занимался много разной математикой.
Питон для меня выглядит настолько внезапно интерпретируемым, что идея изучать на нем алгоритмы кажется странной - можно, конечно, считать сложность выполнения понятием целиком абстрактно-математическим, но это как-то слишком свежо. А при попытке подойти практически время выполнения ведет себя как-то очень неясно, и, что хуже, мне вот не удается разъяснить происходящее даже гуглом и документацией ): Наверное, я не умею его готовить, но мне современный питон кажется просто "удобным" средством дать подергать за АПИ на библиотеки на С, как в случае с машинным обучением. Причем структуры данных там так интересно реализованы, что производительность по памяти и/или времени при попытке сделать шаг за туториал буквально-таки расстреливает
( ... )
Это у вас развёрнутое описание проблемы двух языков, из-за которой была выдумана Julia. Julia обладает сравнимой с Питоном выразительностью, или даже чуток получше (но не объект-ориентирована), а ещё в ней можно по-старинке заглянуть в код на уровне LLVM или даже машинном языке, если очень хочется, а скорость как у Сей и стык с Сями в обе стороны родной (аки твой Фортран). Как раз язык для любителей алгоритмов и их отладки. Ну, и ещё много всяких других штучек, типа "прямого переноса мат.нотации, прямо с греческими буквами".
Но вокруг Julia сейчас учебная пропасть, я её как раз живописал в посту. Пахать, пахать и пахать, чтобы эту пропасть как-то замостить.
Встряну и тут со своими старыми учителями.))) Эдсгер Дейкстра рулит для логики. "дисциплина программирования" Помню, я удивил программиста его охраняемыми командами. Который, в свою очередь удивился ошибкам компилятора... "знание бейсика это детская болезнь типа поноса"(с)
Принципы тут: https://arxiv.org/abs/1411.1607 Нужно также учесть, что Julia существенно ориентируется на параллельные алгоритмы, так что в ней всё чуток посложней уже, чем во времена Дейкстры.
Понятно. "Сложности" замели под ковер. Программистам инварианты не дают. Возможно, они внутри Julia и наружу сообщают об ошибках. Дело вкуса, но я предпочитаю понимать что я делаю и почему мой цикл не заканчивается. julia> for i = 1:2, j = 3:4 println((i, j)) end
Огромное количество онлайн курсов по перечисленным в топике областям знаний. Доступных как в режиме "просто посмотреть бесплатно лекции" (прямо с ютюба), так и с нескольких платформ в виде онлайн курса с проверкой заданий (иногда бесплатно) и (после оплаты) выдачей сертификатов. Да 90% доступно на английском, но он обязателен в информатике; и чем дольше оттягивать момент начала его использования, тем хуже.
Что касается разрыва с школьным-дошкольным, то у sicp была специальная серия "Маленький схемер" (The Little Schemer, The Seasoned Schemer (MIT Press) ) которая готовила к основному курсу.
Про все эти онлайн курсы известно, но количество, качество и проверка заданий в них -- вот лимитирующий фактор.
Про The Little Schemer, The Seasoned Schemer и The Little Prover -- это спасибо, я погляжу. Лиспы разные нужны, лиспы разные важны. Пройти один и тот же SICP на двух-трёх языках -- это может быть самое то, что нужно, в голове тогда точно останется общая часть, вынесенная из языков "за скобки". )))
Хотя в восьмом классе это может быть и немного рановато, но весь пойнт моего поста в том, что после каждого курса идёт резкий обрыв, и хочется иметь хоть какой-то пунктир "вперёд". SICP -- это, безусловно, "вперёд".
Comments 23
Reply
Reply
Ребенок с самого начала привыкает так думать!
В этом плане программируемый советский лунный трактор был в разы интересней.
Reply
Reply
Reply
Reply
Reply
Но вокруг Julia сейчас учебная пропасть, я её как раз живописал в посту. Пахать, пахать и пахать, чтобы эту пропасть как-то замостить.
Reply
Это, мягко говоря, не так. Julia тормознее даже Python порядка в 10 раз.
Reply
Вот тут в конце странички бенчмарк (старой, правда, версии. Сейчас 0.4.6 уже): http://julialang.org/
Reply
Эдсгер Дейкстра рулит для логики. "дисциплина программирования"
Помню, я удивил программиста его охраняемыми командами.
Который, в свою очередь удивился ошибкам компилятора...
"знание бейсика это детская болезнь типа поноса"(с)
Reply
Если нет, то этот язык отстой и шаг назад в спагетти программирование.)))
Reply
Нужно также учесть, что Julia существенно ориентируется на параллельные алгоритмы, так что в ней всё чуток посложней уже, чем во времена Дейкстры.
Reply
Программистам инварианты не дают.
Возможно, они внутри Julia и наружу сообщают об ошибках.
Дело вкуса, но я предпочитаю понимать что я делаю и почему мой цикл не заканчивается.
julia> for i = 1:2, j = 3:4
println((i, j))
end
Нееее. ШАГ НАЗАД. Ерунда, а не язык.
Reply
Что касается разрыва с школьным-дошкольным, то у sicp была специальная серия "Маленький схемер" (The Little Schemer, The Seasoned Schemer (MIT Press) ) которая готовила к основному курсу.
Reply
Про The Little Schemer, The Seasoned Schemer и The Little Prover -- это спасибо, я погляжу. Лиспы разные нужны, лиспы разные важны. Пройти один и тот же SICP на двух-трёх языках -- это может быть самое то, что нужно, в голове тогда точно останется общая часть, вынесенная из языков "за скобки". )))
Хотя в восьмом классе это может быть и немного рановато, но весь пойнт моего поста в том, что после каждого курса идёт резкий обрыв, и хочется иметь хоть какой-то пунктир "вперёд". SICP -- это, безусловно, "вперёд".
Reply
Leave a comment