Где в программировании применяется математика (веб/мобильные приложения)?
Привет, тостеровцы!
Не так давно начал изучать веб, в данный момент сижу на js. В планах : полностью освоить фронт-энд(html,css,js with ajax и jquery), потом постепенно перейти на серверные технологии(node.js , php), а потом в идеале начать лепить приложения на iphone(легенькие игры,возможно) и адаптивность веба под те же мобильные.
Судя по тому, где я нахожусь сейчас - js, особо каких-то мощных знаний по математике не требуется(что меня,несомненно, радует, потому что всю жизнь относил себя к классу "гуманитариев"). Но хотелось бы узнать заранее у вас, ребята : 1) Исходя из моего плана продвижения, как много математики я встречу?(что стоит подучить?) 2) Можно ли определить человека, как индивидуума с "математических складом ума", если он без особых( бывают,конечно, трудности, но они решаемы) проблем решает любые виды производных / интегралов / рядов/ пределов, но не знает их применения в жизни? ( учусь на втором курсе экономического, освоил все вышеперечисленные выш.математические штуки, но так и не понял их применения в той же экономике/жизни). 3) Есть ли применение статистических методов в том программировании, о котором идет речь,и как скоро этого ждать?
Заранее благодарен всем, кто даст дельный совет и указание. Искреннее спасибо, ребята.
1) зависит от того чем вы будете заниматься. Если верстка то как минимум встретите дроби и возможно когда-нибудь дорастете до простенькой тригонометрии (анимации, трансформации и т.д.). Так же тригонометрия может пригодиться при работе с canvas, webgl и т.д. Есть еще audio api с дискретными рядами фурье, свертками, фильтрами (справедливо и для canvas, как как обработка изображений на клиенте так же есть). Словом математику знать полезно, но обычно проблема решается по мере ее поступления. Если будете работать с этим часто то все придет со временем. Если же нет - то и учить смысла особо нету, главное умение разбираться.
2) Это проблема системы образования. Отсутствия желания заинтересовать абитуриента/студента в том, что знания ему могут пригодиться. В итоге учатся все спустя рукава и бывает узнают о том что предмет был полезным и в перспективе интересным уже после окончания этого курса а то и вообще университета. Те же ряды, индегралы и т.д. применяются при обработке сигналов, а стало быть аудио, видео и просто изображений. Делать там фильтрики для инстаграмма на клиенте... все такое прочее. Это как пример.
3) как минимум когда-нибудь а то и очень скоро вы столкнетесь с такими штуками как оценка сроков выполнения проекта, вот там теория вероятности может помочь. Так же предсказание пиковых нагрузок на сервера, расчет вероятности отказа и т.д. (правда все в очень упрощенной форме). Ну и опять же, мало ли задача какая подвернется.
Скажу по личному опыту, тут не угадаешь. Хотя, если пишешь анимацию или игры - там будет много математики, а в некоторых случаях и физики (в некоторых, потому что как правило распространенные вещи уже кем-то реализованы). Недавно, например, мне пришлось освежить знания тригонометрии, когда реализовывал анимацию, связанную с вращением земного шара (там нужно было правильно расчитать прогрузку видимых секторов, разную скорость движения, затухания и тп). При реализации статистик тоже приходится поломать голову над формулами.
В программировании важна логика и умение искать решения. А если программист знает способы решения, но не может их правильно применить (ну или не оптимально), то это плохой программист)
В вебе чистой математики почти нет.
Математика разработчику нужна, в основном, для понимания алгоритмизации (без математики это сложнее).
Статистики полно, но если будете просто верстать фронт - само собой, её не будет -)
Впрочем, математика (очень и очень крутая) в разработке встречается всё же часто - в разработке поисковых движков, например. Или научного софта. Или в физике игр (само собой, математика в разрезе физики). Платят там дочерта, но и учить нужно много.
Математика есть при решении конкретных ЗАДАЧ.
Когда у вас будут соответствующие задачи, вы будете использовать соответствующий мат. аппарат для их решения, реализуя соответствующие алгоритмы.
Если вы хотите МАТЕМАТИКУ идите в фирмы специализирующиеся на:
1. Игре на бирже
2. Распознавании образов (текста, голоса и т.п).
3. Обработки данных (выявление трендов, ИИ, нейронные сети и т.п)
4. Инженерных расчетах
и т.п.
В остальных случаях с вероятностью 70% вы попадете в коллектив, где максимум будут использоваться +,-, /, * и вытекающие оттуда SUM, AVG, MAX, MIN и т.п.
Если вы хотите такую математику то WELCOME :)
@begemot_sun Спасибо за ответ - особенно за примеры :) кстати, я примерно так и думал. Судя по всему, всё-таки чуть позже придется более серьезно заняться математикой - хотелось бы больше сложный решений, да и криптография тоже крутая штука - те же приватные диалоги в соц.сетях будут в скором времени очень популярны. Кстати, один мой знакомый не так давно устраивался в контору, которая делала сайты и приложения как раз таки "биржевого" характера, но, как оказалось на самом деле, это были обычные HYIP-проекты, но довольно-таки крупные. Повелся за огромную ЗП, за которую потом чуть аж не судили.
1) 130% (особо учите дроби и пропорции)
2) можно
3) Есть, как грязи. Ждать как только вылезете в веб. Например - статистическая вероятность встретить ie6-7-8 в каждом конкретном проекте.
1) очень зависит от конкретного круга задач. Для несложных сайтов и веб-приложений обычно хватает школьной математики. Но есть анимация, работа с гео данными, сбор и отображение разных видов статистики и масса других задач, в которых может понадобиться и тригонометрия, и теория графов, и все что угодно.
2) можно. Думается, важнее всего не столько заранее знать, где может пригодиться определенная вещь, сколько уметь вспомнить нужный раздел математики, когда подвернется релевантная задача.
3) в веб-приложениях работа со статистикой — популярная категория задач.
Математика, а точнее знания помогут тебе быстрее находить РЕШЕНИЯ. Но если ты в математике не умеешь решать логические задачи - не отчаивайся. По мере поступления задач ты их будешь решать и тебе со временем не так тяжело будет искать решения. И тем более ты же не пишешь игровой или физический движок. И Надолго не затягивай с изучением js. Изучи основы нужных тебе языков и начинай делать маленький простенький проект. Моя ошибка - я думал не столкнусь с js столь серьезно. Начал использовать nodeJs. И как можешь посмотреть в моих вопросах, проблемы не сложные, а решал бывает по 30 часов. Вот тут как раз я знаю и понимаю в теории как решить, а практически нет. Но сейчас уже более менее понимаю js. И еще при изучении в любого языка не тупо теорию читай, а работай с примерами. Это мое сугубо личное мнение. Ведь и сам еще новичок. Желаю тебе успехов.