Pull to refresh

Comments 251

«Первое место заняла российская команда из Санкт-Петербургского Национального Исследовательского Университета Информационных Технологий, решив 10 задач в кратчайшие сроки. Это четвертая победа российской школы с 2012 года.»

Приятная статистика!
Вообще-то, если считать с самого начала, то ИТМО уже 7 раз победил в этом чемпионате.
Хотелось бы проследить судьбу победителей в этих чемпионатах. Не получается ли так, что они потом выучиваются и уезжают в те же США работать? Хотя… даже если и так — молодцы.

С другой стороны, думаю, что если в статье слово Америка заменить на Россия, а имя Иверсон на Иван, то получится вполне статья об образовании в России: "У нас очень слабые стимулы и они не подталкивают преподавателей, и школы к оптимизации обучения. Все идет по накатанной: преподаватели учат по старинке, а ученики точно так же приобретают знания и навыки"
Большинство заканчивают ВУЗ у нас, работают несколько лет в условном Яндексе, а потом уезжают.
Ну, по крайней мере, это из тех, с кем я общался, YMMV.
UFO just landed and posted this here
А что в этом плохого? программисту математика нужна. кодеру может и нет.

Можно быть программистом и ни разу не столкнуться с высшей математикой

Пока не потребуется доказать корректность своей программы.
Слабая математическая подготовка современных программистов является основным источником ненадежности программ и высоких затрат на тестирование и отладку.
Все зависит от области.
В веб-деве за все годы я могу по пальцам пересчитать разы, когда мне реально нужна была математика (в моем понимании).
Зависил от знаний. Если математику не достаточно глубоко знать, она и не понадибится. Если ее хорошо знать, то многие области будут полезны, от оснований математики с теориями множеств, категорий и типов, через дискретную с графами, сетями Петри и булевыми функциями, до геометрии и топологии, даже в веб-деве.
Проблема современной экономики в том, что тратить время на учебу не выгодно, так как польза, как бы она не была велика, в будующем и ее трудно оценить, а деньги нужны сейчас. Особенно это чувствуется в ИТ.
Может, поэтому странички и веб приложения так много едят ресурсов?

Корректность программы как правило доказывает компилятор. Для этого достаточно знать такие простые вещи, как контракты и статическая типизация.

Интересные у Вас представления о корректности программы.

Программа состоит из функций. Если каждая функция не нарушает своего контракта, то программа работает корректно. Это очевидно.

Осталось мелочь — доказать, что контракты не содержат ошибок.

Ну так, контракты это часть языка, а разработчики языка априори более квалифицированные. Есть определенные касты, и каста "разработчики компиляторов", "разработчики ЯП" и тд как раз владеют всем этим инструментарием. Я тоже люблю во всем этом покопаться, но я — любитель, и они — профессионалы. И это их работа. А работа среднестатистического программиста не включает в себя формальную верификацию. Не, может я просто такой быдлокодер, и не в курсе, но вот у меня знакомые работают в яндексе, рамблере, майкрософте, сам я конечно не так крут, но тоже в нескольких разных местах не самых плохих поработал, и нигде я не встречал такую академичность в реальных проектах. На практике даже обновление пакетов приходится часто согласовывать, потому что нужно выделять ресурсы на исправления ошибок из-за ссылок на старые пакеты, ломающие изменения, и т.п. Код пишется для бизнеса (если мы не говорим про опен-сорс и пет-проекты на гитхабе), а бизнесу важно соотношение затрат на полученный результат. У проверки теоретической корректности программы (мы ведь говорим про реальные программные комплексы, репозитории в гигабайты и т.п.?) с этим проблемы. Вот во всяких компиляторах, системах типов и т.п., где нам важно качество любой ценой — хорошая область применения. Но не надо делать вид, что вокруг одни гвозди, когда в руках молоток, это иногда бывают и винты :)

Неочевидно. А как доказать отсутствие race condition, например? Может, функция и выполняет контракт, но ОС вызывает её в опасном контексте. Да и контракты описывают только самую простую логику — допустимость, но не корректность. Проблема же обычно в логике всё-таки. Да, эта функция возвращает неотрицательное число, но это не величина подоходного налога, которую я хотел.

Это смотря какой компилятор. Система типов Haskell далеко не все может доказать, а даже она вызывает сложности в понимании у программистов без математической подготовки. А что бы воспользоваться более сильной типазацией, как в Idris или Coq, математику надо знать очень хорошо.
Да и формутировка контрактов, что бы ее потом скормить пруверу, тоже требует хорошего знания формальной логики.

Львиная доля контрактов это "здесь не null", "a > b", "непустая строка" и все в таком духе. Для этого не надо каких-то особых пассов. Верифицировать же формально программу для всевозможных входных параметров обычно же остается уделом преподавателей и ученых в университетах, в прикладном бизнесе это время, а значит — деньги. Лучше мы наймем тестировщиков, чем будем аналитически доказывать корректность.


В общем, подытоживая: доказывать формальность более строгую, чем "a > b" не нужно для практически всех видов и типов программ, встречаемых в естественной среде обитания.

Не столько «не нужно», сколько «не целесообразно», по тому что дорого. А дорого, потому что разработчики изначально не могли учитывать возмодность формальной верификации из-за недостаочной математической подготовки.

Это аргумент из разряда "Глупый разработчик криво скопипастил в последней строке". Однако, статистика тех же PVS Studio показывает, что вероятность такой ошибки не зависит от квалификации. Точно так же дорого не потому, что разработчики глупые и не учат математику, а потому что если есть способ с достаточным качеством иметь намного более дешевое решение, зачем нужно дорогое? Может вы и нейросетями не пользуетесь? Вероятностными алгоритами? Они ведь тоже дают решение с определенной точностью, хотя можно детерминированно всё посчитать.


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

А статистика PVS Studio не показывает зависимость вероятности ошибки от языка программирования — Haskell или питон?
И как проверяется квалификация — есть данные об академических достидениях разработчиков проверенных проектов?

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

По моим наблюдениям вышедший из академической среды код очень хорошего качества и часто продолжает развиваться уже индустрией.
К тому же, неподдерживаемые кем? То, что средний вебпрограммист не может разобраться в компиляторе или ядре ОС мало о чем говорит.
Корректность программы как правило доказывает компилятор

В вашем мире невозможен необработанный NullReferenceException? Так себе правило.

В Rust — невозможен, если мы только явно не делаем unwrap(), но это ошибка встречается не чаще, чем в шарпе — InvalidCast. То есть почти всегда говорит о плохой квалификации разработчика, в отличие от NRE, который словить проще простого. В шарпе — in progress, так что в моем мире скоро тоже будет все отлично.

В Rust — невозможен

Так, то есть нужен особенный компилятор, C# не годится. Хорошо. Логические ошибки Rust-компилятор тоже валидирует?

То есть почти всегда говорит о плохой квалификации разработчика

Вам это не кажется демагогией? Сначала вы говорите, что корректность программы проверяет компилятор, теперь выясняется, что все зависит лишь от квалификации программиста. Собственно, речь изначально об этом и шла, что программист должен обладать квалификацией, чтобы эту самую корректность доказать.
Логические ошибки Rust-компилятор тоже валидирует?

Логическая ошибка может случиться только в случае нарушение контракта. Проблема может быть с выражением этого контракта, но как правило они достаточно простые, чтобы мы могли доверить это любому разработчику.


Так что демагогия в подмене понятия "корректность". Изначально речь шла о доказательном программировании, как было сказано ниже, а теперь мы пришли к "программист должен делать рабочую программу". С этим никто не спорил.

Логическая ошибка возможна, например, когда строка-идентификатор пользователя используется для поиска по идентификатору изделия.
Что бы такого не получалось, эти строки надо заворачивать в отдельные типы. Но это почти ни кто не делает, потому что для проектирования системы типов требуется математическая подготовка.

Во-первых так часто делают. Во-вторых сейчас появляются системы типов а-ля "целое четное число, больше трёх".

UFO just landed and posted this here
Компилируется, не значит работает.

Чем дальше, чем больше мы к этому приходим. Компиляция программы в С не говорит ни о чем. Компиляция программы в Rust/Haskell говорит много о чем. Можно почитать отзывы людей, которые с того же С перешли на эти языки. "Я удивлен, если программа скомпилировалась, то она скорее всего работает правильно" ©.


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

Теперь вопрос — почему мало кто пишет на Rust/Haskell/Idris?

Хаскель достаточно алиеноподобный сам по себе, не считая того, что после императивщины функциональный подход многими с трудом воспринимается. А Rust недавно появился, но по динамике использования у него всё впереди. Это одно объяснение.


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


Третье — им просто не повезло.


Выбирайте любое из этих или придумайте своё. Без должной статистики это все равновероятные варианты.

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

Ну, на практике все равно приходится тратить время на описывание типов. В каком-нибудь JS можно просто вернуть объект и все. В строготипизированном нужно сначала описать, что за объект. В идеальном мире это делает компилятор. На практике, не особо пока что. Но я сам предпочитаю статическую типизацию и автокомплит :)

Доказательное программирование имеет смысл в очень узком диапазоне задач.
В остальных случаях — это гарантированный способ вылететь в трубу. Потому что ненадёжная программа работает лучше, чем ненаписанная.
Пока не потребуется доказать корректность своей программы.
Вы про формальную верификацию? Ни разу не слышал, что она является частью нашей индустрии, всегда считал её такой чисто теоретической вещью, сродни машине Тьюринга. Или я не прав?
Хотя бы про спецификацию и разработку системы типов.
К сожалению, не является. Из-за недостаточной квалификации разработчиков, а не из-за отсутствия потребности.

Не из за слабой квалификации, а из-за отсутствия экономической необходимости. Верифицирует код, ошибка в котором стоит десятки и сотни миллионов долларов.

Основные источники ненадежности


  • бюджет и сроки — никто не платит и не дает времени на тестирование
  • никто не платит за код ревью
  • отсутствие навыка, внимательности и ответственности

А не слабая матподготовка

UFO just landed and posted this here

Можно конечно писать все самому, но я лично считаю, что не использовать существующие библиотеки/фреймворки, подходящие под свои задачи, это не рационально. А за нерациональное решение задачи мне даже в школе на уроках математики оценку снижали.

Интересно, как без хотя бы поверхностного изучения разных областей математики можно хотя бы оценить сложность того или иного алгоритма?
UFO just landed and posted this here
«O-большое и о-малое», асимптотики, комбинаторика, тервер, теория вычислимости.
Так что я ставлю на первое.
На самом деле, для оценки сложности большинства алгоритмов достаточно весьма и весьма поверхностных знаний всех этих тем.
Грубо говоря, только классический подход к теории вероятности, понимание, что «О-большое» — это «когда отбрасываем множитель и младшие члены» и тд. Этому и школьника научить можно.

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

Угу, особенно деревья и хэш-таблицы.

Большинства, но не всех. Скажем, нередко используется такая штука, как система непересекающихся множеств — у нее сложность добавления нового элемента и проверки на принадлежность задается обратной функцией Аккермана.

Тут простые эвристики же. Цикл от длины входного аргумента — умножай на n. Рекурсия — (количество рекурсивных вызовов)^n, и так далее. Ну и запомнить характеристики стандартных коллекция вроде списка, массива и хэш-таблицы. Никакой сложной математики.

Странное утверждение.

Это все-равно, что говорить — «для того, чтобы драться на улице не нужно знать боевых искусств. Я вот сколько дерусь — ни разу еще не сталкнулся с необходимостью в этом.»

Ну да. Не столкнулись. Но никакого вывода из этого не следует. (В том числе и того, что чтобы драться — знать боевые исскуства надо:) )

Высшая математика — это не совсем, точнее, не только, прикладной интструмент.
Это, в определенном смысле, — способ мышления. Не связанный напрямую только, скажем, с программированием. Математика сама по себе — это лишь способ формального и адекватного описания объективной реальности. Не больше и не меньше. В итоге, это сказывается на всем, с чем потом соприкасается человек — на всех сферах его деятельности начиная от программирования и финансов и заканчивая покупкой картошки.

Математика, в частности, — это не про «посчитать» (про это «арифметика»). Математика — это образ мыслей, и в конечном итоге — образ жизни, независимо от сферы, где человек реализует себя.

В более общем смысле, математика — это просто часть того, что называют — «научным мышлением».
И практическая ценность сего в том, что с наличием и без оного — люди достигают совершенно различных успехов и решают задачи совершенно различного масштаба.

Для кого то успех в прграммировании — если при наведениии на надпись уже цвет фона меняется, а кому-то глобальные системы, обеспечивающие работу миллионами людей выглядят недостаточно эффективными.

Резюмируя:
В конце концов, можно быть «программистом» и не разу не столкнуться даже с программированием :)

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


Есть разные предметные области, разные задачи и утверждать, что настоящие программисты только там, где вышмат — это слишком высокомерно

К слову, об этом и не было и речи. Более того именно это и утверждалось — связи такой нет.

Я, признаться, хотел донести другую мысль. Основной тезис лишь в том, что если эта связь есть — то просто возможен другой уровень решаемых прикладных задач. И математика здесь сама по себе не стоит особняком, т.к. это касается и финансов, физики, химии, биологии… да вообще любой точной науки.

И кстати, говоря, программисты, которые решают именно научные задачи, с точки зрения «профессионального кодера»(ну там паттерны, языки, TDD, OOП и всё это), по стилю, могут часто выглядеть ну форменными «джуниорами».

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

С тем, что напрямую, столкнуться с наукой, если ты не ученый, в обычной жизни шансы действительно не вилики, сложно спорить. Но то, что принципы научного мировоззрения будут уже неизбежно(и даже непонятно хорошо это или плохо) сопровождать всю жизнь — от этого трудно уже куда-то деться.
Это все-равно, что говорить — «для того, чтобы драться на улице не нужно знать боевых искусств.»


Аналогии такие аналогии…
Строго говоря для УЧАСТИЯ в уличной драке знаний вообще никаких не надо.
Более того, для того, чтобы побеждать в уличных драках, знать БИ тоже необязательно.

Много буков
А вот что нужно знать (это может рассказать любой гопник с приличным опытом драк) и чему можно научится на собственном опыте:

— Способность быстро бегать незаменима во многих «уличных» ситуациях.
— Разница в весе даже в 10кг — это большое преимущество, если противники примерно одинакового уровня подготовки.
— Дубинка или нож в руках человека, который не первый день инструмент в руки взял, это огромное преимущество. Если первый — то просто большое.
— Красивые приемы с отбиранием ножа/пистолета могут сработать только в случае, если оппонент не умеет с ними обращаться.
— Два четырнадцатилетних пацана могут «победить» взрослого мастера самбо(или чего там, ссылку на статью не сохранил), особенно если второй подойдет сзади и ёударит по голове арматурой.
— Больно/страшно получать по: голове, глазам, яйцам, под коленную чашечку, в солнечное сплетение.
… и т.д.

Собственно, многие БИ (исключая крав-мага и прочие, «взятые на вооружение» и нацеленные именно на быструю нейтрализацию) не дадут никаких преимуществ, кроме ОФП и поставленного удара, поскольку практически все они устанавливают правила, которые не действуют на улице. Более того многие БИ запрещают наиболее эффективные приемы вроде ударов локтями, ударов в паховую область и тычки пальцами в глаза.


P.S.: По поводу матана особых возражений нет.
поскольку практически все они устанавливают правила, которые не действуют на улице.


Напомнило цитату из Пратчетта

«Маркизу Пышнохвосту в юности не раз приходилось участвовать в драках, причиной многих из которых было прежде всего то, что его звали маркизом Пышнохвостом. Поэтому он разработал ряд правил, которые назвал «Икусством Благородного Кулачного Боя» и которые в основном состояли из списка мест, по которым его, маркиза, запрещалось бить. На многих людей этот труд произвел большое впечатление. Изучив правила, они выступали, благородно выпятив грудь и сжав кулаки в состоянии мужественной агрессивности, против людей, которые не читали книгу маркиза, зато прекрасно знали, как вырубить человека, ударив его по голове, допустим, стулом. В результате чего последними словами ну очень многих людей стали: «Чтоб этот чертов Пышнохвост сдох, скотина…»»
P.S.: По поводу матана особых возражений нет.

А если найду?

Ну, если возражения таки найдутся, то это скорее к автору предыдущего поста, а не ко мне.

Оффтоп
«Чё, мент или карманник по карманам шарить?»

Если оппонент таки отвечает на вопрос одним из предложенных вариантов, то на основании того, что «карманники не спрашивают разрешения, а берут самостоятельно» (ксивы у вопрошающего скорее всего нет, да и вряд ли он выберет именно этот вариант) => можно уличить во лжи и попросить компенсации.

Скорее всего спросивший не будет отвечать на этот вопрос, а попытается перевести разговор на другую тему. Есть шанс, что вам попался беспредельщик/пьяный и просто ищет, до чего докопаться — в этом случае драки избежать вряд ли выйдет.

В моем опыте был один интересный случай подката на подраться/отобрать, когда первой фразой в беседе было «ТЫ КОГО НА Х… ПОСЛАЛ?». К счастью, я смог удержаться и не выпалить вертевшееся на языке «тебя». В противном случае огреб бы без вариантов.

П.С.: Детство не особо тяжелое, просто «благополучных» районов в родном городе в то время почти и не было.
Вам надо цикл написать на эту тему :-) уж очень слог клевый :-)
Какой цикл? Если по этой теме, то
1) Мое личное знакомство с этой культурой весьма поверхностно и ограничивается детством/юношеством. Я не принимал большого участия в жизни района/двора, а от таких невинных детских забав как «пошли пинать бомжей» или «давай залезем в хату к Х, предварительно разбив окно — все равно сейчас пустует, а впрягаться за него никто не будет» держался подальше.
2) Не подходит по тематике на Хабр/ГТ.
3) Дневников я не вел. Так, иногда что-то в памяти всплывает — вряд ли получится что-то связное.

Вот, еще вспомнил про стрелки
Стрелки, кстати, забавная вещь. Я ходил на три, ни одна не закончилась мордобоем.

Оговорюсь сразу, что речь про детские стрелки по пустяковым причинам, а не про взрослые разборки с ножами/цепями/огнестрелом.

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

Действительно страшно было только один раз, когда разведка показала, что пришедших «с той стороны» было раза в три больше нашей группы — окромя парламентерской делегации в двух соседних дворах ВСЕ лавки были заняты подозрительного вида молодыми людьми в спортивных штанах.
С БИ очень не корректный пример, если человек посмотрел 50 раз фильмы с Джеки Чаном, то да — не поможет, а если он лет 10 отпахал в секции Дзю-До или Самбо или Бокса, я вас уверяю очень даже поможет. Я это говорю как практик а не торетик, мне дважы здоровье сохранил мой детский опыт при встрече с гопниками, один раз даже с отверткой вместо ножа, даже не смотря на то что было это через 10 лет после того как бросил заниматься.
если он лет 10 отпахал в секции Дзю-До или Самбо или Бокса

Или 10 лет занимался толканием ядра или 10 лет только тем и занимался по вечерам, что дрался по подворотням.

Снова много буков
Если Вы ежедневно колотите грушу просто по фану и ходите на турнички, а противник — нет, то у Вас тоже будет преимущество.

Именно это и имелось в виду под «кроме ОФП и поставленного удара».

Изначально речь шла о том, что занятие каким-то определенным БИ необязательно для того, чтобы побить большинство хулиганов в своей округе 1 на 1, а если все эти хулиганы собрались и вознамерились Вам навешать, то и 20 лет стажа в БИ не поможет.

Еще раз для ясности:
1) Иметь за плечами 5 лет опыта в БИ лучше, чем не иметь никакого опыта.
2) Чтобы угомонить человека вовсе необязательно знать БИ, достаточно иметь представление о том, где у человека выключатель и иметь необходимую силу/реакцию, чтобы на него надавить, не дав при этом надавить на свой.
3) Черный пояс и 15 лет стажа — не гарантия победы на улице даже 1 на 1 — никто не объявляет начало спарринга и не просит отступить друг от друга на позиции.

Из своего детства обратный пример то ли первой, то ли второй драки:

Драка «дружеская» (не помню, что не поделили), 1 на 1, вес примерно одинаковый.
Дважды положил соперника на лопатки, встал(сел?) в позу наездника (пятая точка на груди, плечи оппонента зафиксированы между стопой и коленом), а что дальше делать — непонятно.
На тренировках только до этого момента и доходили, дальше спарринг считался «выигранным», если оппонент не может тебя сбросить.
В общем-то предполагалось, что в этой позе ты можешь невозбранно лупить противника по лицу руками до его полной отключки, вот только:

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

В общем когда он полез в третий раз его просто оттащили зрители и сказали пойти домой и успокоиться.
Залогинился, чтоб поставить плюс и поблагодарить за комментарий)

Вот не надо путать научный подход и математику. Какая математика в литературоведении, скажем?

Мне за 12 лет практики матанализ был нужен четыре раза. Но вот честно говоря я не уверен смогли бы продолжить карьеру не справившись эти четуыре раза.
Курс математики в первую же очередь направлен на развитие логического мышления.
Давайте примеров, да побольше. побольше!
Я лично видел «сеньоров», которые впадали в панику при фразе бинарный поиск, поиск в ширину или глубину. Они не могут найти расстояние от точки до прямой. Они понятия не имеют о векторном пространстве. От того, какие решения принимали эти «сеньоры» волосы дыбом встают.

Тут уже писалось о том, что знание математики (алгебры, геометрии, матана, ...) влияет на образ мышления. И вот те, кому все это не надо — кодеры. Это не программисты. Я сейчас рискую убить и без того свою низкую карму, но это не программисты, это кодеры.
Я имел ввиду примеры задач при разработке.

Приведу пример примера.
Есть приложение, в памяти которого находится миллиард данных в виде координат и нужно среди них найти такие, которые входят в определенный радиус или что-то подобное.

Вот вам пример — есть видео фрейм, его надо разрезать по пакетам, потому что MTU. Дан максимальный размер пакета и надо сделать как можно меньше пакетов. При всем при этом хочется сделать пакеты максимально одинаковые (формально — максимальный пакет должен быть как можно меньше). Сам ферейм состоит из кучи мелких кусочков. Для возможности деокдирования при потерях, эти кусочки нельзя резать между пакетами. Переставлять ничего тоже нельзя.


"Сеньёр", не знакомый с математикой, запилил какой-то аццкий перебор, при чем для него было нагорожено несколько классов решателей и для представления промежуточного результата. Это отдельный файл на 300+ строк кода.


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

Дайте хотя бы еще 2-3 примера! Читатели будут вам благодарны.
  • Всякие контуры обратной связи для выправления кривого rate-control в аппаратных кодеках. Это теория управления. Матан там и все такое. Конечно, можно каких-нибудь костылей накрутить, но чтоб вывести простую и, главное, доказанно работающую формулу, нужна математика.


  • Опять про пакеты и структуры данных. Буфер, который выдает пакеты по таймауту или при получении подряд идущих кусков.


  • Аудио процессинг для детекции и удаления эха.


  • Синхронизация часов на разных хостах.

Вы же не думаете, что всё программирование в мире связано с аудио и видео кодеками? Там математика нужна, в другой области не нужна.

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


Да, математика нужна не абсолютно всем. Кто-то всю жизнь и без нее обходится, но обратное утверждение, "математика не нужна" — еще дальше от истины.

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


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

  1. Структуры данных. Многие из "Программистам не нужна математика" даже двусвязные списки сделать не могут. Тем более как-то хитро переплетенные.


  2. Сгаживание RTT, Скользящие средние.

Никакой причино-следственной связи между векторными пространствами и решениями сеньоров нет. Корреляция есть, в связи с традициями нашего (да наверное не только нашего) образования. Связи нет.

Явной связи нет. Иначе бы их просто не брали на работу. Но здесь очень точно описано то, о чем я говорю.

Не имея нужного бекграунда правильное решение очень тяжело найти. Скорее всего будет 100500 костылей и велосипедов.
А имея нужный бекграунд можно им не пользоваться. Но это другая история.

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

Согласен. Основным бекграундом должна быть алгоритмизация. Но математика ну никак лишней не будет.

Вернемся к картинке из-за которой начался спор. В ней нет ничего страшного. Это то, что я хотел сказать.
А вот Вам немного алгебры + бухгалтерский учёт:
В большой учётной системе есть таблица инвойсов, в которой есть колонки Amount и TaxAmount,
Amount — Полученная по инвойсу сумма, в рублях,
TaxAmount — уплаченная сумма налога.
Известно, что компания платит налог только по двум ставкам: 18% и 10%.
Поля, описывающего ставку налога по каждому конкретному инвойсу, нет.

Надо просто решить систему уравнений
{ Am18 + Am10 == Amount;
Am18 * 0.18 + Am10 * 0.1 == TaxAmount }

.

Ох уж это снобское деление на кодеров и Программистов.

Это моя боль. Человек может и хороший, но смотришь код и… руки после этого мыть надо.
Это как с переводчиками… Милейшие люди… Но как можно «Yes» перевести как «Нет»?
И да, как же часто срабатывает… Значительное количество хороших переводчиков практически не знали языка, с которого переводили. При этом бОльшая часть людей, которые прекрасно знают «заграничный язык» — никудышние переводчики. (сам такой — английский знаю неплохо, говорю на нем с акцентом, который англичане относят ко вполне конкретной области чуть на северо-восток от Лондона. Но вот как переводчик… Тяну на середнячка, если есть возможность прочитать и отредактировать «перевод» через пару недель.)
Это жизнь. К сожалению.
Я сейчас скажу крамольную мысль. Приготовьте тапки, чтобы меня закидывать.
Программист не должен знать фреймворков, языков программирования, особенностей реализации выделения и освобождения памяти в GNU под Debian.
Программист должен знать как из исходных данных получить результат. Для оформления ввода исходных данных есть дизайнер интерфейсов. Для реализации преобразования данных в результат с использованием фреймворков — есть кодер. Для представления результатов в интерфейсе пользователя — снова дизайнер интерфейсов.
Я бы не стал писать слово «прогараммист» с большой буквы. Хорошо хоть, что ребят, которые по офисам витую пару тянут, перестали называть программистами…
Просто это разные специальности и специализации. Программист может изучить язык программирования и фреймворк и на пол ставки быть кодером. (Почти всем программистам приходится изучить хотябы один живой язык программирования. Даже я вполне сносно кодил на паскале и пользовался фреймворком, который тогда назывался «библиотека функций».) И у любого кодера есть шанс стать программистом, если он сумеет абстрагироваться от округлостей JS и прочих питонов.
И да, программистов в наше время стало принято называть модным словом «архитектор». Что, как ни странно, примерно соответствует. Мне сейчас все равно, что «программировать». Дизель-генератор, ЦОД Tier IV или CRM.
Пожалуй, присоединюсь.
Человек, который может представить математическую модель процесса/явления — программист.
Человек же, который может «перевести» с языка технического задания на язык программирования — кодер.
Только в реальности формулы еще и написаны кривым преподавательским почерком от руки на старой, видавшей виды и насквозь замелованной доске:) По крайней мере когда я учился так было, сейчас возможно получше, больше лекций есть в электронном виде.
Бывают такие преподаватели, что и с изношенной доской, и с корявым почерком объяснят так, как никакой лектор из MIT не сможет. В моём студенчестве, к сожалению, встретились лишь трое таких Преподавателей, жаль не 5..6.

Хм, это серьёзно всё?)


Почему же тогда все современные достижения человечества в том числе и в сфере IT возникают именно в США и европе, а не у нас?) Честно, я никогда особо не верил в то, что в России есть много хороших программистов. Где я ошибаюсь?

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

И это ключевое.

Они создают качественные продукты везде: в розничной торговле, в финансах, в IT, в логистике, и прочее-прочее. Даже спорт у них это наивысшего качества продукт (NBA, NFL, NHL, USA Swimming Team).

Это же касается и индустрии развлечений: Голливуд, телеперадчи, шоу, сериалы, политические выборы с дебатами — все началось из США.

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

Другой вопрос «почему?» Почему именно в США научились массово создавать крутейшие продукты? Не претендую на истину но думаю что иммигрантские корни и отсутствия «традиций» это именно то, что дало необходимый импульс. Условно говоря когда в США понимают что некий процесс или функция причиняет неудобство, то не упирают на «такие традиции» и «так надо». В Америке не приучены терпеть неудобное, они привыкли это исправлять.

Плюс там заложена культура «даже тупому глухому и слепому должно быть понятно и удобно».

Отчасти по этой же причине и в современной Азии такой бум технологий и продуктов: там тоже (почти) нет стран упирающих на свою идентичность и азиаты просто как губка все впитывают и переосмысливают.
Есть замечательная книга «Сможет ли Россия конкурировать?» Грехема, которая отвечает на вопросы, почему в России так много всего изобретается, но не доводится до успешного конечного продукта.
Потому что США и американские компании нанимают самых лучших из других стран. В том числе и у нас.
Да, а питтсбургские пингвины нанимают лучших пингвинов из России и не известно кем бы они были без наших.
Состав с какого то спортивного сайта, на текущий момент: из Канады — 10, из США — 11, из Финляндии — 1, из Швейцарии — 1, из Германии — 1, из России — 1, из Швеции — 3. Все таки состав интернациональный.
Не возникают, а реализуются, разница есть.
Не секрет, что за многими успешными достижениями IT в США стоят как раз программисты из стран бывшего СССР и Индии, которые переехали в США. Скайп например в Эстонии создали… теперь он принадлежит Майкрософту.
Возможно, причина в том, что в США образование и дальнейшая карьера построена на личностях. Там равняются на лучших, если человек головатый, то стремятся продолжить развивать его таланты. Здесь — равняют всех под единую среднюю гребёнку, а иногда лучших ещё и приструняют, чтоб не выпендривались.
Да, и это лишний раз подтверждается примером в начале статьи, где учитель похвалил школьника за нестандартный подход к решению задач и отправил его в математический класс.
Это прекрасный частный случай.
Ты правда думаешь что при нашей системе, где в преподы идут те, кто не смог стать профессионалом ситуация лучше?

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

Короче, в сторону личного опыта и стрессоустойчивости.
Честно, я никогда особо не верил в то, что в России есть много хороших программистов. Где я ошибаюсь?


Наверное вы ошибаетесь в слове «много». Для участия в конкурсах «много» не надо. Хотя уровень программистов в России и высокий в любом случае.
Потому, что как правило успешность компании вообще не определяется технической частью и программированием в частности. Что бы стать популярным у продукта должна быть какая-то цепляющая охлос фишка. Например, у эпппл — это UI с которым даже обезъяна справится и пиар, у инстаграмма — фильтры с которыми даже стремная старуха может выглядеть гламурно, у фб доминирование за счет показухи и так практически у любой компании если копнуть поглубже.
+1 «охлос» — меткое название =)
в основном потому, что у них есть соответствующие «институты» — начиная от налогообложения, патентной защиты, механизмов сбыта, и заканчивая тем, что у них банально «больше бабла»
Не ошибаетесь. Разработака ПО, «придумывание» стартапов и олимпиады — абсолютно разные вещи. У нас в школе (такая средняя специальная школа :) ) преподаватель шутил что можно обезьяну натаскать на решение олимпиадных задач за полгода…

Посмотрел бы я на такую обезьяну. Гораздо более вериться, что можно натаскать обезъяну кодить, как это умеют делать те, кто все время плюётся на интервью и вообще "программистам математика не нужна".

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


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

Американцы прекрасно впаривают. Да-да, они ставят во главу угла понятие «продать», и лучшие — персонажи типа Элона Маска.
Не смотря на то что его ответы в классе и решения домашних заданий были почти всегда верными, преподаватель не признавал их таковыми.

Может, конечно, за 10 лет что-то изменилось, но в российской школе это (была) совершенно нормально ситуация. Решено верно, но неверно «оформлено» — оценка снижается.
Инвестиции в образование, что-то мне подсказывает, у них побольше (в абсолютном отношении), чем в России.
Вероятно, дело в чём-то другом.

Возможно все-таки дело в целеустремленности русских людей. Ведь за доказательствами далеко ходить не надо, например: М. В. Ломоносовым


Однако вкладывать деньги в образование все-таки нужно.

Это как говорят "Вот раньше у людей не было %что-то% и жили нормально%". Но, извините, тогда и жили в разы меньше и смертность была выше.
Так и тут. Пока остальные страны будут заниматься образованием, а не заставлять людей, увлечённых наукой, совершать странные подвиги, наша страна так и будет отправлять всех без разбору в армию и готовить к тупому ЕГЭ (в частности, по информатике составляют и проверяют ЕГЭ люди, в компетенции которых можно усомниться)

по информатике составляют и проверяют ЕГЭ люди, в компетенции которых можно усомниться
Вы не правы.
По крайней мере часть заданий из ЕГЭ по информатике придумывают те же самые люди, которые преподают программирование в топовых московских матшколах, ведут кружки по олимпиадному программированию и тренируют команды школьников, которые потом берут первые места как в личных, так и в командных всероссийских олимпиадах. Часть из этих школьников участвует в IOI, и очень многие в студенческие годы — в ACM.

Можно доказательство?

Например, Андреева Е.В., смотрите ее профиль: тут рядом публикации про ЕГЭ и про олимпиады.
Ну и я просто знаком с ней лично, точно знаю, что она тренирует команды СУНЦ МГУ, участвует в подготовке сборной Москвы к всероссийской олимпиаде, периодически участвует в подготовке наших команд к IOI. Ну, по крайней мере несколько лет назад так было. Все то же самое относится к Кириенко Д.П., с той лишь разницей, что он преподает в школе #179. Думаю, пруфом личного знакомства с людьми, которые тренируют команды, могут быть мои результаты на олимпиадах в 11 классе: 2 место и чемпион России в составе команды СУНЦ МГУ 2, 5 место в личном зачете в составе сборной Москвы.

Полностью согласен!
Знаю лично и Елену Владимировеу и Дениса :)
Денис Павлович является экспертом на проверки ЕГЭ.
Можно добавить и Виктора Матюхина и Михаила Густокашена которые тоже не мало сделали для олимпиадного движения.

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

Возможно все-таки дело в целеустремленности русских людей.

В целеустремленности? Не, ну я все понимаю, но в целеустремленных людях в США проблем никогда не было. Начиная с основателей, типа Вашингтона и Франклина, заканчивая теми же Джобсом, Маском и т.п. Про Форда, братьев Макдональдов, Белла и говорить не стоит — результаты их целеустремленности и одержимости каждый из нас может легко найти вокруг себя.
Белла — того, кто (предположительно) украл изобретение телефона у итальянца?
Помнится, в 3-м классе мне ставили трояки по математике за неправильную последовательность членов в выражении (в духе, скорость*время, а не время*скорость). А я ещё я обожал вычислять всё в голове и сразу писать ответ, чем жутко бесил учителя, сидя на первой парте прямо перед ним и 100% не используя калькулятор.
В наших школах свободное мышление не особо любят. Я помню у меня в журналах всегда было два вида оценок: 2 и 5 — и так до конца школы. Либо мы сходились во мнениях с преподавателем, либо нет — и не важно, что говорят авторитетные источники.
А «вычислителей в уме» они вообще ненавидят, потому что «этим ты не показываешь своё понимания предмета» (они как зазубрили эту фразу). И с одной стороны они правы, т.к. их задача научить. Но с другой стороны, если все ответы верны, и ученик способен показать один раз способ решения, то тут имеет смысл проявить гибкость, ведь навык решать задачи быстро в уме действительно полезен в жизни.
Так это не только в школе так, это везде. Никому не нужны ваши идеи.
Сто лет так делали, и еще сто лет так будем делать, не надо выдумывать.

Всё зависит от учителя и его увлечённости в процессе. В моей жизни было три запоминающихся примера.


Первый в школе, учитель физики. В классе был человек который ну ни в зуб ногой в этот предмет, но списывать умел виртуозно. Но что она сама говорила — если человек списал, это упущение учителя и не повод снижать оценки. Ну прочие мелочи которые очень располагали (чего стоят "физические баталии", дружное исполнение "вихри индукции веют над нами, силы Ампера нас грозно гнетут..."). При этом, к старшим классам она же мне начала снижать отметки за оформление, но сразу объяснила: олимпиады и экзамены буду принимать/проверять не только я, и ты должен сделать всё без сучка и задоринки. Я же летом на практике потом в лаборатории занимался ремонтом приборов, а не мёл дворы за часы ОППТ :)


Второй тоже в школе, учитель математики (алгебра, геометрия). Раньше преподавала вышку, потом замуж за военного и в наш ЗАТО. Она практиковала снижение отметок за оформление причём с таким же обоснованием. Плюс могла согласиться с любым способом решения, если ты его обоснуешь (по сути — докажешь, что если и списал, то понял, что там делается вообще). Кроме этого, можно было попросить не ставить отметку и прийти на пересдачу.


Третий — в универе. Там был однокашник, который как и вы, достаточно сложные примеры просто видел и решал в уме. Правда по просьбе преподавателя мог и расписать ход решения. После чего она не имела никаких претензий к нему по поводу готовых ответов :)


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

Учителя, «делающие свое дело спустя рукава» — это очень неприятно.
Мне такие попадались крайне редко ( но одна из них чуть не отбила интерес к математике, а вторая — чуть не отвратила от изучения иностранного языка — к счастью, первую сменили, а от второй я вернулся в предыдущую подгруппу через большой скандал на уровне педсовета)
А вот в нынешней школе такие учителя — это скорее правило, чем исключение… вся физика состоит из формул, математика — из решений примеров к ЕГЭ, химия — из «опасных опытов, которых лучше не проводить»…

Помню, было дело))) Решил задачку в уме, сказал ответ. "Неверно, выходи к доске". Куча формул — а ответ совпал с моим)

Я своим студентам тоже снижаю оценки за решение «в голове». Мне хочется видеть, что человек умеет решать, а не списывать
Тоже было такое. Только сейчас я понимаю, что это научило меня думать почему я перемножаю эти элементы, а не просто использую формулы. Когда учитель понимает, что ты понимаешь почему тут умножение, а не просто так это делаешь по шаблону, то он перестаёт докапывать до таких мелочей. На математике мои решения учитель вообще перестал проверять в какой-то момент, а давал усложнённые задачи, которые я делал сидя на последней парте, и их тоже у меня не проверяли, потому что когда я что-то не понимал, то я спрашивал.
Судя по всему, школа была для вас недостаточно сильной. Я в такой же ситуации перешел в ФМЛ, а оттуда — в СУНЦ, и ситуация сильно поменялась
Не всегда существовали лицеи… Хотя о том, что не перевелся в физ-мат. школу — иногда жалел.
но это были «другие времена»
У нас в городе не было другой школы, которая была бы сильнее в математике. Точнее не было другого учителя. Я вместе с этим учителем сменил школу в 10-ом классе. От нашего учебника для 9-ого класса другие дети были в шоке, они не понимали что там написано, т.к. там уже была производная, которую проходят в 10 классе обычно. Нас учили математической логике на уровне универа в 9 классе. Это уже преподаватель из университета. Потом этот преподаватель читал мне те же лекции уже в универе на 2-ом или 3-ем курсе. И в том же 9-ом классе я с этим преподавателем стал готовиться к конференции «Шаг в будущее» с исследованием (хотя это скорее было конспектом) по цепям Маркова. Ни в одной другой школе мне бы не смогли дать ни чего такого. Нас просто учили думать, изучать, искать и учиться, а не зубрить. Когда ты учишься, то преподаватель — это помощник, а не проверяльщик. Ответы есть в конце учебника, и их можно сравнить со своим результатом, и если не совпадает, то искать ошибку, и если всё равно что-то не так, то подходить к учителю.
А зачем же городом ограничиваться? Могли бы, скажем, в тот же СУНЦ МГУ поступить — у нас москвичей было около четверти.
1) Нужно откуда-то узнать о таких школах. Мне учитель рассказал только про интернат при МФТИ, но там больше упора в физику. Я хоть и по физике был отличником, но до уровня МФТИ не дотягивал (я занимался в их заочной школе по почте). Про то, что какую-то информацию можно найти в интернете, если найти интернет, тогда мало кто знал. Тогда поиск и почта были на рамблере, но мне «знающие люди» показали только «желтые страницы» про которые было написано в книжках-самоучителях.
2) Нужны деньги на дорогу и проживание на момент поступления, плюс отпуск/отгулы кому-то из родителей. Да и потом ездить домой на каникулы, наверное, тоже за свой счёт. Мои родители самый обычный рабочий класс — водитель и швея, мы всего один раз выбирались в Питер по музеям походить, а всё остальное детство я провёл в деревне.
1. Это ответственность родителей, выяснить, как дать ребенку хорошее образование. Уверен, если бы они заинтересовались этой темой, про СУНЦ узнали бы.
2. Ну а как все остальные учатся? Большинство учащихся, по крайней мере у нас, были из таких же простых семей, и вообще никто и никогда не жаловался на то, что дорого.
1. Думаю, это напрямую связано с 2. Ну и если человеку учителя не рассказали, то у кого еще родителям спрашивать.
2. Это потому что те, кому было дорого, там не учились.
И все же, я не думаю, что учеба там дорогая.
Само обучение — бесплатное, но нужно оплачивать проживание в общежитии. Когда я учился (2008-2010) это вроде было 1500 руб в месяц. Для малоимущих есть льготы, но тут тонкостей не знаю.
Сдача экзаменов бесплатная (и, я так понимаю, что проживание в СУНЦ на время сдачи второго тура — тоже), экзамены первого тура принимаются в 40 городах по всей стране.
Получается, что единственная потенциально крупная статья расходов — это перелет дом-школа в начале и конце каникул для тех, кто далеко живет. Но далеко живущие могут выбрать другой СУНЦ, скажем, НГУ.
Наверняка у вас в памяти завис какой-то один преподаватель, а вспомните других. ;) У меня за всё время в школе таких учетелей было 2: в 10-11 классах по физике бабушка 70 лет, и в 8-9 классах по русскому/литературе племянница директрисы только выпустившаяся из педогогического универа, который у нас в городе считался отстойником для тех кто не попал в основной городской университет.
Американцы могут не париться, все равно победители из других стран приедут потом к ним работать.
Они могут не париться, если планируют стать их работодателями! Иначе они просто про… своё потенциальное рабочее место
Китай своих уже собирает назад. А скоро и несвоими может заинтересоваться…

Что-то сомнительно… насколько я помню у них с получением гражданства — не очень… как они будут заманивать?

У них со всем кода-то было не очень, и с уровнем образования, и со степенью автоматизации…
Сейчас в Китае очень существенна проблема старения населения. Скорее всего сложность получения гражданства для квалифицированных молодых специалистов они со временем пересмотрят.
Всё, что говорят Иверсон и остальные, можно было бы сказать и в отношении России. Просто им надо придумать, почему они проигрывают, вот и придумывают, что «это у нас школы такие плохие, не то что в России». Ну а если бы всё было наоборот — американцы бы выигрывали олимпиады, а россияне проигрывали — тогда бы наши говорили тоже самое про наши школы. Просто ищут, на кого бы свалить свои неудачи. А правда в том, что в странах типа России или Китая гораздо меньше возможностей для самореализации, чем в США, поэтому выбирать не приходится и многие ударяются в программирование. А на западе человек может заниматься сотней других дел и быть успешным, поэтому и мотивации для программистов там меньше.
Совершенно с Вами согласен.
Тут даже далеко за примерами ходить не надо. Возьмем Олимпиаду по математике среди школьников IMO 2016 ( США #1 ) или даже программирование (IIO 2016), никакого доминирования России и Китая близко нет.
Что только говорит, что американские студенты находят другое занятие уже после школы, а многие еще и во время школы похоже.
ИМО 2016 − это всё-таки исключение, „провальный“ год как для китайцев, так и для россиян (для них в т.ч. 2015).
Если же взять годы с 2000 по 2014, то картина четкая.
image
Русские становятся замечательными программистами.
Американцы становятся их (не менее замечательными) рабовладельцами работодателями.
Они явно хотят повторить главную ошибку. Но, хотят на этом хоть чуть-чуть денег заработать:
Самое важное, вкладывать деньги в образование.

Вкладывать деньги — не самое главное. Нас, на излете СССР, программировать по-началу учили вообще без компьютеров. На бумажечке. В школе писали программки без каких-либо компьютеров. На «алгоритмическом языке»… Потом в институте были лабораторные 2 часа в неделю на MSX'ах, что было уже весьма круто. Что интересно, почти пол курса так или иначе в Штаты уехали в 1993-1995-м, программистами работать. Хотя некоторые, хоть тоже уехали, преподавали (и некоторые до сих пор преподают) «там» математику в университетах…
Это я все к чему? Пока явно наблюдается обратная зависимость уровня образования и таланта программистов от уровня инвестиций в образование.
Просто после того, как вдруг «уместил» три трехмерных матрицы 64х64х64 «float» в неполных 64 килобайта имеющейся в наичии памяти… Когда попадаешь на мегабайт памяти — sky is a limit.
Посоревноваться с компилятором в оптимизации конечно забавно, и пока еще удается выигрывать, придумывая хитрые структуры данных, но в перспективе дело безнадежное. Дело даже не в подешевевших гигабайтах — всегда будут задачи, упирающиеся в аппататные ограничения. Развитие техники кодогенерации и трансформации программ со временем позвилит компьютеру «упаковывать матрицы в память» лучше, чем это может сделать человек.
Там вопрос был не в упаковке матрицы (там паковать было особо нечего — матрица была без пустых ячеек), а в том, что был переосмыслен алгоритм и подход и вместо трех матриц 64х64х64 удалось все необходимые операции выполнить в двух матрицах 64х64.
И тут именно идея не в том, чтобы оптимизировать алгоритм и структуру данных, а в том, чтобы сделать новый алгоритм, который дает то же самое на выходе, но быстрее и с меньшими затратами памяти. А уж если там из этого компилятор дополнительно что-то наоптимизирует — так это только бонус.
Раз это получилось, значит исходная трехмерная матрица была не произвольной, а с какими-то ограничениями? Тогда по этим ограничениям и простому алгоритму, теоретически, можно сгенерировать новый, эффективный по памяти, алгоритм.
Возможно, в новом алгоритме обработка велась послойно
Если есть живой рабочий MSX с живым 3.5" дисководом, то у меня где-то у родителей должна храниться дискетка с программой и исходными данными… Учитывая, что дело было больше 25 лет назад… (я стар… я очень стар… Я СУПЕР СТАР!) я уже всех деталей реализации того алгоритма не помню.
Тут в другом дело — надо научить компилятор оптимизировать «упаковку матриц в память». Он же не ниспослан нам свыше, это дело рук и мозгов других людей.
Да, но написание компиляторов не очень похоже на написание программ, работающих в ограниченных ресурсах. Изобретать хитрые трюки там лучше не надо.
А еще в то время люди сами собирали себе компьютеры из журналов… Я хоть и из эпохи Pentium ||, все хотел собрать себе Радио 86РК…

Было такое дело ;) Сам лично и Микро80 и Радио 86 и Специалист и даже первые ХТ сами паяли :)
Хорошая школа была и даже можно сказать страсть.
Зато понимаешь что и как работает.

вложение денег — это еще и отбор преподов (хотя бы до уровня). И насыщение лабораторий демонстрационным материалом (да и просто техническое оснащение учебного процесса).
Вложение денег — это, возможно, какие-то внешние преподаватели.
Одними деньгами проблему не решить, но облегчить решение проблемы они могут очень сильно. Но первично — цель, и желание ее достигнуть…

зы. можно чуть подробнее намекнуть про «уместил»? :-)
вложение денег — это еще и отбор преподов (хотя бы до уровня)

Были плохие преподаватели с низкими окладами, а станут плохие преподаватели с высокими окладами.
При существенном повышении зарплат будет больше желающих работать по специальности, и можно будет провести более строгий отбор. Так что преподаватели станут лучше.
в том-то и дело, что всего лишь «можно». главное — это желание провести этот отбор. т.е. — цель.
Ну, пока мы зарплаты не повышаем, лучше не станет точно. А вот если повысим, будет возможность
  1. Кто будет проводить отбор?
  2. Кого будут отбирать: преподавателя с офигенным опытом или выпускника без опыта?


Чтобы была возможность выбирать, сначала нужно перенасытить рынок высококлассными кадрами. Но кто нам будет их ковать?

Это очень масштабный проект и лучший способ его провалить — просто дать деньги.
зато «дать деньги» — это проще всего…
Конечно, деньги — это лишь один из элементов. Но без денег все остальные элементы системы пользы не принесут.
может быть и так. но на низкий оклад пойдет меньше нормальных людей (да, подвижники всегда найдутся — но не они делают погоду).
деньги не гарантируют качества (то, что получилось у нас с полицией и военными), но позволяют улучшить. Отсутствие денег скорее приведет к ухудшению, чем даже стабилизирует. доказано, в общем, 90-ми. и до сих пор ощущаются последствия тех лет, когда кассирка в магазинчике зарабатывала втрое больше учительницы и заявляла: «я теперь хотя бы знаю, что детей хоть плохо, но накормлю».
У нас в университете (на матфаке) был предмет, посвящённый интернету и информационным технологиям. Год примерно 2003-04. Всё рассказывалось и показывалось мелом на доске. Хотя в итоге на две пары пустили в класс с сеткой и выходом в интернет (девочки нашли в сетке порно, так что было не до интернета).
Всё рассказывалось и показывалось мелом на доске.

На «предмете, посвящённому интернету и информационным технологиям» вас должны были научить гуглить картинки с котиками? Для чего на лекции что-то большее, чем доска и мел?
В 1992 году у меня, как и у многих, не было компьютера и пользоваться я им мог только в школе, а тех самых 2х часов очень не хватало. В результате, я перечертил клавиатуру на двойной лист в клетку и по нему дома набирал код на Бейсике.
перечертил клавиатуру на двойной лист в клетку и по нему дома набирал код на Бейсике.

Извините за мою убогую фантазию, но это как???? Как на бумажной клавиатуре набирать код???

хм… я вот вспомнил zx spectrum… Там каждой кнопке соответствовала команда бейсика… может XanMark имел ввиду те самые команды бейсика?

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


P.S. Не помню такой клавы у спектрума, насколько помню писал программы вполне обычно в текстовом редакторе просто набирая текст.

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

Хм… может я что-то путаю, но вроде на спектруме тоже так было… Точно помню, что zs scorpion умел два бейсика — стандартный спектрумовский (и там по кнопке вводилось всё слово-команда) и какой-то понтовый-расширенный свой (вот там был обычный текстовый ввод)

В ZX Spectrum 128 (расширенная модель 1985 года) появился «нормальный» режим ввода бейсика. В Scorpion этот режим тоже существует. Так что оба режима для ZX Spectrum можно считать стандартными, но у нас по моим наблюдениям гораздо больше было 48k-совместимых машин, а там действительно существовал только один режим ввода.
Чушь это все. Разница в том, что в нескольких конкретных вузах образовалась очень сильная школа спортивного программирования, плюс сборы итд. Плюс за победы могут зачесть предмет, например. В США такого, очевидно, нет, потому и проигрывают. Короче, это как приплетать образование в первом классе к успехам хоккейной или бейсбольной сборной.
Согласен, что это не показатель. Спортивное программирование от индустриального очень сильно отличается. Примерно как спортивная стрельба и стрельба на поле боя.
Тем не менее, математическое образование важно, и в массовой школе в США оно долго отставало от советского/российского. Так как качество образования проявляется с задержкой, эта разница до сих пор видна. В элитных школах оно было на высоком уровне, но сейчас этого уже не достаточно.
Фигня это.

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

В универах бардак еще больший. Система бакалавр-магистр, как я понимаю, помимо дипломов и возможности свалить заграницу после 4 курса, должна была сместить фундаментальные науки с первых курсов к магистратуре. И это логично, потому что первые курсы людям преподают окрестности точки эпсилон и прочую малопонятную чушь (именно так кажется на тот момент), а когда дело доходит до специальности, курсе на 4-5, людям уже на это пофиг, половина просто работает и на пары не ходит. В итоге получаем специалистов (а сейчас — бакалавров и магистров), которые, по факту, специальность пробили, а вышмат уже не помнят. А когда их вдруг заносит в области с математикой (аналитика, гейм-дев, научные расчеты и прочее), то знания все равно приходится обновлять и вспоминать. То есть не может человек после вуза начать работать в полную силу, его там просто этому не научили. На собственном опыте приема кадров в наш отдел могу сказать, что лучше брать студента курса 4-5 и натаскивать их за относительно маленькие деньги, к выпуску будут уже крутые спецы, чем брать выпускников, которые, по факту, на уровне тех же студентов 4-5 курса, но бабла хотят в 3 раза больше.

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

Но а самая большая жопа в том, что российские вузы как-то не заинтересованы в разработках. Все ждут заказа от Роснефти, Газпрома и прочих крупных компаний, которым просто по долгу службы нужно всякие НИОКРы спускать в универы. Причем, в результатах работ никто не заинтересован, поэтому заполняются формальные документы, выполняются формальные работы, происходит обмен денег и на этом все.

С другой стороны, возьмите американские вузы. Может быть, они не решают задачи быстрее всех на олимпиадах, но просто тысячи разработок из американских вузов в последующем становятся нашей окружающей действительностью. Есть идеи, работы, зарплаты, инвесторы, патенты и желание получить готовых работающий продукт. У нас всего это нет (или почти нет), поэтому заниматься наукой и разработкой в отечественных вузах просто нет смысла. Поэтому, в общем-то, все эти наши олимпиадники через 5-10 лет окажутся в штатах.

Из крутого, что сейчас есть у нас — это понимание больших компаний, что вузы бесполезны в том формате, в котором они есть. Поэтому появляются всякие ШАД, Технопарки и прочие обучающие школы. Но минус в том, что их крайне мало, они локализованы, как правило, в Москве, туда высокий конкурс. Ну и понятно, что большие компании учат столько людей, сколько нужно именно им. Обучать будущих специалистов Гугл им как-то не с руки (хотя так, конечно, зачастую и получается).
В США селекция студентов и персонала идёт по двум направлениям.

1. Религиозная, гуманитарная и спортивная составляющая, библейский пояс.
Учат креационизму, бейсболу, получают дипломы по иглоукалыванию, латыни.

2. Крупные научные центры, где таланты вполне могут получить бесплатное образование и приехать из Китая, Индии.

Морлоки и Элои.

А можно какую-то более широкую выборку по олимпиадам, а то даже название забыли указать. Чем объяснить призовые места польских и корейских команд, у которых система образования вряд ли похожа на российскую?

Предательски бездуховный вопрос. Как не стыдно?!
Это всё действительно нытьё: «у нас учат плохо, значит в другом месте учат хорошо».

По опыту своего (зарубежного) вуза: олимпиада — это частная деятельность, своего рода клуб по интересам по типу шахмат или танцев. Надо иметь большую любовь к именно такого рода занятию, чтобы тратить на него массу времени и сил. Кроме того, требуются выезды на соревнования, приглашённые лекторы и т.п., что университетом, в принципе, может спонсироваться, но не слишком щедро — это же не научная и не учебная работа.

Тут скорее возникает вопрос, почему польскому/российскому/китайскому студенту такой вот своеобразный киберспорт интереснее своей непосредственной специальности: ведь ясно, что чудес не бывает, и время, потраченное на прокачку навыка решения задачек на время, отнято у какой-то другой деятельности. И тут у меня довольно грустное наблюдение: в спорт (любой) часто в принципе идут люди из не самых благополучных страт общества, потому что для них это социальный лифт. Сегодня ты один из миллиона беззвестных китайских студентов, а завтра ты чемпион мира, и тебя берут в любой фейсбук/гугл. А студенту MIT этот путь попросту неинтересен, да и связан с высоким риском неудачи, студент MIT и так в жизни не пропадёт.
Я со всем согласен, но хотелось бы упомянуть одно важное исключение. Спортивное программирование, имхо, идеально подходит как кружок для старших классов школы. Реальный профессиональный рост на этом этапе еще не начался, а вот интерес к программированию уже есть и допускает довольно высокий уровень работ. А подобные школьные кружки «тянут» за собой интерес к олимпиадному программированию и в студенческие годы, по крайней мере на младших курсах.

И вот традиция «спецшкол» с подобными кружками — она действительно довольно характерно «российская», хотя и медленно умирающая, к сожалению.

Разумеется когда опыт этих школ пытаются обобщить на индустрию и страну и заявить что в России какая-то особо хорошо подходящая образовательная среда для программистов выпускающая особенно хороших специалистов, то получается и грустно и смешно. Этих олимпиадников в буквальном смысле единицы и погоды они, увы, не делают. Подавляющее же большинство российских соискателей работы программиста, к сожалению, серая и малообразованная масса. Не могу с другими странами сравнить количественно (вероятно серости хватает и там), но качественно прекрасных специалистов я там встречал много и плодами их работы пользуюсь куда чаще чем плодами работы российских. Если же посмотреть на научные работы сделанные студентами в ВУЗах, то сравнение очень явно будет не в пользу российских образовательных учреждений.

Да — про спецшколы хорошее замечание. Я для себя до сих пор не могу решить — это хорошая штука или бессмысленная в наши дни советская идея, анахроническая по существу.

Автор удивительно наивный человек, столько лет уже а не заметил что система образования в США специально так организована.
Наверно просто там понимают что это хобби типа шахмат и пользы не много по жизни будет от него, поэтому и не особо стараются выиграть.
Хотя в веб-разработке олимпиадное программирование применимо не часто, среди участников и победителей олимпиад достаточно много очень успешных разработчиков.
Интересная статья.
Интересно, а как же программисты из Индии?.. У них так же сильная школа математики или я ошибаюсь?!
Достижения команды на олимпиаде по программированию еще не означает, что весь университет или вся страна — хакеры (в изначальном значении этого слова). Обычно это 5-10 увлеченных студентов, которые ходят на факультативные занятия. Остальные студенты о них никогда и не слышали, и в программировании дуб дубом.
Также как победа России на олимпиаде в Сочи не означает, что у нас тут все спортсмены.

Что касается спора о необходимости знания высшей математики для программиста — тут все правы. Есть области, где она нужна (ML, сложные алгоритмы). Есть области, где нет (сайты, простое не научное ПО). Причем, вторых на рынке гораздо больше (99%?).

Можно изначально сказать себе, что я не хочу лезть в науку, хочу делать простые вещи, но качественно. Тогда можно ОЧЕНЬ сильно сэкономить своего времени, выкинув математику, но добавив более качественное изучение фреймворков.
На западе первая область называется R&D — Research and Development, а вторая просто Software Development. Вполне себе две ниши для людей разной направленности. Вторая область это конечно же больше ремесло, что не отменяет существование сильных экспертов в своих областях, так как для текущего дичайшего многообразия технологий важно чаще знать стандарты и фреймворки, вместо изобретения и внедрения новых.
Не понаслышке зная, как обстоят дела в средней российской школе, налицо полная деградация учителей.
Увы.

Деградация не учителей, а системы.
Учителя готовы учить НО есть учебный план, егэ и обязательно должен держать "поголовье" иначе у школы не будет финансов.
Увы сам с этим сталкиваюсь.

Ну причина тут, как мне кажется, может быть простая. Возможно американские школьники и студенты просто не оценивают Олимпиады по программированию как что-то действительно важное, например для карьеры.
Вот вы знаете про хоккей с мячом, например? А кто из нас всерьез смотрит его соревнования?
Ну вот, скорее всего, в США для студентов все эти Олимпиады по программированию — примерно такой же «хоккей с мячом», странное маргинальное мероприятие, на котором побеждают русские и какие-нибудь эстонцы, и очень этим фактом гордятся.
То есть в соревновании надо смотреть, хочет ли побеждать твой соперник, и что за команду он выставляет. Если эти «русские программисты» соревнуются с хоббийной командой кружка программирования колледжа, то нет тут особой гордости, как мне кажется.
Я бы скорее смотрел на то, куда и как трудоустраиваются эти самые «победители Олимпиад по программированию» и «непобедители», и какой у них уровень зарплат через, например, 10 лет. Это бы показало, является ли Олимпиада «карьерным лифтом», или просто генератором пожелтевших грамот в столе.
Касательно трудоустройства: даже здесь, на хабре, регулярно встречаются статьи на тему «я сходил на собеседование, мне дали очень сложную алгоритмическую задачу, я не знаю, как ее решать, ну как так можно». А теперь представьте, что вы занимались олимпиадами совсем недолго, много лет назад, еще в школе, и уже это дает вам возможность решить любую задачу с собеседования. Причем «решить» — это даже не совсем правильное слово, в большинстве случаев даже осознанного процесса «решения» нет, оно просто приходит в голову одновременно с завершением чтения условия задачи. Просто потому, что были решены тысячи гораздо более сложных алгоритмических задач.
Так что я уверен, что большая часть олимпиадников трудоустраиваются замечательно.
Если эти «русские программисты» соревнуются с хоббийной командой кружка программирования колледжа, то нет тут особой гордости, как мне кажется.

А реально ситуация как обстоит в среднем по больничке? Те кто приходит на олимпиады в мире это вариант "толкиенистов от компьютера" или это именно что "начинающие спортсмены" или карьеристы?

Для того, чтобы начать показывать более или менее приличный для России уровень, нужно потратить годы на многочасовые тренировки по несколько раз в неделю. Конечно, чтобы потратить 10+ тысяч часов времени, нужно искренне интересоваться предметом, но я бы такого человека не назвал «начинающим спортсменом», и уж тем более не сказал бы, что у него «хобби». Это именно что профессиональный спорт. Ну и карьеристов практически нет — они просто не достигают какого-то значительного уровня, для прохождения собеседований достаточно ГОРАЗДО меньшего объема знаний.
Ну и ребят из-за рубежа, по крайней мере топовых, это тоже касается — скажем, они приезжали к нам на Petrozavodsk summer training camp. Мне кажется, тот, кто занимается этим не серьезно, не поедет на две недели на другой конец мира ради того, чтобы по 5 часов в день писать тренировочные туры, а по вечерам — слушать разборы задач и дорешивать то, что не решилось на самой тренировке.

Касательно темы из статьи — для того, чтобы была одна звезда, надо, чтобы серьезно интересовались темой тысячи. И я вполне допускаю, что для среднестатистического студента из США эта тема менее интересна, чем для нашего. В итоге, даже несмотря на неплохие методики тренировок и отборов, и на наличие небольшого количества профессионалов, результаты хуже. Ну, как одно из объяснений.
И не стоит забывать самого Лопатина, а также Николая Дурова, брата Павла:
… Затем занял должность заместителя технического директора социальной сети «Вконтакте», а после — генерального директора мессенджера «Телеграм».
Пруф
В США, Финляндии работает селекция, отбирают через конкурсы, сильный контроль, правительственные программы.
Селекция, выбор это в первую очередь свободная миграция, на 100 тыс. населения может получится столько то талантов.

https://www.imo-official.org/year_country_r.aspx?year=2016

Некоторые страны пиарятся, одни и те же люди, один-два таланта, по три года во многих конкурсах, даже из других стран, как футболисты.

Я, конечно, понимаю, что это перевод, но текст явно писал кто-то, от олимпиад далекий.
Судя по всему, в начале текста имеется в виду финал ACM ICPC, но тогда команды ну никак не могли программировать с 9 до 23, там тур 5 часов длится. И другие подобные ошибки.
Глава Министерства образования и науки РФ Андрей Фурсенко уверен, что высшая математика не только избыточно нагружает школьников, но и «убивает креативность», поэтому данный предмет должен быть исключен из учебной программы.
Фурсенко уже 5 лет как не министр образования.

А вы думаете Васильева лучше?
Сейчас будет еще обязательные егэ по истории, а это опять пустой напряг на выпускников.

«У нас пытаются отбить охоту к учебе, к поиску нового интересного способа сделать что то, к выяснению того, как использовать его эффективно, а затем применить на практике», — сказал он. «Я думаю, что если бы это поощрялось и вознаграждалось, ученикам было бы интересно учиться».


А в бывших странах СНГ не так? Серьезно? Та же бюрократия, основанная на школьной программе, если не хуже. Разница только в том, что математике и другим точным наукам уделяют то время, которое в США отводится на спорт и социализацию.
'''
Оба мужчины согласились с тем, что главная причина успеха России и Китая была простой: они начинают изучать концепции программирования намного раньше, нежели американцы.
'''

Главная причина в том что в России и Китае запросто реализуется 'задротский' кружок где команды натаскивают на решения конкретного класса задач.
(Сам учился в школе где препод по программированию готовил команду на выступление, при этом участники команды могли на обычные занятия не ходить)

В США с организационной точки зрения такое очень сложно реализовать. Если хочешь какой то кружок в школе — то он должен быть для всех, ограничен по времени, не в ущерб физре и.т.п.

В этом есть свои плюсы и минусы. Но то что у Российских преподавателей(и увлеченных школьников) гораздо больше свободы если речь заходит о всероссийских(и тем более международных) соревнованиях — это 100%
ИМХО, очень правильное предположение, сам участвовал во многих олимпиадах еще со школы. На время подготовки к всеукраинской олимпиаде, любой ученик получал где-то месяц «свободного посещения»(когда на занятия ходить не надо, ходишь только на кружки по своему предмету и сам дома занимаешься). А когда я в 11 классе готовился к международной, у меня чуть ли не пол года было такого свободного посещения.
По слухам, в Китае вообще детям, которые проявляют в младшей-средней школе большие способности к какому-то предмету предлагают перевод в интернат где их будут готовить к олимпиадам, а не профильных предметов у них будет около 0.
Когда меня спрашивают «Зачем нужна математика?», я отвечаю «Чтобы делать чудеса». И привожу такой пример:
Задача «Найти сумму чисел от 100 до 500». Если загуглить этот вопрос по русски, то решение найдется примерно такое:
int a = 100, b = 500, sum = 0;
while (a <= b){
    sum += a;
    a++;
}

Студенты сдают его и все довольны. Преподаватель — потому что студенты освоили циклы. Студенты — что у них приняли задачу.
Чудо математики же в том, что задача решается вот так:
int a = 100, b = 500, sum = 0;
sum = (b + a)*(b - a + 1)/2;

В обоих случаях получается 120300.

Пример хороший, но, тенденции таковы, что разработчик находит в интернете библиотеку NumberSummatorUltimate и вызывает метод sumNumbers(from, to). Несправедливо будет говорить, что автор библиотеки "больше программист", чем ее пользователь.

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

Думаете создатели библиотеки математику не учили?

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

Но библиотеку в общем случае использовать всё-же предпочтительнее, чем писать свои костыли.

image

Я совсем не знаю математики и я считаю что я не компетентен в обсуждении решений подобных вашему.
Мне понравилось решение которое вы предложили.
Предлагаю вниманию решение предложенное автором метода sum в языке программирования scala.
Интересно, что американцы все меряют деньгами. Им даже в голову не приходит, что русские могут быть просто умнее.
А с чего это русским быть просто умнее? У нас был какой-то специфический фактор естественного (или искусственного) отбора?
Язык, культура, склад ума у каждой нации накладывает естественный отпечаток на проявление людей в различных сферах деятельности.
Не очевидно, что язык и культура могут давать существенное отклонение в способностях к определенным видам деятельности. А для того, чтобы мозг стал отличаться, нужно, чтобы был какой-то признак естественного или искусственного отбора, поощряющий эти изменения — например, как у евреев: во время второй мировой войны выжили в первую очередь умные евреи, которые могли принести очевидную пользу своим хозяевам-немцам. Насколько мне известно, ничего подобного с нашим народом не происходило.
Мозг здесь не при чем. Дело, в основном, в языке. Язык формирует стиль и гибкость мышления, культура добавляет особенности восприятия и отношения. Именно это и формирует национальные особенности, которые, разумеется, проявляются и в деятельности.
Дело, в основном, в языке. Язык формирует стиль и гибкость мышления, культура добавляет особенности восприятия и отношения. Именно это и формирует национальные особенности, которые, разумеется, проявляются и в деятельности.

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


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

Ну, помимо Mr_Kibernetik об этом задумывались и философы древности, и современные психологи. Т.е. что-то в этом есть.
https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF%D0%BE%D1%82%D0%B5%D0%B7%D0%B0_%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_%D0%BE%D1%82%D0%BD%D0%BE%D1%81%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8
Гипотеза лингвистической относительности. Также, я где-то видел цитату «Язык определяет мышление». И даже порой обдумываю эту мысль =)
Это т.н. «гипотеза Сепира-Уорфа». Ключевое слово — гипотеза, ну и разные авторы трактуют это выражение как узко, так и предельно широко. Я сам не фанат.
Так я нигде не говорил, что это аксиома/ истина в последней инстанции. Но, поскольку жил в разных местах (Узбекистан, Краснодарский край, Москва, Калуга), то склонен учитывать влияние языка на поведение людей.
Я тоже жил в разных местах, и вижу, что бытие отличается в массе аспектов, среди которых далеко не только язык важен. Может (в порядке бреда) важнее еда или климат — из перечисленных вами мест только в Узбекистане не русский язык, а остальные вроде как по-русски говорят, хотя Калуга и Краснодар ментально довольно далеко.
Не для подтверждения или опровержения, но многократно наблюдал, как задумавшиеся китайцы рисуют пальцем на столе иероглифы…
Общее личное наблюдение — в области мозга, где у европейцев (в том числе у всех славян) работает фантазия, у китайцев — хранится база иероглифов.
На фоне китайцев и японцев — у русских, украинцев, англичан, немцев, австрийцев, итальянцев, австралийцев, канадцев, ново-зеландцев, индусов, индейцев, бразильцев и прочих жителей Перу — один менталитет.
Особенность не в «великом и могучем», а в том, можно ли выразить мысль на бумаге/камне/глине/мраморе фонетически или нет?
(про украинский и белорусский — не надо грязи. Это в чистом виде диалекты русского. По определению. В украинский зачем-то надергали искаверканного английского… В белорусском послали лесом все правила правописания. Но мне в детстве чтобы начать общаться с западными беларусами на чистом незамутненном беларусском языке понадобилось два дня. Западно-украинский язык примерно 1982 года издания я освоил за три дня. «Цыкл цыкл мотоцыкл все дороги перецыкал и поехал на базаръ покупать себе фонаръ.» Это реальный украинский язык жителей реальной западной украины всего каких то 30 лет назад!!!
Есть у Эйнштейна статья «Всеобщий язык науки», где он размышляет, что учёный в общем-то отрывается от своего исходного языка и начинает мыслить на «всеобщем языке» (формул и символов, я так понимаю).

Думаю, разговоры о различии мышления китайца и итальянца можно вести в контексте литературы, но если эти люди пишут объектно-ориентированную систему на C++, они думают в терминах объектов и C++, вот и вся история.

Однако Apple, Microsoft, Space X и Xiaomi это более результат гения предпринимательства и маркетинга, а не гения программирования или технического склада ума. Придумать продукт полдела, вот его расскрутить и продать...


Если говорить о программных проектах, то программисты из стран бывшего СССР стоят за основанием Гугла, лаборатории Касперского, Dr.Web, ABBYY Software, Paragon Software, PayPal, Parallels, EverNote, Jetbrains, Netcracker и т.п. Это достаточный список?

результат гения предпринимательства и маркетинга, а не гения программирования или технического склада ума

Создавать новые электронные продукты — компьютеры, смартфоны, операционные системы и возвращаемые ракеты — гений предпринимательства и маркетинга, серьёзно?


программисты из стран бывшего СССР

Это не тоже самое, что русские.


основанием Гугла

Сергей Брин — русский программист? Это уже что-то новенькое.


лаборатории Касперского, Dr.Web, ABBYY Software...

Эм, ну если начать тут приводить список американских IT-компаний 2-го — 3-го эшелона...

Это не тоже самое, что русские.

Не люблю разделения на русский / не русский. Есть те кто родился в странах бывшего СССР (или от родителей из стран бывшего СССР) и кто родился в других странах. Это достаточно. Все остальное это искусственные разделения и даже скорее политические. По сути, русский это всего была сборная солянка разных наций как и американец и считать или не считать русским можно спорить долго и бессмыслено.


Сергей Брин

Выше уже все написано на эту тему, он как минимум выходец из бывшего СССР как и мы все, все остальное политические игры.


Создавать новые электронные продукты — компьютеры, смартфоны, операционные системы и возвращаемые ракеты — гений предпринимательства и маркетинга, серьёзно

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

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


как минимум выходец из бывшего СССР

Который к тому же уехал в 5 лет. Вряд ли он успел стать русским программистом.


создают их наемные работники

Что не отменяет того факта, что в США отличный инжиниринг.

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

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


Что не отменяет того факта, что в США отличный инжиниринг.

Конечно, правда в нем работают специалисты из самых разных стран. У жителей США скорее отличный скил организации предприятий и привлечения специалистов со всех других стран (что не менее интеллектуальная работа)

Деньги можно просто подсчитать. А умность не считается. Есть несколько способов посчитать IQ человека, и по ним я выхожу чуть тупее, чем надо для должности сержанта американской армии. Однако же, я склонен считать себя несколько умнее, чем требуется от сержанта (гением или талантом себя отнюдь не считаю).
1
"Язык формирует стиль и гибкость мышления"
Гипотеза Сепира—Уорфа. Считается, что она возникла в 30-х годах прошлого века.
Если совсем коротко, то Бенджамин Уорф утверждал: язык определяет мышление и способ познания.
Гипотеза высмеяна учёными ещё в прошлом веке.

Пробовали связать научные способности с культурой ( мол, дикари не умеют познавать мир научно), теория Тульвисте( Бывший преподаватель марксизма-ленинизма в Тарту. Сама теория зародилась ещё в сталинское время. )
В научные реф. статьи так и не попало, треш политический.

2
«ум по наследству»
При Гитлере пышно цвели такие истории. Последняя появилась в мормонском университете, раскритикована.
Нет ни одной научной статьи реферированной по передаче ума по наследству, даже у собак, видимо множество генов сразу надо менять, а это долгий процесс накопления изменчивости.
How Jews Became Smart: Anti-«Natural History of Ashkenazi Intelligence»l
R. Brian Ferguson
Department of Sociology and Anthropology, Rutgers-Newark
bfergusnlal,rutgers.edu
Высокий IQ не наследуется.
Вывод о том, что гены, которые стимулируют аспекты нервного роста, связаны с более высоким интеллектом — чистое предположение.

ps/ Есть какие то статистические разборки-закономерности по отношению объёма мозга к массе тела, немцы и поляки с китайцами лидируют, а французы с неграми самые «глупые». Но это тоже на грани критики а не науки. Чтобы строить построения нужна реф. статья.
UFO just landed and posted this here
Через гены тоже — тот же синдром Дауна, например
UFO just landed and posted this here
Тут вопрос в том какой фундамент вы хотите иметь.
Математика есть и будет и её основы неизменны.

Если это будет какой-то другой фундамент, будь то фреймворки или спец. библиотеки или что то ещё, в помощь программисту, ну тоже хорошо. Экономия времени и денег. Совсем не против, почему бы и нет.

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

Во втором случае, вот какая загвоздка получается, всё постоянно меняется, языки программирования усовершенствуются, появляются новые, под них пишутся(сейчас это фреймворки), в недавнем прошлом *.dll ки
Это постоянно нужно перестраиваться, постоянно нужно быть на чеку, так сказать где то, что то вышло нужно тут же усваивать, это я Вам скажу тяжело. Студенты, которые сейчас обучаются, а думают все легко и просто, но с каждым годом появляются все новые и новые технологии и если ты был до этого спец, то сейчас ты снова студент. Порой уже кажется, а программист ли ты? или админ? или тестировщик.? ) или нечто среднее между ними всеми.

Поэтому нужно иметь математический фундамент, со знанием фреймворков.

Про наши школы все знают, но не все знают про школы в сша. Скажем так: раньше я думал что у нас бездельничают и учат плохо.

А я думаю нужна. И не там где ожидаешь. Закончил физ-фак, математику знаю плоховато. Всегда стремился стать инженером-железячником. Вот кто-бы знал что именно тут она и понадобится. P.S. работаю с DSP и FPGA
Надеюсь, в скором времени в любом соревновании перестанут сегментировать специалистов по странам. Мозг человека усваивая новую информацию выстраиваивает нейронные сети, которые в свою очередь постоянно оптимизируются. «пропускная способность» нейронных сетей мозга постоянно ускоряется. Скорость обучения знаний увеличивается.
перестанут сегментировать специалистов по странам


Система национального государства в современности малоэффективна.
Люди объединяются не только по патриархальным, языковым, религиозным, а тем более территориальным «правилам».

Спекуляции на национальностях, традиционности (изобретении традиции) или религиозном прошлом давняя часть европейской мифологии.

«Предлагаю вам переходить в „Фейсбук“. И я не просто так это вам говорю. Хотя бы потому, что семья ее основателя Марка Цукерберга из Одессы, а нужно поддерживать своих».
Яценюк

«Ирландские профессора пишут книги, чтобы доказать, что Гомер был ирландцем; французские антропологи предоставляют свидетельства того, что кельты, а не тевтоны, были источником цивилизации в Северной Европе; Хьюстон Чемберлен доказывает во всех подробностях, что Данте был немцем и что Христос не был евреем. Подчеркивание расы было повсеместным среди англо-индусов, от которых империалистическая Англия подхватила эту заразу благодаря Редьярду Киплингу».
Бертран Рассел, Происхождение фашизма / Искусство мыслить 1999 г., с. 198.
Вы так просто пытаетесь отбросить самый основной (базовый) биологический фактор?
Рекомендую для прочтения короткую, но интересную книгу
Реликтовая Европа
Возвращаясь к вопросу «американцы и русские».
Русский (в среднем) превосходит американца по индивидуальным качествам (творчество, мастерство, изобретательность, смекалка, полёт фантазии, гибкость ума, нестандартное мышление и прочая и прочая ....)
Американцы (не американец, а американцы) на голову превосходят русских в системной организации.

P.S. Свою основную задачу — не дать русским организоваться в устойчивую и слаженную систему, Запад выполняет (как и всегда) весьма успешно. Ибо если эти смекалистые выскочки ещё и организоваться сумеют должным образом — пиши пропало.
Свою основную задачу — не дать русским организоваться в устойчивую и слаженную систему, Запад выполняет (как и всегда) весьма успешно.

Вот это интересно. И каким же образом это делается?

Я так понимаю, что бездействия уже достаточно для выполнения этой задачи, как бы грустно для нас это ни звучало

Бездействие — это вполне моральное поведение в такой ситуации: спасать Россиян и помагать им "организовываться в устойчивую и слаженную систему" Запад нисколько не обязан. Однако, коментарий user4000 недвусмысленно называет продиводействие этому "основной задачей" Запада. Так что тут должно быть что-то больше не оказания помощи, чтобы так категорично заявлять.

Что, есть какое-то серьёзное исследование на тему кто кого превосходит? Среди американцев (и европейцев) полно инженеров, которые изобрели все эти UNIX, C/C++, телефоны, самолёты, атомные реакторы, квантовую физику и т. д., не только менеджеры.

Sign up to leave a comment.

Articles