ailev.ru

Обсуждение

В архиве: 23 комментария.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 28 июня 2016

Комментарий

Хорошо зафиксированная структура данных в алгоритмах не нуждается.

Анатолий Левенчук · 28 июня 2016

Комментарий

Вот! А этому не учат вообще. Весь курс школьного программирования крутится вокруг управляющих конструкций сначала и пяти вариантов сортировок в конце.

Ответ на комментарий

Имя не сохранено · 28 июня 2016

Комментарий

Ну, я не умею детей монадам учить. Этому легко учить того, кто или прошел курс алгоритмики и успел понять, как это скучно, или занимался много разной математикой.

Ответ на комментарий

Имя не сохранено · 28 июня 2016

Комментарий

Питон для меня выглядит настолько внезапно интерпретируемым, что идея изучать на нем алгоритмы кажется странной - можно, конечно, считать сложность выполнения понятием целиком абстрактно-математическим, но это как-то слишком свежо. А при попытке подойти практически время выполнения ведет себя как-то очень неясно, и, что хуже, мне вот не удается разъяснить происходящее даже гуглом и документацией ): Наверное, я не умею его готовить, но мне современный питон кажется просто "удобным" средством дать подергать за АПИ на библиотеки на С, как в случае с машинным обучением. Причем структуры данных там так интересно реализованы, что производительность по памяти и/или времени при попытке сделать шаг за туториал буквально-таки расстреливает (: Это веселье все сейчас в таком состоянии, что взрослые-то с трудом разбираются, куда уж восьмиклассников учить. И да, между сортировкой пузырьком и ответом на вопрос, какого фига твой маленький скрипт для обработки небольшой кучки данных сожрал всю память, закусил свопом, окуклился и никуда не движется уже пятый час - пропасть, заполненная в основном stackoverflow (:

Анатолий Левенчук · 28 июня 2016

Комментарий

Это у вас развёрнутое описание проблемы двух языков, из-за которой была выдумана Julia. Julia обладает сравнимой с Питоном выразительностью, или даже чуток получше (но не объект-ориентирована), а ещё в ней можно по-старинке заглянуть в код на уровне LLVM или даже машинном языке, если очень хочется, а скорость как у Сей и стык с Сями в обе стороны родной (аки твой Фортран). Как раз язык для любителей алгоритмов и их отладки. Ну, и ещё много всяких других штучек, типа "прямого переноса мат.нотации, прямо с греческими буквами". Но вокруг Julia сейчас учебная пропасть, я её как раз живописал в посту. Пахать, пахать и пахать, чтобы эту пропасть как-то замостить.

Ответ на комментарий

Анатолий Левенчук · 28 июня 2016

Комментарий

Я думаю, тут какое-то недоразумение. Например, в версии 0.3 при первом проходе по библиотеке код компилировался, это иногда влияло на тесты. Вот тут в конце странички бенчмарк (старой, правда, версии. Сейчас 0.4.6 уже): http://julialang.org/

Ответ на комментарий

Имя не сохранено · 29 июня 2016

Комментарий

Встряну и тут со своими старыми учителями.))) Эдсгер Дейкстра рулит для логики. "дисциплина программирования" Помню, я удивил программиста его охраняемыми командами. Который, в свою очередь удивился ошибкам компилятора... "знание бейсика это детская болезнь типа поноса"(с)

Имя не сохранено · 29 июня 2016

Комментарий

Огромное количество онлайн курсов по перечисленным в топике областям знаний. Доступных как в режиме "просто посмотреть бесплатно лекции" (прямо с ютюба), так и с нескольких платформ в виде онлайн курса с проверкой заданий (иногда бесплатно) и (после оплаты) выдачей сертификатов. Да 90% доступно на английском, но он обязателен в информатике; и чем дольше оттягивать момент начала его использования, тем хуже. Что касается разрыва с школьным-дошкольным, то у sicp была специальная серия "Маленький схемер" (The Little Schemer, The Seasoned Schemer (MIT Press) ) которая готовила к основному курсу.

Анатолий Левенчук · 29 июня 2016

Комментарий

Про все эти онлайн курсы известно, но количество, качество и проверка заданий в них -- вот лимитирующий фактор. Про The Little Schemer, The Seasoned Schemer и The Little Prover -- это спасибо, я погляжу. Лиспы разные нужны, лиспы разные важны. Пройти один и тот же SICP на двух-трёх языках -- это может быть самое то, что нужно, в голове тогда точно останется общая часть, вынесенная из языков "за скобки". ))) Хотя в восьмом классе это может быть и немного рановато, но весь пойнт моего поста в том, что после каждого курса идёт резкий обрыв, и хочется иметь хоть какой-то пунктир "вперёд". SICP -- это, безусловно, "вперёд".

Ответ на комментарий

Имя не сохранено · 29 июня 2016

Комментарий

Рискну спросить - в Джулии есть работа с инвариантами цикла? Если нет, то этот язык отстой и шаг назад в спагетти программирование.)))

Ответ на комментарий

Имя не сохранено · 29 июня 2016

Комментарий

Понятно. "Сложности" замели под ковер. Программистам инварианты не дают. Возможно, они внутри Julia и наружу сообщают об ошибках. Дело вкуса, но я предпочитаю понимать что я делаю и почему мой цикл не заканчивается. julia> for i = 1:2, j = 3:4 println((i, j)) end Нееее. ШАГ НАЗАД. Ерунда, а не язык.

Ответ на комментарий

Имя не сохранено · 29 июня 2016

Комментарий

Поигрался в пиктомир - он не провоцирует возникновения рефлекса оптимизации алгоритма! Наоборот, можно слепить неоптимальный алгоритм, который с большим оверхедом закрывает задачу и так сойдет! :) Ребенок с самого начала привыкает так думать! В этом плане программируемый советский лунный трактор был в разы интересней.

Ответ на комментарий

Имя не сохранено · 29 июня 2016

Комментарий

>> по-возможности, чтобы этот тренинг проходил без дорогого времени учители и родителя. если исходить из парадигмы "цель жизни - воспитать детей так, чтобы они сумели воспитать своих детей", то лучше отдавать время детям - за компьютером, спортом и т.п. мои мне уже в скандалах заявляли: "Я как папу тебя не воспринимаю! Ты или на работе, или в компьютере!" О своем постижении ИТ: в 15 познакомился с книгой Гутер, Полунов "Математические машины", где прочитал все от принципа действия до структурных языков программирования В 21 нормально сдал программирование на FORTRAN, улучшал книжные программы для микрокалькулятора В 24 взяли в КИВЦ программистом на персоналки Наиболее понравившиеся пакеты: Еврика от Борланд МикроПРИЗ в комплекте ПК ЕС ЭВМ 1840 Пошаговые отладчики ассемблерного кода (DEBUG) и дизассемблеры (Sourcer) MathLab Сыну использовал CUDA, обучающую программу Кукарача (правда, в задания его не погружал), кое-что писал сам Кукарача: http://robotlandia.ru/abc4/executor/coc/help/index.htm

Имя не сохранено · 11 июля 2016

Комментарий

Насколько я понимаю предыдущего комментатора, претензия у него не к скорости, а к не прогнозируемости потребления ресурсов (вычислительных и по памяти). Я не знаю, так это или нет в Julia, но в традиционных языках, на котором учат программированию, зависимость скорости выполнения от алгоритма и структур данных явная и прогнозируемая. Есть проблема, что высокоуровневые языки и быстрое железо разлучают писать оптимальные программы. Даже не так, не просто разучают, а вообще этот вопрос (оптимальности) выпадает из контекста, о нем просто не задумываются.

Ответ на комментарий

Анатолий Левенчук · 12 июля 2016

Комментарий

Вот как раз оптимизация кода -- это главный вопрос на Julia. В языке тщательно документировано, как следует писать код, чтобы он был оптимальный по памяти-скорости, очень много текстов по разъяснению сложных моментов -- Julia ведь предназначена для вычислительных алгоритмов прежде всего, т.е. проблемы скорости, памяти и параллельности считаются главными. Как раз вопросы computer science (мощность языка, расширяемость языка) отходят на второй план -- но после того, как "люди фортрана и матлаба" очаровываются Julia, они находят, что эти вопросы "языка программирования общего назначения" тоже удивительно тщательно проработаны.

Ответ на комментарий