Обсуждение
Читать и комментировать в ЖЖ ↗
при изучении программистских хорошо работает обратная связь и отсутствие эмоций у компа, он ругается на неправильное и хочешь не хочешь, а надо делать так что бы он понял однозначно, на БК-0010-01 не было лучшего учителя информатики имхо чем "ошибка 2"
Комментарий
С естественными языками есть же проверенный метод: школьным способом учатся два мертвых языка, и человек способен освоить любой индоевропейский язык в нужном объеме и темпе самостоятельно.
Аудиторная работа к домашней 3:1 в языках это нонсенс, должно быть примерно наоборот (если не считать аудиторной работой лингафонную). В любом случае, 800 часов в год это запредельная нагрузка, если это не специально языковое обучение.
Для структурных "языков" мне кажутся удачными радиосхемотехника и чертежи в разных проекциях.
От "промышленных" языков программирования я бы предостерег непрограммистов: от них и программисты-то частенько тупеют.
Ты в изначальном списке потерял нотную грамоту, она классная.
Комментарий
Понравилась плавная подводка к сисмолану ;)
Комментарий
А где нотная грамотность?
Комментарий
Это вы про умницу Ральфа Ламмеля и о его megadmodelling и 101companies один-в-один. http://softlang.uni-koblenz.de/101companies/inauguration/paper.pdf && http://101companies.org/ . У них есть еще пара паперов, с б0льшим количеством деталей.
Комментарий
Её Отставнов уже заметил в комменте выше.
Комментарий
в ЯП надо учить не языки а концепции, навыки оперирования с ними
ну типа там переменные циклы ветвление объекты передачи сообщений наследования и проч хрени
тогда пофиг на каком языке писать - просто синтаксис уточнил в гугле да и все дела
есессно у ОО и у функ языков разные концепции чо уж там
но вот у логиских и функ вполне близкие хотя конечно тоже есть разница
но по моему дык если сумел освоить там С++ какой-нить то при желании функ язык или там пролог не проблема
а вот глубины хаскел или coq - проблема, но там просто логику нужно учить уже
хотя интуиционисткая логика на самом деле привязывается к функ языкам
так что вобщем-то на том же Coq писать не так уж и сложно, если понимаешь что нужно просто написать функцию вычисляющую доказательство из имеющихся предпосылок
на Хаскеле труднее прогить ИМХО, я имею в виду на идеоматическом хаскеле, а не просто четта там сваять
Комментарий
Здесь они, например, использовали 101companies для вводного chrestomathy-based курса по ФП: http://softlang.uni-koblenz.de/101haskell/paper.pdf
Комментарий
И да и нет. Конечно, да в том смысле, что я тут говорю о неизбежности жизни в мире ‘polyglot developers and
technological space travelers’. Но отличается:
-- я ничего не говорю о "википедии для схемных языков" или языков программирования (а помянутое вами комьюнити ровно это делают для языков программирования, архитектурных паттернов и т.д. для софта. С другой стороны, SysMoLan вполне стыкуется с linkedData, хотя и не на основе semantic web стека, а 101companies -- на основе именно его).
-- меня больше волнуют сейчас оценки времени для загрузки нужных знаний в голову, и как делать это обучение. Так, если учить язык до уровня C1-2, то он дальше угасает незначительно. А если только до B1-2, то требуется до получаса в день, чтобы его долго держать на этом уровне и он не ухудшался. Про схемные языки и языки программирования про аналогичные закономерности неизвестно. Опять же, помощь в освоении языков друг от друга получается только от языков, выученных до уровня advanced. Как тогда можно строить программу обучения?
-- я говорю о том, что естественные языки, языки программирования и схемные языки нужно рассматривать параллельно, и что там может оказаться больше одинакового, чем обычно представляется со стороны.
Комментарий
Это и лингвисты замечают: некоторые языки помогают учить соседние (ибо какие-то более глубинные структуры у них одинаковые). А некоторые -- разные. Си и хаскел как английский и японский, китайский так вообще с его тонами -- так что сoq может не пойти даже с совершенным владением хаскелем.
Опять же, "прогить" или "сваять" -- это разные уровни владения языком. Сказать hello world на любом языке можно за сутки. Трудности дальше, часто на много лет.
Плюс есть ещё схемные языки, в этом одна из фишек моего поста. Ибо человечьи и программные языки кто только уже не сравнивал. А тут наросло племя младое, незнакомое.
Комментарий
Опять же, "прогить" или "сваять" -- это разные уровни владения языком. Сказать hello world на любом языке можно за сутки. Трудности дальше, часто на много лет.
согласен
просто глубины языка не так уж и нужны, по крайней мере, для программерской работы
ибо большинство пользует простые базовые вещи
ну и овладевание глубинами конечно полезно но может быть и вредно - могут быть конфликты с коллегами, типа слишком (за)умный код ваяешь
да и с собой - призадумаешься как поэлегантнее проблему решить, вместо того чтобы просто тупо сделать
все же программерство состоит в оперировании концепциями типа там циклов и проч хрени
а язык - просто запись, более или менее удобная/компактная
ну Хаскел - да, это скорее поэзия или создание элегантных математических теорий, типа вот нужно выдать прекрасное и все тут. иначе это не хаскел, а какая-то хрень :)
а Coq - прошибание головой стенок :) просто тупо бьешься головой об стенку, пока она не сломается
интересный язык Скала - на нем можно писать на любом уровне понимания
ну типа знаешь жабу - пишешь как на жабе
знаешь функ подход - юзаешь функ подход
разумеешь всякие тонкости систем типов - юзаешь их
сейчас еще макросы появились - тоже отдельный слой навыков
Комментарий
хотя я сам есессно люблю ознакомиться с очередными языковыми новациями
но тут скорее просто любознательность ну и развитие моска нежели практическая полезность
Комментарий
А про схемные языки никто таких анализов не пишет. Они просто юзаются узкими группами людей, и только. Никто ими не заморачивается, универсальных (как описываемая вами скала) не появляется -- хотя попыток уже много было, типа того же UML/SysML/MOF.
Комментарий
У полиглотов в естественных языках тоже так же. Даже третий (после родного и английского) язык -- уже задаёшься вопросом, нужен ли. Но у программистов обычно несколько языков знать нужно, и у инженеров разных схемных языков тоже некоторое количество.
Комментарий
Да, не заметил :)
Комментарий
[грустно] Сольфеджио и нотную грамоту.
Комментарий
В свое время в вузе на занятиях по высшей математике "проходили" дифференциальные уравнения. Кто изучал, знает какие там выкладки – одно уравнение решали два часа (пару). Задали преподавателю вопрос: зачем нам это надо? Его ответ меня впечатлил, и я его запомнил на всю жизнь (а прошло уже более сорока лет). Ответ был таким: вы инженеры, и вы обязаны уметь делать выкладки. Математик может не уметь делать выкладки, он что-нибудь придумает, чтобы их обойти. А инженеры обязаны уметь делать выкладки. "Сделать выкладку" - это "просто тупо сделать". "Обойти выкладку" – это "поэлегантнее проблему решить".ну и овладевание глубинами конечно полезно но может быть и вредно <…> да и с собой - призадумаешься как поэлегантнее проблему решить, вместо того чтобы просто тупо сделать
Комментарий
дауж
я видимо токо сейчас начал потихоньку осваивать искусство "тупо сделать"
я конечно регулярно этим занимаюсь как инженер, но мне сперва надо походить, подумать побиться головой об стенку, и только потом сесть и тупо сделать :)
Комментарий
Похоже, что последовательное изучение до уровня advanced помогает каждый следующий язык учить быстрее (материал по предыдущей ссылке).
Давно известно, что языки надо учить параллельно. Особенно, первые. Причём, разных парадигм или хотя бы разных классов. Иначе это приводит к зашоренности и тупизне.
Изучение любого логичного языка программирования до рабочего состояния занимает неделю-две. Если язык с той же парадигмой уже известен. Библиотеки, как правило, учить бесполезно. Нужно знать где что лежит.
Люди, вынимающие всё из памяти, набивают быстрее, но, как правило, делают больше ошибок и реализуют неэффективные пути.
Парадигма, типа перехода с объектно-ориентированного на функциональный язык, занимает много времени и может вообще не удастся. Даже, если человек выучит "синтаксис и грамматику", не всегда люди меняют мозги.
SysML и прочие рисовалки выучиваются не как язык, а как способы производства однотипных решений. (Всё равно они не логичны, а зачастую просто вредны, особенно requirements Diagrams в SysML).
Комментарий
вот-вот
согласен, единственное, что отметил бы, что переход с ОО на функ зависит от того как учить
т.е. принципиальной проблемы тут вообще не вижу
скажем если человек знает Жабу и умеет на ней прогить, то объяснить ему функ концепции просто:
про иммутабельность он и так должен быть в курсе (ну это популярная тема в свете многопоточности)
так же он знает что такое листенер/колбэк
а листенер (с одним методом) - это и есть аналог first-class функции в жабе
ну плюс наверняка девелопер знает что такое Guava или слышал про лямбды в Java 8
т.е. базу любой приличный прогер на жабе и так должен знать
тем более если он в курсах что такое питон/руби/груви
ну а дальше просто есть стандартные упражнения по функционалке, там всякие мапы/фолды
есть курз по Скале от твиттера, к примеру
т.е. просто нужно чтобы за обучаемыми присматривал чел, грамотный в плане функционалки (и чутка педагогики)
Эриксон дык писал где-то что они переучивали на Эрланг без проблем