Чувствую, спровоцирую флейм, но уж сильно интересно...
Часто слышу мнение, что для того, чтобы стать хорошим программистом, нужно хорошо знать математику. Соответственно, если знаешь на 3 — не быть тебе програмером никогда.
Собстно, хотелось бы узнать мнение общественности по этому вопросу...
P.S. ИМХО, программистом может быть даже гуманитарий Особенно это касается переводчиков — и там, и там — перевод с одного языка на другой
Здравствуйте Aquary, Вы писали:
A>Всем привет!
A>Чувствую, спровоцирую флейм, но уж сильно интересно...
A>Часто слышу мнение, что для того, чтобы стать хорошим программистом, нужно хорошо знать математику. Соответственно, если знаешь на 3 — не быть тебе програмером никогда.
Ну на мой взгляд все зависит от того, чем ты собираешься заниматься, как программист,
Вот начнешь ты заниматься обработкой изображений и без быстрого преобразования Фурье и теории свертки рядов тебе не обойтись, ты конечно можешь просто взять от куда-нибудь готовые алгоритмы преобразования, непонимая сути, но это ИМХО не правильно.Другой пример — VOIP — тут тоже не обойтись без математики — так что вот оценивайте обстановку.
Вообще считается, что у математиков складывается особый стереотип мышления, который полезен при программировании и проектировании, но это не значит, что гуманитарий не может программировать — помоему тут все зависит от личных качеств и желания =)
A>Собстно, хотелось бы узнать мнение общественности по этому вопросу...
A>P.S. ИМХО, программистом может быть даже гуманитарий Особенно это касается переводчиков — и там, и там — перевод с одного языка на другой
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Aquary, Вы писали:
A>Всем привет! A>Чувствую, спровоцирую флейм, но уж сильно интересно... A>Часто слышу мнение, что для того, чтобы стать хорошим программистом, нужно хорошо знать математику. Соответственно, если знаешь на 3 — не быть тебе програмером никогда. A>Собстно, хотелось бы узнать мнение общественности по этому вопросу... A>P.S. ИМХО, программистом может быть даже гуманитарий Особенно это касается переводчиков — и там, и там — перевод с одного языка на другой
Может. Но здесь появляется опять же классификация программистов . Да, гуманитарий может стать программистом, но пока он не узнает простейших вещей, ему будет трудно. Здесь вопрос скорее ставится о складе ума человека. Где-то читал что есть примерно 20% людей, которые в принципе не способны понять фон Неймановское программирование.
А если уж человек способен, то он придет от программирования к математике, или от математики к программированию это значения не имеет (IMO).
То есть вывод такой: изучать математику прийдется (либо сначала, либо потом).
Хотя это все конечно рассуждения на тему. Я в своей жизни не встречал хороших программистов, у которых было бы очень плохо с математикой.
Другой пример — VOIP — тут тоже не обойтись без математики — так что вот оценивайте обстановку.
Очень спорно. Вот никому из 3 человек в нашей команде математика не пригодилась, занимаемся VoIP.
Вообще программист это действительно образ мышления, но с математикой он
имеет совсем мало общего. Никакой корелляции между уровнем математической
подготовки и скиллом в программировании не прослеживается.
Конечно для того чтобы быть программистом надо знать математику на уровне
11 класса но вообщем то и все. Полезные темы это
1) Арифметика(+системы счисления)
2) Теория графов
3) Понятие временной сложности
4) Булева логика
Все это вместе изучается на матмехе примерно за 50-100 учебных часов
(36 учебных часов это 1 семестр по 1 паре в неделю)
Все остальные дисциплины специфичны, можно найти тему где они понадобятся
но 95% программистов занимаются не ими.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте ToShA_2K, Вы писали:
T2>А если уж человек способен, то он придет от программирования к математике, или от математики к программированию это значения не имеет (IMO). T2>То есть вывод такой: изучать математику прийдется (либо сначала, либо потом).
Почему же он должен к ней прийти, если в повседневной работе ее не использует?
Здравствуйте Lefay, Вы писали:
L>Ну на мой взгляд все зависит от того, чем ты собираешься заниматься, как программист, L>Вот начнешь ты заниматься обработкой изображений и без быстрого преобразования Фурье и теории свертки рядов тебе не обойтись, ты конечно можешь просто взять от куда-нибудь готовые алгоритмы преобразования, непонимая сути, но это ИМХО не правильно.Другой пример — VOIP — тут тоже не обойтись без математики — так что вот оценивайте обстановку.
Ну это и так ясно
Просто большинство задач гораздо приземленней — те же БД, например. Там совсем не обязательно знать реляционную алгебру, чтобы проектировать реляционные базы
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Lefay, Вы писали:
A>Другой пример — VOIP — тут тоже не обойтись без математики — так что вот оценивайте обстановку.
A>Очень спорно. Вот никому из 3 человек в нашей команде математика не пригодилась, занимаемся VoIP.
Ну удивил — наверняка вы не писали никакой кодек, а взяли готовые библиотеки и использовали уже их. Попробуй написать какой — нить архиватор или сжимающий фильтр на поток — тут не обойтись без математики
Я же не говорю, что не можешь заниматься ничем связанным с телефонией — я говорю, что очень много задач, связанных с математикой, может быть многие из них решено, но ведь тоже программисты делали.
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Lefay, Вы писали:
L>Ну удивил — наверняка вы не писали никакой кодек, а взяли готовые библиотеки и использовали уже их. Попробуй написать какой — нить архиватор или сжимающий фильтр на поток — тут не обойтись без математики
Не канает. В сумме в природе существует менбше 20 аудио кодеков.
Они почти все запатентованы, т.е. даже если те его сам напишешь ты
должен будешь за него заплатить. Ими занимаются математические институты.
Никто из программеров их не пишет ни у нас ни у них. Пишут математики.
L>Я же не говорю, что не можешь заниматься ничем связанным с телефонией — я говорю, что очень много задач, связанных с математикой, может быть многие из них решено, но ведь тоже программисты делали.
Нет в офисном и web программировании таких задач. А если кому-то она
по исключению попадается, то человек лезет в yandex или rsdn и спрашивает.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Aquary, Вы писали:
A>Часто слышу мнение, что для того, чтобы стать хорошим программистом, нужно хорошо знать математику. Соответственно, если знаешь на 3 — не быть тебе програмером никогда. A>Собстно, хотелось бы узнать мнение общественности по этому вопросу...
ИМХО!
Это можно сказать и о домохозяйке (да как и о других) — не знаешь законы математики (пусть и арифметики), не сосчитаешь доходы и расходы, не знаешь законы экономики — не сможешь планировать свои доходы и расходы и т.д. Однако домохозяйки ещё не вымерли все, т.е. они есть. И я сильно сомневаюсь, что они имеют знания по всем этим предметам выше 3. Значит, тут что-то не стыкуется. Значит можно и не знать и быть домохозяйкой.
Но это опять не значит, что всех этих предметов она совсем не знает. Она просто может не знать что она знает. И не сдавать экзамены на это знание. А просто по житейски уметь.
И с другой стороны, зная эти предметы и применяя на практике осознанно, домохозяйка может очень эффективно вести хозяйство. Что, впрочем, не мешает ей вести его не менее эффективно и без осознанного знания.
Когда человек рассуждает, он неминуемо работает по законам логики, даже не осознавая их. Но если он знает законы логики, то это помогает ему избегать неверных выводов, которые вполне допустимы при "житейском" подходе. Через определённое время практика даст понять человеку, не знающему законы логики, что он не прав, но это потребует времени.
Отсюда мораль: знаешь законы — быстрее придёшь к цели, не знаешь — потратишь время на их изучение на собственном опыте. Поэтому и незнающий математики будет постигать это таинство самостоятельно и неосознанно.
A>P.S. ИМХО, программистом может быть даже гуманитарий :) Особенно это касается переводчиков — и там, и там — перевод с одного языка на другой ;)
Я сам не гуманитарий, но я не думаю, что для них будет большой проблемой программирование в том или ином виде. Это такая же общечеловеческая деятельность, доступная, кстати, всем без исключения. Вполне возможно что скорость написания программ для этих людей будет не сопоставима с аналогичной для математика-программиста, однако, наверное, и цель-то у них другая. Опять же знания в области гуманитарных наук имеют своё значение.
Здравствуйте Aquary, Вы писали:
A>Здравствуйте ToShA_2K, Вы писали:
T2>>А если уж человек способен, то он придет от программирования к математике, или от математики к программированию это значения не имеет (IMO). T2>>То есть вывод такой: изучать математику прийдется (либо сначала, либо потом).
A>Почему же он должен к ней прийти, если в повседневной работе ее не использует?
Хммм... Сформулировал наверное неправильно.
Очень вероятно, что разработчик прийдет к математике.
Например, часть из того, что перечислил Anatolix, всплывает практически в любой задаче.
Т.е. таких знаний достаточно для 60-70% задач. Для остальных же 30-40% нужны более глубокие знания. (опять же IMO).
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Lefay, Вы писали:
L>>Ну удивил — наверняка вы не писали никакой кодек, а взяли готовые библиотеки и использовали уже их. Попробуй написать какой — нить архиватор или сжимающий фильтр на поток — тут не обойтись без математики
A>Не канает. В сумме в природе существует менбше 20 аудио кодеков. A>Они почти все запатентованы, т.е. даже если те его сам напишешь ты A>должен будешь за него заплатить. Ими занимаются математические институты. A>Никто из программеров их не пишет ни у нас ни у них. Пишут математики.
Ага, а математики, которые пишут — это уже не программиты
L>>Я же не говорю, что не можешь заниматься ничем связанным с телефонией — я говорю, что очень много задач, связанных с математикой, может быть многие из них решено, но ведь тоже программисты делали.
A>Нет в офисном и web программировании таких задач. А если кому-то она A>по исключению попадается, то человек лезет в yandex или rsdn и спрашивает.
Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Aquary, Вы писали:
A>Здравствуйте Lefay, Вы писали:
L>>Ну на мой взгляд все зависит от того, чем ты собираешься заниматься, как программист, L>>Вот начнешь ты заниматься обработкой изображений и без быстрого преобразования Фурье и теории свертки рядов тебе не обойтись, ты конечно можешь просто взять от куда-нибудь готовые алгоритмы преобразования, непонимая сути, но это ИМХО не правильно.Другой пример — VOIP — тут тоже не обойтись без математики — так что вот оценивайте обстановку.
A>Ну это и так ясно A>Просто большинство задач гораздо приземленней — те же БД, например. Там совсем не обязательно знать реляционную алгебру, чтобы проектировать реляционные базы
Ну тут я согласен конечно, просто сабж не из конфы про базы данных, а из философии программирования, а философия весьма обширна
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Lefay, Вы писали:
A>> Пишут математики. L>Ага, а математики, которые пишут — это уже не программиты
Программирование для них в данном случае — это "побочный эффект", инструмент, если так можно выразиться
A>>Нет в офисном и web программировании таких задач. А если кому-то она A>>по исключению попадается, то человек лезет в yandex или rsdn и спрашивает. L>Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
Посмотри мои постинги — я там вообще-то про БД говорил...
Даже если не брать БД и веб — возьми сетевые или системные задачи... Нужна ли математика при написании сервисов для операционки? Много ли математики использовали создатели Бата или ИЕ?
Здравствуйте Lefay, Вы писали:
L>Ну тут я согласен конечно, просто сабж не из конфы про базы данных, а из философии программирования, а философия весьма обширна
Любая философия исследует и описывает жизнь вообще, в которой в частности местами и БД встречается...
Здравствуйте Aquary, Вы писали:
A>Здравствуйте Lefay, Вы писали:
A>>> Пишут математики. L>>Ага, а математики, которые пишут — это уже не программиты A>Программирование для них в данном случае — это "побочный эффект", инструмент, если так можно выразиться
A>>>Нет в офисном и web программировании таких задач. А если кому-то она A>>>по исключению попадается, то человек лезет в yandex или rsdn и спрашивает. L>>Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
A>Посмотри мои постинги — я там вообще-то про БД говорил...
A>Даже если не брать БД и веб — возьми сетевые или системные задачи... Нужна ли математика при написании сервисов для операционки? Много ли математики использовали создатели Бата или ИЕ?
Например в ранних операционках — когда доставка информации между устройствами небыла достаточно гарантирована — повсеместно применялись алгоритмы обнаружения ошибок — ну а это уже абсолютная алгебра. А в сетевых задачах очень часто используются алгоритмы сжатия информации. В сетевых технологиях не надо забывать про алгоритмы нахождения кротчайшего пути — все они построены на теории графов.
В отношении же баз данных могу сказать, что при построении базы знаний везьде используются предикаты — тоже объекты математической логики.
Мне кажется, что мы все по разному понимаем использование математики.У меня вообще такое впечатление, что я смогу найти математику в любой области. Вот, например, надо ли логику относить к математике — если да, то любой алгоритм становиться математическим, если нет.
Считаю, что к конструктивной позици в даном сабже мы не придем — помоему каждый выбирает для себя область программирования и на сколько глубоко он будет ей заниматься.
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Lefay, Вы писали:
L>Ага, а математики, которые пишут — это уже не программиты
Нет это такие специальные дяденьки которые плохо знают
фортран, а еще их человек 100 в мире.
L>Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
Но 95% покрыто
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Aquary, Вы писали:
A>Здравствуйте Lefay, Вы писали:
L>>Ну тут я согласен конечно, просто сабж не из конфы про базы данных, а из философии программирования, а философия весьма обширна
A>Любая философия исследует и описывает жизнь вообще, в которой в частности местами и БД встречается...
и не только
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте ToShA_2K, Вы писали:
T2>Т.е. таких знаний достаточно для 60-70% задач. Для остальных же 30-40% нужны более глубокие знания. (опять же IMO).
Согласен, но разделил бы задачи по правилу 95% — 5%
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Lefay, Вы писали:
L>>Ага, а математики, которые пишут — это уже не программиты
A>Нет это такие специальные дяденьки которые плохо знают A>фортран, а еще их человек 100 в мире.
По этому поводу давайте заведем новый сабж о том кого относить к программистам, а кого нет
ИМХО,если человек в своей профессиональном деле использует программирование, то его уже можно назвать программистом, а пишет ли он там математические системы или нет — это уже вопрос класификации программистов
L>>Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
A>Но 95% покрыто
Наверняка ты эту цифру из головы взял. НАРОД у кого нить есть такая статистика???
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте Lefay, Вы писали:
L>По этому поводу давайте заведем новый сабж о том кого относить к программистам, а кого нет L>ИМХО,если человек в своей профессиональном деле использует программирование, то его уже можно назвать программистом, а пишет ли он там математические системы или нет — это уже вопрос класификации программистов
Если он думает 2 года а потом за месяц пишет прототип на фортран
то наверное он всетаки больше математик.
L>>>Замечу, что человек, который инициировал сабж не говорил ничего о офисном web программировании — не одним же им покрыта вся область программирования
A>>Но 95% покрыто L>Наверняка ты эту цифру из головы взял. НАРОД у кого нить есть такая статистика???
Нет я ее взял из собственного опыта и опыта других знакомых
программистов.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев