.NET Fest: полная программа конференции на сайте. Присоединяйся к самому большому .NET ивенту
×Закрыть

Какие разделы математики нужны программисту?

Всем привет. Хочу спросить у сообщества и у тех, кто опытнее меня.

Знания математики нужны всем программистам, вот только какие разделы нужны именно под
конкретный тип ПО. Вот допустим что нужно знать для того чтобы, программировать игры, ИИ, big data, научный софт и т.д.

Хочу понять что вообще нужно знать. Интересно почитать ваши отзывы.

Спасибо.

LinkedIn

Лучшие комментарии пропустить

Обычным программистам математика нужна на уровне 4 класса средней школы. Всю остальную математику за них делает компьютер. А вот по мере роста программиста в инженерную специализацию [что большинству не грозит] — он уже сам будет знать, какая математика ему надо. Уверяю, математика 3D графики отличается от математики волновых преобразований и от математики сжатия данных.

Я больше скажу, память человека так устроена, что всё что не нужно — забывается. Учить тому что «может быть понадобится» — означает бесполезную безвозвратную трату времени. Даже тем, кому понадобится — придётся учить заново.

Кто не верит — скажите чему равен тангенс 90°

математика відноситься до програмування так як поезія до каліграфії.

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

ДОУ не подвел.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

По-моему, все зависит от отношения человека к математике. Допустим, один не знает ее и при этом работает прогером, и плевать он на свое незнание хотел. Даже будет кричать направо и налево — мол, в программировании метематики нет. А другой будет сидеть и комплексовать: мол, как это я не знаю математики, да меня никуда ж в софтдев не возьмут. Аналогично и для, кто знает: либо гордятся и кичаться своим знанием, либо реально смотрят на вещи и в зависимости от обстоятельств пользуются либо нет своим знанием.
Как говорится: лучше знать да молчать, чем не знать и кричать)

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

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

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

Использование математики для обучения логичности и последовательности мышления мне напоминает «анекдот»:
— я начал изучать иностранный язык, но у меня оказалась плохая память, очень плохо запоминаю иностранные слова. Чем бы мне ее потренировать, игрой в шахматы или в бридж?

Шановні колеги, за коментами, страшніша за математику чума, холера, інквизиція ... Але дискусія триває за «різне» і по — різному. Для уніфікації питання, будь-ласка подивіться на слайди www.slideshare.net/...i/matemathiqa-1 і скажіть: скільки тут математики або іншого? Чи зрозуміло? Я потім спробую звести процедуру (оцінку) до спільного знаменника. Дякую.

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

Вот я помню написал в прошлом году ко мне человек, мол хочу заниматься у вас Эрлангом, интересуют математические проекты и т.д. и т.п. Ну я взял его на работу с радостью. Посадил его развивать наш UPL компилятор для генерации бизнес-правил тарификации. Так через пол месяца он нечал интересоваться функциями высших порядков, у которых в сигнатуре присуствуют функторы и спрашивать не являются ли всегда такие функции естественными преобразованиями в некоторой 2-категории. Пришлось выгнать мальчика с работы и отправить читать Кметта.

Ну, может, мой комментарий несколько зануден будет...
Короче; если вы собираетесь всю жизнь заниматься каким-то одним видом софтвера, то, видно, вы планируете жить плохо, но недолго. Представьте, вы бы начали в 1980-м на коболе или фортране, и так бы и фигачили... где? В какой-нибудь занюханной дыре, без возможности переместиться в более комфортное место; и у вас был бы начальник такой, что его проще застрелить чем убедить в чем-то.

Ну то есть, если вы не планируете наслаждаться своей жизнью 8+ часов в день, то можете вообще ничего не изучать, а сидеть исполнять указания; зачем вам тогда математика?

С другой стороны, если хотите понять что-то в жизни, в смысле, в том, чем вы занимаетесь 8+ часов в день, то, кроме математики, у вас инструментов нет.

Да, логика, лямбды, теория категорий, да и теория множеств тоже; теория моделей. Это если абстрагироваться от области применения. Тот факт, что этого почти никто не знает должен тем более быть стимулом — идиоты останутся далеко позади, а вы впереди в белом фраке.

Еще пять лет назад приходилось писать какие-то пособия «про монады»; сейчас их знают все (в нашей области). Жизнь продолжается.

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

Влад, вы бы вначале написали сколько и где изучали её.
Фамилии и звания преподавателей назвали б.
А потом про первую работу.
Я то в курсе, а народ может вас и не знать совсем.

И тогда народ вдохновится и пойдет по вашим стопам :)

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

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

я думал что будет более интересный ответ.
но и за этот спасибо.

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

скажем лет 5 по окончании, когда в глаза никакой математики больше не видел, не нуждался, и вот решил программист — учу!
вопрос — а почему не очередной фреймворк? не новый ЯП, не новую, для себя, технологию, область, а — математику?

я правда где-то даже записал ваш список — с чего начать.

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

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

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

Но вообще, чтобы выйти в любой серьезной науке на уровень, взрослому нужно лет десять. Тинейджерам проще; лет в 12-15 можно все это за год переварить. Но мы не тинейджеры.

Квалифицированный ответ и «адептам» и «противникам» математики )

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

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

Народ, кто что знает, о том какими знаниями математики и ЯП Python нужно обладать соискателю, который хочет стать джуном.
Заранее спасибо :)

Математика на уровне 8-го класса школы вполне достаточна что бы стать джуном.

Конкретней, пожалуйста, какие задачи нужно уметь решать?

на уровне 8-го класса школы
вывод основан на Вашем опыте?
Конкретней, пожалуйста, какие задачи нужно уметь решать?
НУ там знать табличку умножения, делить тоже не помешало бы.
вывод основан на Вашем опыте?
Да, многолетний опыт наблюдения за программистами.
НУ там знать табличку умножения, делить тоже не помешало бы.
не смешно :(
А вообще я серьезно: каким фундаментом мат. знаний должен обладать программер?

PS наблюдать != понимать && владеть информацией :)

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

PS наблюдать != понимать && владеть информацией :)
Ну расскажи мне свое экспертное мнение.

«Tell me, I’ll forget. Show me, I’ll remember. Involve me, I’ll understand»

А вообще я серьезно: каким фундаментом мат. знаний должен обладать программер?

НУ раз до тебя с трех раз недошло, боюсь рановато тебе в джуны.

Идите Вы, уважаемый, со своим личным мнением в бухгалтерию :)

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

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

не смешно :(

І дійсно. Особливо від ваших спроб побачити «підкол» та знайти глубокий сенс там, де їх і близько нема.
З «тяжкого-важкого» доводилося використовувати теорему Піфагора (це з програми якого класу? 7й, може 8й?)... і те, не по роботі, а при виборі нового монітору (вираховував довжини сторін із відомих діагоналі та співвідношення)))

P.S. і взагалі я тіпо гуманітарій, еслічьо :)

P.S. і взагалі я тіпо гуманітарій, еслічьо :)
Плиз, расскажите свою историю о «войти в IT» :)

Ага. 8-класов и прогай

ИИ, big data, научный софт

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

Понимаете что такое байт, бит? Сколько влазит в 1 байт и почему? Как быстро переводить из двоичной системы в 10-чную и наоборот? Умеете переводить числа между 4-мя основными системами счисления BIN/DEC/OCT/HEX ? Понимаете как хранится дробное число в байтах?

Еще надо by heart знать сколько максимум влазит в типы данных, чтобы не лохануться, как разработчики YouTube.

Пожалуй это самая сложная «математика» на джуна.

Понимаете что такое байт, бит? Сколько влазит в 1 байт и почему? Как быстро переводить из двоичной системы в 10-чную и наоборот? Умеете переводить числа между 4-мя основными системами счисления BIN/DEC/OCT/HEX ?
Это умею, знаю один фокус для быстрой калькуляции.
А как же комбинаторика, теория графов, теория вероятности и т. д?
Даже на отборе в тестировщики могут такую задачку дать, что офигеешь:(
имеяя гуманитарное высшее и пусть даже когда-то хорошые оценки по всем предметам в школе:(
Даже на отборе в тестировщики могут такую задачку дать, что офигеешь:(
протестировать карандаш? Почему люки круглые? Естественно я офигею.
Не надо сравнивать, эти два вида деятельности не равны и не тождественны.

Комбинаторику и теорию графов у джунов не спрашивают потому что бессмысленно, могут правда тролльнуть правилом де Моргана, но обычно не увлекаются. Теорию вероятностей бессмысленно, вот вы ЦПТ сможете применить? Или скажем 2-х мерное распределение описать? Тупые задачки типа «монетку бросили 3 раза», «в урне 4 черных шара и 6 белых, тянут 2 по очереди» в реале не применяются.

Попалась мне как-то задачка типа шифрования:
каждая буква == определенной цифре
есть уравнение типа
ЛИСА + ВОЛК = ЗВЕРИ
Надо было найти решение данного уравнения.
Не могу понять какой раздел математики мне поможет постичь эту фигню.

Это задачи на логику (во многих случаях кривую) не путать с мат. логикой и мат. анализом, и математикой эти задачи вертят как хотят, за что математики их не любят. Здесь вам помогут «решебники» по IQ и каталоги детских головоломок. Не удивляйтесь на слово «детские».
www.ozon.ru/...il/id/10652895
www.ozon.ru/...ail/id/3391382
www.ozon.ru/...ail/id/3957603
и по IQ
www.ozon.ru/...ail/id/4824737
www.ozon.ru/...ail/id/7003042
www.ozon.ru/...ail/id/6465646

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

Я не знаю зачем так сношают мозги QA, возможно для достоверной имитации максимально тупого пользователя. Но прикол в том, что когда появится реальная задача далеко не факт что такой человек со зверями в голове сможет ее осилить. Ну и прыжок QA -> Dev станет призрачным, особенно забугор.

Мой вам совет, хотите стать программистом,
Если хотите стать программистом — берите и программируйте, в первую очередь.

это может привести проблемам lurkmore.to/Быдлокодер как например секс у подростков без минимальных познаний в теории.

Как я уже ниже писал, математиги тоже бывают

lurkmore.to/Быдлокодер
Так что иррелевантно, кто хочет научиться, кто не хочет — будет осмеян.

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

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

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

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

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

Алгоритмы это тоже часть математики. Если что-то происходит в подсознании неявно не значит что не является математикой.

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

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

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

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

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

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

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

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

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

Вселенная и законы физики не меняются от точки зрения ученых.
вообще-то между Вселенной и законами физики связи нет ВНЕ ума ученых и вне формализованных ее моделей :) сами ученые это прекрасно знают.
так же как современные математики улыбаются фразе своего коллеги жившего веков 6 тому: «Природа говорит с нами языком математики!»

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

Все ответы на лурке, при чем тут математика и т.п.

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

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

О, вопрос уже обсосан и закрыт.

Хоть мне и нравиться лурка, но часто она очень спорна и предвзята «Быдлокодеры, ориентированные на веб, заняты в основном поддержкой таких „приложений“, как дорвеи и дейтинги. В этом случае их любимым языком (ты знал, ты знал!) оказывается PHP, позволяющий писать скрипты сразу руками, без использования моска, вываливая программный код с упорством роторного канавокопателя.»
Я бы в характеристики быдлокодера внес своеобразных стиль написания кода, вне зависимости от языка. В стиле, «что вижу, то пою».

Классный QA обычно крут от рождения 2 кликами закрэшит любую аппу.

Да, я в курсе joyreactor.cc/post/291604 сам в 6-м классе засунул циркуль в розетку, после чего понял, что QA это не моё.

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

для прохождения собеседования с вопросами на логическое мышление проработайте
psi-logic.shadanakar.org/test/test.htm

и возможно
Логическа игра — Льюис Керолл
Введение в современную логику — Гладкий или подобный учебник о современной логике для нематематических специальностей

Спасибо за тест, прошла.
Результаты по наборам тестов — средние, тест на IQ — 127.
Как Вы с читаете, чтобы конкурировать «на равных» со специалистами, в которых тех. образование, нужно ли в резюме указывать, например, информацию, что мат. знания освежила, пройдя курсы на khanacademy, результаты тестов на логику? А вообще существует ли предвзятое мнение к гуманитариям в IT-сфере?
" Результаты тестирования:
Тест Кеттела.
Всего заданий: 13.
Правильных ответов: 9 ( 69 %).
Тест Амтхауэра по исключению одного слова из пяти.
Всего заданий: 20.
Правильных ответов: 13 ( 65 %).
Тест Амтхауэра по выбору категорий.
Всего заданий: 16.
Правильных ответов: 14 ( 88 %).
Тест на логическое мышление.
Всего заданий: 30.
Правильных ответов: 26 ( 87 %).

Тест завершен. Ниже приведены результаты. Кое-какие подробности и пояснения можете прочитать здесь.

По результатам теста можно сделать такое заключение:

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

значит можете надеяться что некоторые возможные вопросы вас не поставят в тупик.

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

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

а то мне почему-то вспомнилось коменто на FB
— команда LIGA.net ищет редактора на ленту новостей. Опыт работы от 2 лет. Платим, любим, огромная классная компания.
— Куда сбрасывать резюме? подхожу идеально, живу рядом))
— Понимаете, если возникает вопрос, то, наверное, никуда)

ЛИСА + ВОЛК = ЗВЕРИ
Хорошая попытка, Оксана, но нет
А как же комбинаторика, теория графов, теория вероятности и т. д?
если вы уже их знаете, потому что учились в профильном вузе, и преподаватели были не начетчики, а действительно Преподы — то замечательно.

если нет — то либо идите учиться, либо нарабатывайте навыки нужные для работы, и доучивайте по ситуации.

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

Иллюстрация для гуманитария к книгам типа «Совершенный код»:

Немного грамматики.
1. Помните о том, что в большинстве случаев связку «о том» можно исключить.
2. Страдательный залог должен быть избегаем.
3. Уточнения в скобках (хоть и существенные) бывают (обычно) излишними.
4. Плохо зная грамматику, сложные конструкции должны употребляться с осторожностью.
5. Что касается незаконченных предложений...
6. Тех, кто заканчивает предложение предлогом, посылайте на. Не грубости ради, но порядка для.
7. Предложение из одного слова? Плохо.
8. И не начинайте предложение с союза.
9. НИКОГДА не выделяйте слова заглавными буквами.
10. Провиряй по словарю напесание слов.
11. Метафора — это гвоздь в ботинке, и лучше её выполоть.
12. Преувеличение в миллион раз хуже преуменьшения.
13. Ненужная аналогия в тексте — как шуба, заправленная в трусы.
14. Не применяйте длинные слова там, где можно применить непродолжительнозвучащие.
15. Кому нужны риторические вопросы?
16. Маленькое замечание о повторениях, которые иногда встречаются в статьях, которые появляются в изданиях, которые и так переполнены цитатами, которые иногда затуманивают мысль, которую хотел высказать автор, о которой мы и хотели сделать это замечание.
17. Сюсюканье — фу. Оставь его лялечкам.
18. Позаботься о благозвучии фразы, у тебя ж опыта больше.
19. Небезинтересно было бы взымать штраф с безолаберных за неверное написание гласных после приставок.
20. Не следует пытаться не избегать двойных отрицаний.
21. Не ставьте два «не» подряд, если это не необходимо.
22. У слова «нет» нету форм изменения.
23. Коллеги обращения надо как-то выделять.
24. Которые являются придаточными предложениями, составлять надо правильно.
25. Мы хотим отметить, что менять лицо, от имени которого ведётся изложение, автор этих строк не рекомендует.
26. Заканчивать предложение местоимением — дурной стиль, не для этого оно.
27. Если неполные конструкции, — плохо.
28. Правило гласит, что «косвенная речь в кавычки не берётся».
29. Числительные до 10-ти включительно лучше писать прописью.
30. Склонять числительные можно сто двадцать пятью способами, но только один из них правильный
31. Сдержанность изложения — всегда абсолютно самый лучший способ подачи потрясающих идей.
32. Будьте более или менее конкретны.
33. Слов порядок речи стиля не меняет?
34. Это тебе, автор, (нельзя прерывать повествование в неожиданном месте) понятно о чём пойдёт дальше речь, но пожалей людей, не вынуждай перечитывать.
35. Применяя деепричастный оборот всегда выделяйте его запятыми.
36. Ставьте правильные чёрточки-тире длинное, с пробелами, а дефис чуть — чуть покороче, без пробелов.
37. Ответ отрицательный на вопрос о том, ставится ли вопросительный знак в предложении с вопросительной косвенной речью?
38. Повторно повторять все повторяющиеся однокоренные слова — это тавтология — лишнее излишество.

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

а уж сможет ли хороший журналист Маркес, Твен, Толстой стать всемирно известным писателем...
но вы пока и не журналист, верно?

Я к журналистике отношусь так, как тестировщик к программированию :)

Баг тоже нужно уметь грамотно и внятно описать, чтобы не получить closed по причине incomplete, а затем по шапке от своего лида.

А есть такое же, но про английский язык?

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

Лоханулись даже не разработчики, а BA, который описывал требования. Разработчику пофиг, если надо хоть квинтиллион (10^30) запилит.

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

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

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

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

Математика на рівні школи. Якщо володієте англійською, то можете довчити прогалини на хан акедемі www.khanacademy.org/math

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

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

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

а так как у вас его нет, то
либо получите его
либо читайте дальше что нужно

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

mathematics, the science of structure, order, and relation that has evolved from elemental practices of counting, measuring, and describing the shapes of objects.

www.britannica.com/...194/mathematics

Структура? Порядок? Отношения? Не, в программировании ента не нужОн!

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

Школьная математика
1. Арифметика: найти сумму арифмет. прогрессии
2. Тригонометрия: пересчет угла между двумя точками (пример: глаза смотрят на курсор)
3. Вычислительная геометрия: Определение пересечения отрезков \ областей (посчитать когда курсор который тащит что-то заходит в опр. область)
4. Начала мат. анализа: вопросы Θ-оценки алгоритмов

Университетский уровень
1. Дискретная математика: корректно отрицать выражения, битовые операции, теория графов (логика под if, бит-маски)
2. Линейная алгебра: матричные операции, системы линейных уравнений (повороты изображений)

Т.е. по моему мнению плюсы в знании математики весомые, однако в университете кроме дискретной математики и линейной алгебры дают еще тонны (МатАн, ФункАн, ДифУравнения, ТФКП, Теория управления, ...) различных курсов, которые весьма косвенно относятся к программированию.

Университетский уровень
1. Дискретная математика: корректно отрицать выражения, битовые операции, теория графов (логика под if, бит-маски)
2. Линейная алгебра: матричные операции, системы линейных уравнений (повороты изображений)
Вовтузитись два семестри в універі -> забути -> коли треба загуглити за 15 хв — “бесценно”

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

Загуглить что?
в даному випадку
повороты изображений
як побудувати матрицю повороту і як помножити вектор на матрицю. Ітого два абзаца текстової інформації і дві формули

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

картинку скейлить
вам про бікубік і ланкоз інтерполяції теж в універі розказували? Мені на приматі — не розказували

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

Примат, інтерполяція була, кубічні сплайни були. Навіть писали щось, якщо мене пам’ять не підводить.
Інша справа, що написання бікубіку для картинок, vs. взяти його с якогось imagemagick, може зустріти деяке нерозуміння з боку керівництва проекту.

Ну і Ланцош він всеж таки.

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

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

очередной список ни ап чем.

где примеры этой помощи, а не удовольствие от использования своих знаний?

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

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

По поводу ваших вопросов, да, всего понемногу, кроме тендеров.

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

и о втором моменте — а у вас был выбор — НЕ изучать математику?
или вместо нее — прослушать курсы по чему-то другому, специализированному?

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

поэтому этот вопрос и неверен. он в действительности представляет собой два независимых вопроса:
1 куда пойти учиться на программиста? а после выбора — какие разделы изучать абы сдать сессию, а какие углубленно, чуть больше чем преподают.
2 стоит ли профессиональному программисту (то есть тому кто программирует за деньги) тратить время, сколько и на какие разделы математики?

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

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

Я учился на специальности прикладная математика, у нас было 50/50 программирование и математика + обязательный минимум (деловой украинский, культурология, ...), сопромата не было.
Да, и я работал с 1-го курса на пол ставки программистом.

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

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

Да, и я работал с 1-го курса на пол ставки программистом.
важный момент :)

частенько, в биографии тех кто говорит о пользе математики есть интересные эпизоды:
первую программу написал в 12 лет, под руководством отца, кандитата тех. наук
первый интерпретатор шуточного ЯП в 14.
заработал первые деньги в 16, оптимизировав преобразование Фурье, для софта лаборатории друга отца, ...

то есть как в шутке истории миллионера:
я начал с продажи яблок. сэкономил на обедах и купил 1 штуку. продал, доложил, купил и продал 2. после того как продал 5 ящиков, умерла бабушка, и осталила в завещании мне два дома и ферму племенных коров.
Продажа яблок — вот ключ к успеху!

практика показывает что без диплома визу не дают
есть такое дело.
каждый должен для себя решать.
программисты в области финансово-экономического ПО нередко получают второе высшее — экономическое.
Программист с знанием предметной области — очень дорог.
см. вакансии Data Scientist или подобные в долине
всякие есть. почитываю ЖЖ одного нашего, живет и работает в Швейцарии. в команде разработчиков компилятора Scalа. С математикой у него конечно давно отношения отличные.
с современной в смысле.
Но, как-то написал:
перебирал тут свои файлики, и нашел свой черновик — «О принципах безопасного программирования». Почитал, экий я толковый то был, в 15 то лет!

И когда такой человек говорит что математика программисту нужна — верю.
Что ему она была не просто нужна, а — любима, как уже написали.
А нужна и любима — это все же разные вещи.

вакансии Data Scientist
Хотя я поддерживаю то, математику лучше знать, справедливости ради надо добавить, что data scientist — это все же не программист. Это скорее статисткик с базовым программированием. Часто туда идут как раз после ph.d. по статистике, то есть это самые настоящие математики. Как иногда шутят: «Data scientist is a statistician who lives in San Francisco».

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

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

Скажіть, а в якій компанії потрібен бодай такий перелік? Це незвично і не схоже на ... опосередковане бачення.

Я в основном работал с интерфейсом и логикой iPad/iPhone приложений, поэтому много работы с координатами и картинками, систему линейных уравнений вспомнил когда надо было сделать алгоритм для выравнивания сфотографированного под углом к камере листа бумаги, Θ-оценка нужна на собеседовании в гугл, например

систему линейных уравнений
Жесткую?

Да, собственно решается методом Эйлера. Задача построить матрицу которая приведет 4 точки которые пользователь выбрал на экране в 4 точки краев viewport’а. Сейчас кажется что должно бы получаться 8 уравнений и 9 неизвестных, но тогда я помню что система была с одним решением

И почему я ожидал что-то подобное.

И почему же вы ожидали что-то подобное? :)

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

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

Θ-оценка нужна на собеседовании в гугл, например
да, на собеседованиях много чего нужно.

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

так вот, — для «познакомиться» с математикой для прохождения собеседования в первый день может и будет достаточно полгода упорного труда.
а вот чтобы пройти второй день — нужно во-первых легко владеть computer science, во-вторых иметь практический опыт решения подобных задач.
например по пересказу, один из упомянутых соискателей в первый час понял что на обычном ЯП создать работающую программу не успеет. так как ограничений в используемых ЯП не было, он на OCaml наваял интерпретатор, для на ходу придуманного недоDSL для генерации данных в виде а-ля json... которые потом легко обрабатываются конечной программой на Python.

давайте прикинием расстояние от знаний уровня «поговорить о Θ-оценке» и знаний И навыков для прохождения такого второго тура собеседования.

Не совсем понимаю о каких уровнях идет речь, там есть по телефону интервью и онсайт, по телефону довольно таки тривиально пройти, а онсайт как повезет, но программистов по крайней мере сейчас самих на 6 часов никто не оставляет, идет подряд 6 интервью, и на каждом желательно решить 1-2 различные задачи. Могут попросить и теорему доказать.

Второй вопрос что гугл это такая контора. В фейсбуке например или Apple достаточно будет и время работы алгоритмов знать (мое ИМХО)

Не совсем понимаю о каких уровнях идет речь
я тоже не понимаю как можно брать на работу за бла-бла-бла о времени работы алгоритмов.
по «знакомству» с математикой.
В фейсбуке например или Apple достаточно будет и время работы алгоритмов знать (мое ИМХО)
подозреваю что именно что ваше ИМХО, и там тоже для прохождения собеседования явно не достаточно знаний для поговорить о Θ-оценке.
программистов по крайней мере сейчас самих на 6 часов никто не оставляет
чел проходил собеседование в швейцарском офисе гугла.
упомянутый вами способ — тоже не проще :)

Я был лично на собеседовании в швейцарском офисе гугла не ранее как пару месяцев назад, самих вас никто на 6 часов на одно задание не оставит по моему мнению
1. Committee не будут принимать решение о приеме по одной задаче, т.к
1.а Она одна, хотелось бы посмотреть различные.
1.б Нет фидбека личного от интервьювера о вас (а это 50% успеха).
1.г Во многом интервьюверы смотрят на то как вы справляетесь с задачей, вы всегда должны проговаривать что вы собираетесь сделать, уточняете у них условия, на подготовке к интервью говорят что если вы молчите 5 минут то это очень плохой знак для интервьювера.
2. Вы не можете находиться в кампусе без сопровождающего.
3. Вы должны пообедать — 6 до обеда или после обеда не выходит взять.
4. У вас всего две доски и маркер для написания решения.

В целом идея решать на интервью одну задачу 6 часов идет полностью в разрез со всем что я слышал на подготовке

НО

может ваш знакомый шел не на позицию Software Engineer?

может ваш знакомый шел не на позицию Software Engineer?
знакомый знакомого :)
может.
Я был лично на собеседовании
интересно было бы услышать как много математики в интервью и задачах, и какой именно.

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

Привильно я понимаю, что знаний вышеописанных разделов математики, достаточно, чтобы быть конкурентным на позицию джуна? Разумеется знания высокоуровневого языка и БД — само собой.

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

теория должна отскакивать от зубов
какие именно разделы нужно знать «by heart», чтобы пройти тех. собеседование?

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

1) базовые операции, типы данных, приоритет операций (когда туго идет собеседование)
2) коллекции, их иерархия, основные типы, чем ArrayList лучше LinkedList, на КАЖДОМ собеседовании
3) базовый SQL и ТРБД на уровне что такое РСУБД, что такое таблица, индекс, первичный ключ, внешний ключ, суррогатный ключ. Спроектируйте таблицу Сотрудник-Отдел, напишите простейшие запросы select, update, insert.
может быть триггеры и хранимые процедуры, если сапорт какого-то проекта с большим количеством логики на БД.
4) Базовый JS, jQuery, CSS от случая к случаю, сильно зависит от проекта. Есть проекты где 90% активности на фронт-енде, есть куда не заглядывают годами. Тут надо смотреть на вакансию.
[4] noSQL потихоньку начинает проникать, имейте ввиду
5) хеш-мапы, хеш-функции, связный список, каверзные вопросы. Я ходил где-то на 13 собеседований на джуна за свою жизнь и на КАЖДОМ из них был этот вопрос.
6) базовая многопоточность на примитивном уровне, в основном схематически, т.к. основная часть реализации все равно native спрашивают 50/50
7) JDBC — напишите коннект к БД, пройдитесь по RS — 50/50
8) теория о веб-контейнере, эталонные реализации, какого HTTP-метода нет в реализации HttpServlet мягкий переход к вопросу 9
9) Servlet/JSP, taglibs, немного устаревшая технология, но вопросы еще задаются.
10) IDE/Системы сборки/контроля версий — знаете или нет. Как правило не зверствуют, но знания — жирный плюс.
11) Spring IoC, какие бывают контейнеры, какие виды конфигурации, зачем вообще надо. Hibernate тоже общие вопросы, как смапить класс-таблица, иерархия-таблица, HQL и Criteria, как правило тоже не зверствуют и про кеши на джуна не спрашивают.

Last but not least — английский, где-то 80% вашего успеха, отлично владеете и вас возьмут, даже если завалили многое на джуна.

Вас могут спросить ВСЁ из списка или 1-2 пункта, но я бы не советовал полагаться на удачу, на проекте все равно надо будет делать.

Не за что, как правило trainee за 4-6 месяцев учебки/стажировке на проекте все это осваивают и становятся джунами де-факто. С рынка джунов сейчас фактически не набирают.

все так. 3 года назад еще про паттерны спрашивали

Джуну это все смутно довольно нужно, я бы первые пол года на это не делал упор

однако в университете кроме дискретной математики и линейной алгебры дают еще тонны (МатАн, ФункАн, ДифУравнения, ТФКП, Теория управления, ...) различных курсов, которые весьма косвенно относятся к программированию.

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

Единственный нормальный ответ который я тут прочел. Остальные из себя психологов строят. Вопрос же был простой. Неужели трудно ответить конкретно. А тебе Mike спасибо за ответ.

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

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

Если лень писать полноценную можно написать анонимную функцию — это все , что понадобиться из лямбда.

вряд ли это можно назвать применением лямбда исчисления ;)

Конечно, вот оно и не надо 99.9% програмеров. А оставшиеся доли процента, это те, кто более науками занимаются, чем програмят.

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

Например, там каждый день программируют алгоритмы решения жестких систем.

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

Это на аутсорс к дизайнерам-экспертам :)

только начиная с семимерного

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

Под линиями люди чаще всего подразумевают отрезки, а не прямые.
почему прямые? почему не кривые?

Кривые люди обыно называют кривыми, а линиями отрезки прямых.

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

А что были задачи, где нужна была и ты отказывался от них?

не было таких задач, ну вообще :) Возможно, если бы был нормальным математиком — увидел бы такие задачи или решения

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

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

ДОУ не подвел.

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

перефразируя известное замечание о демократии:
хочешь убедится в ненужности а то и вредности преподавания математики — пообщайся с ее адептом нематематиком.

нужность математики отстаивают те, кого ею мучили
Меня ею не мучили, она мне нравиться. Но я на позиции тех, которые считают, что 99.9% программистов математика не нужна. Нет вакансий таких (точнее 1 на 1000).
И если нет тяги к математики, то не фиг тратить на нее время, которое можно более успешно потратить, усилив знания по программированию и получению высокооплачиваемой работы.

А вообще, те, кому математика нравится, не задают таких вопросов — надо или нет. И их как раз хватает на те 0.1% оставшихся вакансий.

Скажем так. У условного PHP/Java/C# программиста, который не знает математику, есть выбор: Ciklum или Luxoft. Программист, который знаком с математикой, алгоритмами и численными методами, может выбирать между Microsoft и Google. Да, это правда, что никто не заставляет нашего условного PHP/Java/C# разработчика хотеть работать в Microsoft или Google — в таком случае ему действительно можно ограничиться знаниями фреймворков и технологии.

Конкретно в моем случае, я с равной вероятностью рассматриваю проекты в области разработки очередного корпоративного софта на несколько формочек, мобильных приложений для доставки еды и проекты, связанные с игровыми механиками, математическим софтом, софтом для трейдинга, банков (оценки рисков, моделирование), а также разработкой и улучшением алгоритмов data mining / NER / NLP. Да, для этого нужно пару лет «потратить», как вы выразились, но каждый сам выбирает, что ему делать и нужно ли ему это :-)

Программист, который знаком с математикой, алгоритмами и численными методами, может выбирать между Microsoft и Google.
а думаю «знакомство» не поможет :)
корочка MIT — да. а «знакомство» — это для вот поговорить на форуме :)
Да, для этого нужно пару лет «потратить», как вы выразились,
потратить можно и больше. вы же не считаете что потраченное время гарантирует результат?
скажем — пару лет потратил человек у нас на матан, и опа, результат таков же как пару лет учебы в MIT?

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

Конкретно в моем случае, я с равной вероятностью рассматриваю проекты
верю что вы рассматриваете, если предлагают.
у меня один прошлых шефов брал любые заказы — «Главное ввязаться в драку!» был его девиз.

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

то есть — вы привели аргумент указывающий на вашу «несерьезность» :)
либо, если о своей компании — на ее агроменный размер и оборот.

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

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

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

а пока да, и вы меня никак не удивили :)

У меня не было цели удивить вас. Да и называть человека, получившего математическое образование, «адептом математики», как минимум, не красиво, а как максимум, глупо.

А во поводу статьи-рассуждении, то такие статьи уже давно написаны, вам сюда.

У меня не было цели удивить вас
так и у меня такой не было.
Да и называть человека, получившего математическое образование
а какая разница какой у вас диплом?

есть ваши посты.

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

из моей коллекции, уже постил как-то, но не посылать же рыться в моих постах :)

чел в Яндексе работает. помнится в команде лингвистического анализа:

plakhov: Я закончил мехмат примерно 11 лет назад. Не знаю, как сейчас, но в 2002 году весь наш выпуск заботил совершенно практический вопрос: зачем стране 400 математиков в год, и чем мы все будем заниматься через несколько месяцев? Понятно, что какие-то варианты были тогда, как есть они и сейчас, но ощущение глобальной недосказанности присутствовало.
...
Часто встречаю заклинания вида «математика закаляет ум» и им подобные. По-моему, это брехня и wishful thinking. Да, выпускники мехмата в среднем умнее произвольно взятого жителя Мск. Но основные причины тому — вступительные экзамены и первая сессия, то есть исходный отбор, а вовсе не последующее обучение. Ум закаляет первое полномасштабное столкновение с реальностью (aka «попробуй применить свои знания с пользой, или будь уволен»), а вузовская математика это обучение плаванию на суше. Возможно, пяти-шестилетние занятия и прививают какой-то особенный стиль мышления, но я бы сказал, что он очень неестественный и местами вредный (отвращение к грубой реальности, вера в «короткий путь», путаница между существованием и конструируемостью, склонность к тавтологическим манипуляциям с исходными данными). От него лучше избавляться.

Пожил я немного, осмотрелся, и увидел, что на самом деле у математики много разновидностей.

У экономистов математика своя. Многие формально допустимые операции «запрещены», и что запрещено, а что нет, не сразу разберешь. Скажем, вместо слова «производная» в учебниках пишут «предельное что-то там»; зачем? А чтобы ложные ассоциации не мешали, не было искушения записать всё формулами и начать применять к ним знакомые преобразования, не нужно вот здесь вот этого вот.

У физиков своя. «Разрешены» некоторые формально недопустимые операции, например, интеграл антисимметричной функции от минус до плюс бесконечности заменяется на 0, даже если он расходящийся; на самом деле, определенные основания для этой шокирующей операции есть, но они вслух не проговариваются и по своей сложности превосходят всё, что нам рассказывали вокруг неё. Вообще, кажется, математика используется в физике не только (а в последнее время, кажется, и не столько) как инструмент, но и как источник вдохновения. «Не совсем понятно, что эта формальная операция значит в действительности, но смотрите, получается, что может быть и так, а строгость, если что, потом ещё наведем».

Computer scientist’ы вообще соорудили ещё одну науку о тех же математических объектах ...

Всё это подозрительно как-то, как это математик может быть несколько, не обманывают ли все эти еретики и нас, и сами себя?

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

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

Пара «задач» на понимание того, о чём идет речь.

«Задача» 1: Всегда ли процедура «сложить результаты нескольких измерений и поделить на их количество» осмысленна? Осмысленна ли она, если измерение — это среднегодовой доход пойманного на улице человека? Если нет, то на что её заменить?

Великую и ужасную центральную предельную теорему на практике многие применяют так: «если сложить много случайных величин, то сумма окажется нормально распределенной».

«Задача» 2: придумайте «жизненный» пример ситуации, в которой ЦПТ опасно понимать как «если кучу всего сложить, то получим нормальное распределение».

«Задача» 3. В симуляторе, например, бильярда расчет идёт по шагам; скорость шарика умножается на дельта тэ и прибавляется к его текущим координатам. Если при этом шарик попадет в «запрещенную конфигурацию», смотрим, с какими объектами он пересекся, и меняем его скорость соответствующим образом. Правда ли, что это хороший способ моделирования? Что тут может пойти не так, и что можно улучшить?

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

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

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

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

О пользе математического образования

Вопрос — если самим математикам невозможно охватить весь существующий спектр математик:
то нужна ли математика программисту, учитывая ограничение физических ресурсов мозга?

многие применяют так: «если сложить много случайных величин, то сумма окажется нормально распределенной».
ЦПТ опасно понимать как «если кучу всего сложить, то получим нормальное распределение».
Какие то разные формулировки, не кажется ? :) и де независимость ? Что то не то. Да и ЦПТ надо уметь доказывать :) Помогает вспомнить асимптотику.

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

И не надо охватывать «весь спектр науки», на это и вправду 1000 лет не хватит, а надо охватить весь спектр методов, которые дают возможность РЕШИТЬ поставленную ЗАДАЧУ.

многие применяют так: «если сложить много случайных величин, то сумма окажется нормально распределенной».
Я когда-то с таким сталкивался когда увидел индусский рандом в коде «RANDOM = (rand() + rand() + rand()) / 3;» А как мы знаем согласно ЦПТ такое распределение будет гораздо ближе к нормальному чем к равномерному и слово «рандом» уже не совсем применимо.
А как мы знаем согласно ЦПТ такое распределение будет гораздо ближе к нормальному чем к равномерному
А на доказательство можно взглянуть? А то гложут сомнения.

Это следствие из самой ЦПТ.

Неформально говоря, классическая центральная предельная теорема утверждает, что сумма n независимых одинаково распределённых случайных величин имеет распределение, близкое к N(n\mu, n\sigma^2 ). Эквивалентно, \bar{X} имеет распределение близкое к N(\mu,\sigma^2/n).

Взято отсюда: раздел «Замечания» 1-й пункт. ru.wikipedia.org/...дельная_теорема

ЦПТ доказывается здесь. ru.wikipedia.org/...о_непрерывности

Да, странно что у нас в курсе ТВ такую теорему совсем не давали..

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

Та 100% там будет нормальное распределение, пусть не гложут :). До сих пор над кодом ржу.

офтоп: Томас, ответь во вконтакт, дело есть. — Олег

:)))))))))))) Я думал индусский код это выдумка. Этот код надо запомнить :)))
З.Ы. все равно ближе не будет :)

Боян, но все же.
uint i;
...
if (i.ToString().Length == 1)
{
...
}
Не сразу можно понять, что в этом коде просто-напросто выполняется проверка 0 <=i <10. Алгоритм достаточно прост: выполняется преобразование i в строку, после чего вычисляется её длина. Если число больше 9, то его десятичная запись содержит больше одного символа. Поскольку отрицательные числа переменная типа uint содержать не может, то проверку успешно проходят лишь числа от 0 до 9. Строка же, полученная из отрицательного числа, состоит как минимум из знака ’-’ и одной цифры, поэтому проверка справедлива и для знаковых целых (int). Алгоритм ресурсоёмок, неочевиден, и не поддаётся сопровождению даже теоретически.

Больше можно найти здесь: lurkmore.to/Индус

Фишка в том, что часто такой код пишут совсем не индусы, а вполне себе европеоиды. А индусы разрабатывают такие продукты как Матлаб.

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

что же до приведенного отрывка, то мнение plakhov’а в сути совпадает с моим, хотя у меня напрочь нет математического бэкграунда в сравнении с его.

а надо охватить весь спектр методов, которые дают возможность РЕШИТЬ поставленную ЗАДАЧУ.
выучите фреймворк за день. тогда обсудим сколько времени нужно затратить на изучение даже специализированного мат аппарата, когда в нем возникнет нужда.

я вот в универе теорию категорий не учил а теперь надо но учить в падлу

в мире современного ФП — обязательная фича.
я о Haskell и Scala

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

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

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

Ага, теория конечных автоматов — обязательная фича для ПП, теория множеств — для SQL (бггг), а лингвистика — для разговорного английского.

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

P.S. личное впечатление от Скалы — знание заскоков JVM на первом месте, с большим отрывом.

Буду троллить, серьезно писать уже сложно. Обязательно нужны программистам функциональный анализ и топология.

Совершенно не обязательно. Но тогда это не программист, а кодер.

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

Это программист с маленькой, а Кодер с большой.

Чуваки, пока троллинг унылый получаетсо.

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

Так вот. Програмисты, несильно шарющие “матан” в более выгодном положении, чем я, который не сильно шарю програмирование, зато шарю “матан”. Они просто пользуются уже готовыми функциями и моделями, банально что то типа “значимость меньше 0,05 — зашибись, больше — херня”. И похер какой там критерий использовался и т.д.

Зато, пару лет назад, я выл учась програмить, до сих пор мурахи по коже от безумия типа “х=х+1” :))

З.І. За что люблю язык “R”, бо его матрики клепали, там “х<-х+1” :)))

А зачем програмерам математика выше школьной ?
Чтоб раскрыть скобки в выражении !(A&B)

Хотите 3 операции вместо двух? А зачем?

Зачем — вопрос не ко мне, так как берут и раскрывают сами

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

Что лучше, закрывать в уме правильно раскрытое или неправильно раскрытое?

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

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

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

Ну серьезно, просто подумать головой. Даже закон де моргана помнить не нужно (хотя это ускоряет)

просто подумать головой
Вы прямо чего-то невозможного требуете.

Когда смотришь джунские PR-ы, если видишь что рефакторили логическое выражение, 95% что накосячили.
Когда пытаешься наводящими вопросами выяснить что они пытались сделать, лупают глазами как идиоты, когда даешь ссылку на википедию, обижаются в стиле «я вообще-то Java Software Engineer а не ботаник, зачем ты меня грузишь своим матаном?»

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

Я не нанимаю, а работать приходится с чем дают.

Прикольно у вас. За дверьми толпа джунов, а работаете с клоунами.

Я Software Engineer, а не наниматель/увольнятель. Кому надо, и кто за это получает деньги, пусть этим и занимается.

Тогда остается работать с тем, что есть и не возмущаться их незнанием.

С чего вы взяли что я возмущаюсь?

Когда пытаешься наводящими вопросами выяснить что они пытались сделать, лупают глазами как идиоты, когда даешь ссылку на википедию, обижаются в стиле «я вообще-то Java Software Engineer а не ботаник, зачем ты меня грузишь своим матаном?»

Не вижу тут возмущения, просто делюсь своим опытом

лупают глазами как идиоты
Ну меня вот это смутило, показалось, что возмущаешься.
А так тебе то, что что лупают, это те кто набрал, пусть разгребаются.
З.І. За что люблю язык «R», бо его матрики клепали, там «х<-х+1» :)))

x=0,1 для примера? или я тормоз?

или я тормоз?
17 грудня 2014 22:10

Точно тормоз

математика відноситься до програмування так як поезія до каліграфії.

ночь пагода сады фонарик
бумажный светит вдалеке
не наливайте больше блоку
саке
©

Любому программисту must have:
Асимптотика/экстремумы чтобы понимать что такое O-нотация и уметь оценить алгоритм.
Теория множеств — для того чтобы писать SQL без боли.
Базовая комбинаторика — очень много алгоритмов построены на комбинаторных оптимизациях.
Теория автоматов — очень часто встречаются при сложном парсинге, биллинге, процессинге и т.п.
Теория графов — Комментарии излишни.
Базовая мат. логика ~ Законы де Моргана — кто не может упростить выражение в if, тому пора купить билет до Бангалора в один конец.

Если гейм. дев то еще и векторная и линейная алгебра до кучи.

Это минимум и он элементарен и может быть выучен гуманитарием с нуля максимум за месяц.

А дальше, уже зависит от специализации и опыта т.к. есть очень много разных областей знаний, где-то нужна регрессия, где-то матанализ, где-то machine learning, где-то ген. алгоритмы.
Суть в том что и в спец. областях математики можно и не быть экспертом и использовать тот же SVM ( support vector machine ) как черный ящик с готовой реализацией.

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

Любому программисту must have:
Теория множеств — для того чтобы писать SQL без боли.
Можно подумать, всем нужен сиквел))
Любому программисту must have:
Все таки «must have» и «нужно бы знать» — это немного разные оттенки.
Асимптотика/экстремумы чтобы понимать что такое O-нотация и уметь оценить алгоритм.
В мире многопоточных вычислений, знания классической теории не особо нужны прикладному программисту (экспоненциальную сложность от линейной можно и на глаз отличить), но хуже от них не будет.
Теория множеств ... Базовая комбинаторика ... Теория автоматов ... Теория графов
Это все так же из области лучше иметь чем не иметь. Еще важно понимать __на каком уровне__ необходимо знать все эти области.
лучше иметь чем не иметь
Лучше жить с половыми органами чем без. Конечно, можно жить и без них, но лучше не надо.
Лучше жить с половыми органами чем без. Конечно, можно жить и без них, но лучше не надо.
Хм... хорошая аналогия. Особенно если расскажите (по крайней мере себе):
Почему лучше жить с половыми органами чем без? И почему можно жить и без них, но лучше __не надо__?
Как по мне, аналогия в полной мере отображает почему в ИТ так часто «носятся» с математикой и задачками на алгоритмы :)

Сильно гиперболизирована метафора.
Точнее сравнить с презервативом.

Из всего перечисленного, must have только"Базовая мат. логика ~ Законы де Моргана"
Все остальное — «будет плюсом».

Я ничего этого не знаю, мне это не мешает получать синьйорскую зп, так что утверждение — ложно.

Хочу понять что вообще нужно знать.

Бином Ньютона в первую очередь

Вот допустим что нужно знать для того чтобы, программировать игры, ИИ, big data, научный софт и т.д.
игры — в первую очередь нужно знать как работает железо на нижнем уровне.
ИИ — поднажать на функциональное программирование. с примерами реализации ИИ алгоритмов
big data — инженерию распределенных hi-load систем
научный софт — знать азы науки, научной методологии, чтобы понимать речь научных работников, которые и будут ставить задачу. может быть, в зависимости от области, нужно будет копнуть вычислительную математику.

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

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

игры — в первую очередь нужно знать как работает железо на нижнем уровне.
Unity3d/XNA/Java game разработчики смотрят на вас с недоумением.

то есть и это за них написали, и заоптимизировали.

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

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

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

Обычным программистам математика нужна на уровне 4 класса средней школы. Всю остальную математику за них делает компьютер. А вот по мере роста программиста в инженерную специализацию [что большинству не грозит] — он уже сам будет знать, какая математика ему надо. Уверяю, математика 3D графики отличается от математики волновых преобразований и от математики сжатия данных.

Я больше скажу, память человека так устроена, что всё что не нужно — забывается. Учить тому что «может быть понадобится» — означает бесполезную безвозвратную трату времени. Даже тем, кому понадобится — придётся учить заново.

Кто не верит — скажите чему равен тангенс 90°

Кто не верит — скажите чему равен тангенс 90°

<?= tan(deg2rad(90)); ?>

Нема за що ))

И скока получилось?
(⌒_⌒;)

Со школы помню — противолежащий / прилежащий катет прямоугольника. Несложно представить, что для 90° треугольник вырождается в прямую, длина прилежащего катета = 0, «что угодно» / 0 -> стремится к +бесконечности.

Это так сложно? В профессиональной жизни занимался то сетями, то эктерпрайзом, геометрия не использовалась.

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

теперь не буду, спасибо.

+1, вспомнилось как меня на собеседовании просили решить квадратное уравнение. А я вот уже и не помню, потому, как лет 10 его уже не решала. По дороге домой канеш вспомнила, но на интервью родить решение это не ко мне)))

А почему люки круглые тоже спрашивали?

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

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

Так почему они круглые?
LOL. Я тоже гору Фудзи читала)))

Ну тогда еще вопрос. Сколько гномиков можно набить люками в боинг?
Черт, я ж только бутылку пива выпил и так понесло. Погда наверно.

ответ «полный боинг»?

Фиг его знает. Наверное зависит от того, как набивать. Пойду за второй пива.
Если ребром люка это одно, а если плашмя, то другое. А боинг еще лопнуть может из-за трения уже набитых.

Вопрос «сколько гномиков» — превращается в вопрос количества , если мы спрашиваем на русском.Но спрашивая на языке авторов How much — вот тут , да , можно сказать про объем боинга и , фу-фу , выкрутится «подстановкой понятий». Я желаю переводчикам теста , летать самолетами с гномиками за штурвалом , читая о семантике , десигнатах и сигнификатах .

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

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

Чтобы катить можно было.

Откройте для себя треугольник Рёло.

Да ладно ! :) Запрогали б пошурику :)

математика нужна на уровне 4 класса средней школы
prntscr.com/5hwd6h
Вот кто прав?

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

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

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

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

суть в способе мышления.
Что за способ мышления? Можно конкретно?)
Все люди мыслят по-разному или программисты все мыслят одинаково.Мне не понятно)
Что за способ мышления? Можно конкретно?)
на примере:
Все люди мыслят по-разному или программисты все мыслят одинаково.
здесь мне понятны только слово «все», в его значении — «каждый элемент множества»
остальные слова — могу трактовать только используя эмпирические знания.

посему чтобы разобраться вначале формализируем процесс абстрагирования

ВСЕ элементы множества Л м Рз
ВСЕ элементы множества П м Од

где м — вид связи элемента с какой-то характеристикой
и
1 Каждый П является Л
2 Рз это НЕ Од и Од это НЕ Рз
(НЕ — строгое, то есть устанавливающее полное соотношение, а не мягкое — всего лишь указывающее на различие)

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

Что такое «свойства, заданные через связь»?

Давай переведу пример на язык человеческой памяти, расскажешь кто есть ху. Пусть П — нормальные люди, а Л — едят растения. Соответственно Рз — растения, Од — мясо.

Мораль: учитесь именовать переменные и классы. Иначе ваш код — обфускация.

Что такое «свойства, заданные через связь»?
свойство — качество, признак, составляющие отличительную особенность кого-, чего-л.

связь — правило, закон соответствия свойства, качества, признака кого-, чего-л

Давай переведу пример на язык человеческой памяти
это конкретизация, т.е. процесс обратный абстрагированию :)
Иначе ваш код — обфускация.
я не писал никакого кода.
Мораль: учитесь именовать переменные и классы
в математике выработан принцип записи наименования абстракций как можно более удаленный от конкретики. меня просили привести конкретный пример.

Правда это никакой не парадокс.

Этот парадокс объясняется элементарно — ассоциативная память не имеет операции «не». Ты не можешь представить себе нечёрную ворону. Белую — можешь, равно как синюю или полосатую. Но нечёрную — никак.

На самом деле выполняется операция исключения. И-НЕ. Вполне можно понять, что такое «все вороны кроме чёрных».

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

рациональное, формальное, логическое мышление — самый энергозатратный режим работы мозга. и кстати, к тому же — самый медленный.

так что все в порядке. если годами такое мышление не является вашей работой — то у вас нормальная голова.

про спосіб, для прикладу розділ «Thinking with method»
зі «Thinking as a Science» by Henry Hazlitt.
давнє, проте досі наче цілком і повністю в дії.

всі люди мислять дуже по-різному,
всі розробники/програмісти/кодери мислять по-різному, але:
— можна виділяти для певних умов групи що мають схожі стратегії критичного мислення.
— більшість мала вчитися хоч якоїсь зі згаданих навичок типу
«думай, сука, сам, не філонь, не спирайся на ’авторитетну’ книгу, і т.д. і т.п.»

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

где люди такую работу находят — а я то как мдак то уравнения численными методами решаю то конечные автоматы дрочу

скажите чему равен тангенс 90°
шутить изволите? тангенс не определен в этой точке

А палить контору — зачем? Пусть бы на компе посчитали :)

Настоящий программист с большой буквы П (а другие тут не водятся) автоматически употребляет try-catch.

tan(90) = sin(90)/cos(90) = 8 (повернутое на Pi/2 :-) )
вот для этого и нужно учить.

Багато людей знають математику на рівні 4-го класа. Але більшості людей досить важко дається програмування.

До речі, що таке програмування? Це вміння міркувати формально. Що таке математика? Ті ж яйця, вид збоку. Виникає ситуація, коли математику нібито знати і непотрібно. Але, з іншого боку, треба мати математичний склад ума.

Математика не є додавання та множення. Багато хто з відомих математиків має з цим проблеми. Тобто комп’ютер ніяк не допоможе з математикою. Наприклад, “При яких умовах кубічне рівняння буде мати лише один дійсних корінь?” І як тут допоможе калькулятор? Тут може допомогти аналіз, гугління або користування спеціалізованим пакетом а-ля MATLAB. Подібні питання часто виникають у програмуванні. Наприклад, при яких умовах цей код не буде працювати.

Так, людина забуває ті дрібниці, ще йому непотрібні. Але навички лишаються, при бажанні їх можна легко відновити. Я ось, наприклад, став грати у бадмінтон після 20-річної перерви. Щось пригадалося :)

Також зв’язок між алгоритмічним та математичним міркуванням проаналізований у статі Д. Кнута:
philosophy.ru/.../knut/knut.html

Предварительные итоги. Что же именно мы получили из этих девяти случайно выбранных математических примеров? Перво-наперво, они подчеркнули нечто, что должно было быть очевидным с самого начала, а именно то, что не существует “математического мышления” как отдельного, изолированного понятия; математики используют множество различных способов мышления, а не только один. Мой вопрос о программистском мышлении как о чем-то отличном от математического, следовательно, должен быть переформулирован. Действительно, когда я вновь вспоминаю мои студенческие дни, я понимаю, что не носил только маску программиста во время занятий программированием и маску математика, когда посещал лекции, у меня также было множество масок, представляющих различные модели мышления, которыми я пользовался, когда редактировал студенческий журнал или когда был офицером братства и т.д..

Итак, кажется, что лучше представить себе модель, в которой люди обладают некоторым набором типов мышления, что-то типа генов в ДНК. Возможно, что программисты и математики очень похожи в том смысле, что у тех и других выделяются несколько общих типов мышления, хотя есть типы, характерные только для математиков или программистов. В этой модели различные области науки могут быть определены разными “личностными характеристиками”.

До речі, що таке програмування? Це вміння міркувати формально. Що таке математика? Ті ж яйця, вид збоку. Виникає ситуація, коли математику нібито знати і непотрібно. Але, з іншого боку, треба мати математичний склад ума.
Хз, хз, для меня математика что в школе что в заочных универах — это зазубрить 100500 формул, определений, и алгоритмов. А потом чуть ли не методом перебора использовать их для решения выданых задач.
Уже геометрия, где понятно что требуеться и видно что откуда берется — значительно ближе к программированию, чем математика аки алгебра.

Геометрия, как по мне, как раз наиболее сложный предмет, способность решать геометрические задачи тренируется с большим трудом.
«Геометрия ... , чем математика или алгебра». С каких пор алгебра и геометрия не являются математикой? Или под математикой вы понимаете матан, диффуры и уравнения матфизики?

До речі, що таке програмування? Це вміння міркувати формально. Що таке математика? Ті ж яйця, вид збоку.
неправда :)
тому що
бо в цю формулу можна поставити любу діяльність яка потребує раціонального мислення.
бо програмування це вид інженерної діяльності, а математика — то наукова дісціпліна.
Наприклад, «При яких умовах кубічне рівняння буде мати лише один дійсних корінь?»
програмісти набагато частіше мають питання — «при якому рішенні ми нарвемось на баг файрфокса за тиждень до дедлайна?»

взагалі, різницю між ідеальним программуванням та реальним легко знайти у холіварах «ООП vs ФП», «Static vs dynamic typing», «RDBMS vs NoSQL», ...

а математика від ідеального программування стоїть ще далі

Наприклад, при яких умовах цей код не буде працювати.
Відповідь очевидна — при невідомих на момент написання коду. І як допоже математика?

а ніяк.

Що до думкі Кнута, то звісно, якби ж то повно було такого рівня людей, або як Дейкстра, то питання взагалі б не було.

Також зв’язок між алгоритмічним та математичним міркуванням проаналізований у статі Д. Кнута:
розробка алгорітму у программуванні — то мабуть найменша частина роботи, у загальних затратах часу.

то як сторі чи сценарій для кіно. головна робота по його створенню буде далі — на зйомному майданчику а потім у монтажній.

Я бы сюда добавил еще QA, BA и тех, кто близко связан с разработкой. Потому что ситуация может принять странный оборот: программист запилил сложный алгоритм например в экспертной системе или на нечеткой логике, а проверить некому.

Во-первых, элементарная алгебра и геометрия из школы. Геометрия крайне важна, чтобы не было задач о 7 перпендикулярных линиях на одной плоскости. Алгебра тоже важна чтобы знать как и куда округляются числа, как перемножить четырехэтажную дробь, что на ноль делить нельзя в элементраной алгебре. Понимание хотя бы 3-х мерного пространства с осями координат, не помешает базовая аналитическая геометрия. Знание логарифмов и тригонометрии не помешает, но используется от случая к случаю.

Во-вторых, системы счисления, знание 4-х основных систем счисления: BIN, OCT, DEC, HEX, умение переводить числа друг в друга. Понимание отрицательных чисел и дробных чисел, вы не поверите, но этими темами владеют далеко не все. Булева алгебра тоже важна, основы дискретки и теории вероятностей, чтобы можно было построить граф с весами сложнее 0,5 на 0,5. Теория графов. Пределы помогают не делать глупых ошибок.

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

более сложных вещей никуда.
Дифуры там, интрегалы всякие лебеговские.

Дифуры я «ниасилил» в универе как не старался, это выше моего понимания, все эти преобразования Фурье в Лапласа, е^шопопало и т.д. Видимо у каждого человека есть свой предел.

Не, я утонул на УМФ, или я тупой или препод такой были.

слабак, я их по шпоре сдал в перерывах между пьянками

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


и что в жизни без колебания струны что то не так? Я вот потом когда оное во фрактальной форме увидел вот где ежа родил от понимания ничтожности сугубо теоретической прикладной математики )
Например теоретическую механику я вобще не знаю (это к вопросу о дифурах) — тк прогулял ее и лихо сдал на дурняк- и
мне это совершенно не мешает жить и работать все без малого 20 лет после универа

и что в жизни без колебания струны что то не так?
Не знаю. Тебе виднее.

это не я ною по поводу умф тут вообще то

Я тоже не ною. Интересно, как можно вычитать то, чего нет?

по-моему на умф учат всего лишь умению развязывать уравнения, а не составлять их в попытках смоделировать какие-то процессы

Вот и грю, что не постиг сей науки. Правда и нахер ну нужна мне.

Знания математики нужны всем программистам, вот только какие разделы нужны именно под
конкретный тип ПО. Вот допустим что нужно знать для того чтобы, программировать игры, ИИ, big data, научный софт и т.д.
Всем нужна дискретка, и возможно абстрактная алгебра и «методы оптимизации» (тут можно обсуждать).
Остатьные разделы — это очень специфично, и не факт что очень надо (это больше история про аналитиков, а не про программистов).
.
Куда более важен момент не «какие разделы математики нужны», а «когда» они нужны.
__В самой работе__ всякие матаны могут даже мешать, в большинстве случаев достаточно было бы и того что называю «курс высшей математики» вместо 100500 более углубленных курсов. Программирование (современное) имеет много своих «научных» областей.
.
Возвращаясь к вопросу «когда». __При обучении в ВУЗе__ углубленные математические курсы — это, ИМХО, обязательно для программиста, лучше на первых курсах. Большой поток математических предметов, позволяет сформировать мышление (но это во многом зависит от преподавателей).
Большой поток математических предметов, позволяет сформировать мышление (но это во многом зависит от преподавателей).
именно что — не система преподавания, а конкретные преподаватели иногда преподают то самое мышление.
а надо бы чтоб система.

как у многих встречаю и о недостатках нашего школьного образования — детей заваливают материалом, в отличие от западных школ где используя преподаваемый предмет учат мышлению.
объем знаний ИЛИ система знаний?

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

проблемы те же как и с преподаванием программирования:
завалить учащегося кучей фреймворков ИЛИ объясняя принципы — разобрать по деталям всего лишь один?

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

Да ладно про западные школы.
действительно, а наши то школы какие замечательные!

после них наш рядовой школьник понимает откуда берется решение квадратного уравнения?

или вы из верующих в миф о лучшести советского образования?

при том что даже математическое — с 60ых отстало от западного, а задачей была поставка математиков для военки.
и все остальные разделы, на которых базируется и экономика, computer science — отсутствовали даже как факультативные.

Фамилию не помню, довольно давно встречал.
Возможно Пол Локхард, автор «Плача математика»

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

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

Брєд!

Програмістам потрібна математика, і працюють вони зазвивай у гуглі, яндексі, фейсбуці.

А от перекладачам з англійської на Java/С#/Ruby/etc звісно ні.

гуглі, яндексі, фейсбуці.
Там разве не используют
Java/С#/Ruby
?

Там вони перекладають не з англійської а з есперанто :)

Програмістам потрібна математика, і працюють вони зазвивай у гуглі, яндексі, фейсбуці.
Да, да. В гугле работают настоящие Программисты, не то шо вы. Подтверждение по ссылке bit.ly/1zPFxhk

Я знал! Они взяли знаковый 32-битный int, от жеш ламеры.

Думаешь они знают сколько там бит? И какое отношение этот бит имеет к сломавшемуся счетчику. Это крлип такой — вирусный.

вы меня поражаете, если бы это бы беззнаковый 32 битный int как в C, то влезло бы аж до 4 млрд с хвостиком. Вообще надо брать Long и не выпендриваться.

И действительно, надо было реализовывать хранение счетчика в нескольких лонгах, например в 10.
Чтоб так сказать — наверняка, ведь человечество так быстро размножается..
Впрочем 10 это какое-то некрасивое число, округлим до 16-ти.

И действительно, надо было реализовывать хранение счетчика в нескольких лонгах, например в 10.
Есть BigInteger, который может хранить целые числа любой длины, не надо изобретать велосипед с квадратным колесом.

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

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

В реляционках стринг размеренный.

Я в курсе, поэтому это еще дискуссионный вопрос. Я бы взял с запасом и меня бы наверняка потом поругали потомки лет через 30-300 когда база разрослась, но зато счетчик бы не переполнился.

лет через 30-300 когда база разрослась,

Скорей через миллион, два, в эпоху космического ренесанса...

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

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

Я бы прогнозировал что лет через 30-50 инопланетяне тоже его буду смотреть, поэтому аудитория 10 млрд слишком мелко, надо увеличить хотя бы в триллион раз, а просмотры еще в триллион и добавить триллион про запас. 10^10*10^12*10^12*10^12 = 10^46 про запас 10^50, «пущай подавятся» :-)

Когда создавали BigInteger, наверняка, находился кто-то, кто говорил — зачем Вы конструируете этот велосипед с квадратными колесами...

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

Програмістам потрібна
логіка. щоб не робити класичну помилку, відому вже більш ніж 2 тис років:
після того це внаслідок того

як ви її робите:
після навчання, де серед десятків предметів викладалась математика — працює в у гуглі, яндексі, фейсбуці.

Брєдовий висновок!

Програмістам потрібна математика, і працюють вони зазвивай у гуглі, яндексі, фейсбуці.

Поперше тут дві тези а не одна до якої ви спробували спростити.

після навчання, де серед десятків предметів викладалась математика — працює в у гуглі, яндексі, фейсбуці.

По друге це "Ти кажеш."(Мт. 27:2, 11-14)

Я лишень сказав, що програмісти зазвичай працюють в крутих компаніях і ще вони зазвичай знають математику.

Я лишень сказав, що програмісти зазвичай працюють в крутих компаніях і ще вони зазвичай знають математику.
звідкі інфа про — вони зазвичай знають математику?

звісно, закінчивший Стенфорд чи MIT знає математику дещо краще чем закінчивший «політех Буенос-Айреса».
Але звідки у вас інфа що програміст у гуглі, через 5 років роботи знає її так само, як коли отримував діплом?

і ще раз — чому виключаєця вплив інших предметів? на якій підставі?

звідкі інфа про — вони зазвичай знають математику?

habrahabr.ru/...​mpany/yandex/blog/239339

Але звідки у вас інфа що програміст у гуглі, через 5 років роботи знає її так само, як коли отримував діплом?

Я цього не казав

і ще раз — чому виключаєця вплив інших предметів? на якій підставі?

Підміна тези.

Підміна тези.
вище я вже написав — зазвичай адепти знання математики демонструють повну відсутність хоч якогось раціонального мислення, і дуже нагадають віруючих, з якими багато спілкувался колись. елемнатрні помилки, суцільний догматизм, та неспроможність до абстрактного мислення. звісно — це мій суб’єктивний досвід.

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

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

а от про роки ваянія на колінці проектів — то буде в іншому інтерв’ю.

Тут доречне порівняння професії художника та маляра. У кожного з них є пензлик з фарбами, але один створює шедевр, другий просто фарбує. Так само і в програмуванні, хтось створює шедеври, а комусь

Математика для программиста не нужна.

При этом 99% программистов — маляры, в чем нет ничего зазорного.

Це не програмісти, це, як то кажуть, кодери =)

Знавал я математегов, и не одного, которые знают много умных слов по математике. И которые всякие алгоритмы действительно накатать могут.
Но как дело касаеться вменяемого кода, архитектуры, сроков, поддержки, вникания в требования — «хочется взять и ***ть».

А уж среди програмеров сколько таких кодеров.

Да, вот только к знанию\не знанию математики это имеет оч мало отношения.

Ну да математики, хоть математику знают, а типичные програмеры-кодеры ничего не знают. И, даже!, гвоздь забить не могут.

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

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

У меня как и наверное любого другого программиста- есть куча завершенных pet проектовНа вскидку
— новостной сайт на mojoportal cms,
— портал по неджимости на asp.net mvc
— андроид игрушка на libgdx
— переписал на С++ и усовершенствовал самообучающийся алгоритм от Zdenek Kalal
+ куча не доделанных проектов.
И вот просматривая код любого из этих проектов- через какое то время- мне стыдно это выкладывать на гитхаб- или еще куда.
Наверное именно поэтому моих шедеыров нет в Open source

Подписаться на комментарии