Pull to refresh

Comments 35

Формошлепить — конечно, а системщики, ембед и прочая орут в голосину!
UFO just landed and posted this here

Возможно, вы были среди тех, кто создал Windows Vista.

UFO just landed and posted this here
Ну например БИНС под квадрокоптер замутить из датчиков. Ну и вообще сложные интересные задачи уровня senior? Может быть не «там этого нет», а «не видно, как применить, делаю на уровне 9-го класса»? Дискретка и мат. оптимизация в 9-м классе тоже не дается, напомню =)
Также часто удается удешевить производство вынесением некоторой логики на аналог (но это уже не программирование скорее, а «пилотажные фигуры высшей сложности»)
UFO just landed and posted this here
Быстрее, выше, сильнее!
habr.com/ru/post/27055

Стремление к качеству, возможность выбора кристалла послабее, например.
Любой запас, кроме резерва — ИМХО недоработка. Перфекционизм, мать его так!
В дровах даже пару процентов программной скорости можно представить как конкурентное преимущество
UFO just landed and posted this here
UFO just landed and posted this here

Я занимаюсь компилятором, и там алгоритмические задачи совсем не редкость, в частности на графы.

Как всегда журналист наврал, а переводчик наврал ещё больше.

Оригинал: Relating Natural Language Aptitude to Individual Diferences in Learning Programming Languages

Журналист: Do Your Math Abilities Make Learning Programming Easier? Not Much, Finds Study

Переводчик: Разбираюсь в математике = легко стану программистом?

Ну то есть в оригинале нет ничего про «стать программистом» или «обучению программированию», там про «изучение языков программирования».
«Связь способности к изучению языков с индивидуальными различиями в изучении языков программирования»

Если делать прямой перевод — название для статьи с 1000 просмотров. Хабр — не научный журнал. И в нем хочется придумать такое название, которое будет цеплять.
Безусловно, выучить язык программирования =/= стать программистом. Но и большого «вранья» в заголовке, субъективно, нет. Даже с точки зрения социологии, очень близкие факторы. Вопрос насколько близкие, чтобы судить об этом объективно. Но это нужно дальнейшие исследования проводить.

Да, с точки зрения заголовка я немного маркетолог.

Все переврали, ладно хоть ссылку на исследования оставили.

Кажется вот о чем идет речь.

"Consistent with our hypothesis, language aptitude, as assessed by the Modern Language Aptitude Test (MLAT)22, was a robust predictor of all of the Python learning outcomes."

Речь не идет не о каких языковых способностях. Никто не понимает, что это такое и тем более как это измерить.

Но взяли некий тест Modern Language Aptitude Test (MLAT) из 1950х годов, и сравнили результаты прохождения этого теста с результатами в обучении Python.

С тех пор методики преподавания языка довольно существенно поменялись, даже если тогда этот тест для чего-то работал (конечно же не для определения неких мифических языковых способностей, а скажем, что человек может успешно учиться по некой программе из 1950х), то в настоящее время очень сомневаюсь. Нашли новое применение старому тесту, который возможно работает для метода обучения, который они тестировали. Но сейчас же миллион методов - есть книги, статьи, youtube, онлайн курсы, офлайн курсы, университеты и т.п. Очень сомнительное исследование.

Ну то есть в оригинале нет ничего про «стать программистом» или «обучению программированию», там про «изучение языков программирования».

В оригинале нет ничего и про «разбираюсь в математике», там речь про numeracy — грубо говоря, способность считать в уме.

Математика становится жирным плюсом в специфических задачах:
- рекомендательные системы (математическая статистика, теорема Байеса и т.д.)
- разработка игр (интегралы, квартенионы)
- глубокое обучение, нейронные сети и т.д.

Если математика не нравится, то и всякая аналитика, статистика, бигдата и ML подавно. Сейчас чтобы быть нормальным программистом с математики нужна только таблица умножения и базовая дискретка, которая объясняется на пальцах.

Зачем таблица умножения?

А как же булевая алгебра? Она же ветвь математики.

"Базовая дискретка" в её полном виде описана в Дискретной математике и "на пальцах" её "можно объяснить" только при наличии паранормальных телепатических способностей.

Реально необходимо познакомиться с учебниками, например, "Основы дискретной математики" (В.А. Горбатов) или "Программирование для математиков" (Кушнеренко А.Г., Лебедев Г.В.). Информация из них станет понятна в течение нескольких лет обучения на механико - математическом или физико - техническом факультете профильного института.

Математика становится жирным плюсом в специфических задачах:
- рекомендательные системы (математическая статистика, теорема Байеса и т.д.)
- разработка игр (интегралы, квартенионы)

Просто там она - часть либо предметной области (модели), либо методологии решения.

А так ... Знание физики является жирным плюсом при разработке софта, моделирующего физические процессы. Знание иностранных языков является жирным плюсом при разработке систем машинного перевода. Знание бухучета и налогов является жирным плюсом при разработке бухгалтерских программ. Ну и т.д.

Выучить язык программирования еще не значит стать программистом, как выучить иностранный язык не значит стать писателем. Знать и свободно владеть языками программирования необходимо, но не достаточно. Нужна еще логика, навыки абстрактного мышления и другие качества, которые применимы и в точных науках, таких, как математика.

В конце каждого занятия их просили заполнить тест на то, что они только что изучали. Кроме того, наблюдая за каждым участником, исследователи могли рассчитать скорость обучения. Далее изучались правильность заполнения теста и то, как часто участники обращались за помощью.

А тест глянуть можно? Потому что если в тесте спрашивали какой оператор использовать для организации цикла, то это — одно. А если, как используя выученный оператор цикла перевернуть строку — то другое.

Похоже, под изучением программирования автор понимает запоминание написания операторов, зарезервированных слов ЯП, а также имëн функций необходимых библиотек.

Мне в детстве, когда в школе на уроках рассказали про основные операторы бэйсика, казалось что это очень малая часть от всех операторов. Что на самом деле их огромное количество, что для каждого действия, которые можно сделать на компьютере есть свой оператор, просто нам про них ещё не рассказали, и что их надо долго изучать именно как иностранный язык.

Работал со многими математиками. Да, у них особый подход. Который зачастую мешает освоению программирования. ИМХО математик воспринимает задачу метафизически, т.е. вне времени — если в какой конструкции найден треугольник, где квадрат гипотенузы равен сумме квадратов катетов, то этот треугольник мог быть найден годом раньше и через 100 лет будет найден: фактор времени не имеет значения. Ситуация, когда через микросекунду треугольник пропадет математика раздражает. Факт, что математики эффективно работают с динамическими системами, но динамику они представляют метафизически. Для такого представления нет деления на шаги: сначала вычислить а, потом в, а потом с. Так сложилось, и такой подход полезен. Но это другой подход.

С настоящими математиками проблема ещё сложнее. Для них важно не столько решить задачу — сколько доказать, что эта задача имеет решение. А нюансы реализации им уже совсем не интересны — потому в подавляющем большинстве научных работ, посвященных решению каких нибудь вычислительных задач, вы не найдёте ни кода, ни алгоритма.
UFO just landed and posted this here
UFO just landed and posted this here

В свое время выбрал математику, так как она а) сложнее, б) реже меняется, чем технологии программирования. Ну и ум в порядок приводит... )

Интересная тема. Я тоже часто задавался вопросом, почему, к примеру, в школе или универе, у меня были друзья "хавающие" математику на уроках или парах, но вот писать простые программы они как-то даже и не старались. Все списывали. То ли лень, то ли еще что, но я всегда считал, что если хорошие знания в школьной или университетской математике, то программирование должно легче даваться, а выходит, что нет.

Видимо, просто математика легко давалась и была интересна, а программирование было какого-то из двух факторов лишено. Я в свою очередь замечал, что если деятельность и дается легко, и интересна, люди в нее будут прям упарываться. А если она требует чуть больших усилий(буквально лишний час над задачей посидеть), но неинтересна - то ее сразу будут стараться избегать в пользу первой.

Тест на лексику как проверка способности программировать - это конечно, пять баллов. Вот видите - первые авторы в оригинале исследования психологи, математику не учили, и вон что выдали.

Про математику: Константин Кноп, 02.10.2021 "Ровно три года назад Анатолий Альбертович Шперх вытащил из моего комментария в отдельный пост мой ответ на вопрос "Зачем мы учим всех математике". С тех пор я уже не раз повторял эти аргументы в живых дискуссиях, отвечая на контраргументы противников, - поэтому публикую новую версию текста." https://www.facebook.com/kostyaknop/posts/10222806976816538

математика вообще — очень широкое понятие.
На нашем потоке (МАИ, прикладная математика, 98-2003) довольно хорошо среди середняков прослеживалась такая тенденция — середняки поделились между "дискретыми" (программирование, линейная алгебра, дискретная математика) и "непрерывными" — матан, функциональный анализ, дифуры.


Ну и да, учить операторы языка и учить иностранные языки это близкие задачи. На программирование остаётся "финальный проект: «Камень, ножницы, бумага»." то есть нечто уровня первого года обучения информатике в школе. Если не первой четверти.

Для подтверждения или опровержения результатов тестов достаточно взять статистику сколько выпускников математических и лингвистических направлений работают программистами.

Бенефит от математике не в том что ты можешь выучить новый язык программирования, а в том что можно формальными словами описать некий алгоритм. Например алгоритм решения задач симплекс методом очень близок к написанию программы. Т.е. человеку с математическим складом ума, проще сформировать последовательность действий чем лингвисту. Например если писать должностную инструкцию то подход будет разным у одних четкие пункты у других красивые формулировки с использованием синонимов.

Если есть лингвисты успешно ставшие программистами опишите свое виденье, мне интересно будет прочитать.

Sign up to leave a comment.

Articles