1 (24.02.2011 17:24:58 отредактировано White Nelud)

Учусь на программиста, 1 курс. Поступил после девяти классов, так что изучаю школьную программу за два года. По информатике у меня "отлично", а вот по математике "плохо", точней 4 бала по 12 бальной системе. Все, в том числе и знакомые и однокурсники говорят что надо знать математику для того что бы стать программистом.

Я программирую на PHP, JavaScript, Pascal - довольно таки неплохо. Нормально разбираюсь в Linux.
Ведь не все будут создавать программы для математических или физических целей?

Поєтому вопрос: Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

P.S. Я думаю что главное логика и интерес к поставленной задаче, а так же упорство и умение прошибать лбом стенку. ИМХО (не удаляйте тему, интересно услышать мнение других, опытных людей (сис.админов/программистов))

2

koala пишет:

Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

однозначно ДА

ПатреГ не любит Gnome...

3

koala пишет:

Поєтому вопрос: Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

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

koala пишет:

P.S. Я думаю что главное логика и интерес к поставленной задаче, а так же упорство и умение прошибать лбом стенку. ИМХО (не удаляйте тему, интересно услышать мнение других, опытных людей (сис.админов/программистов))

Логика - это только часть математики... И таки да, её и надо знать. be К слову, с дискреткой и матлогикой я дружил меньше всего... замудрёные они.

Ещё неплохо бы знать, к примеру, матан и тервер... без них никуда.

4

Battle Coder пишет:

...матан

Он-то зачем программисту? Его отлично заменят численные методы. Хотя ради ознакомления, все же не помешает.

5

Математика развивает мышление, логику, приучает к простым решениям.
Почитайте "Плач математика", там наглядные иллюстрации есть.
Ещё вот интересная статья, не совсем в тему правда:
Зачем мне физика, ведь я программист?!

6 (24.02.2011 17:59:18 отредактировано mycetophylax)

Хорошая статья


koala пишет:

Поєтому вопрос: Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

В твоем случае тебе она нужна для сдачи экзамена/зачета wink

7

Я когда-то игнорировал мсторию, обществознание, философию... Упор делал на физику и радиоэлектронику. Теперь жалею. У меня нет того фундамента, который давали на халяву. Было время, была возможность. Кто знает, как жизнь вас повернет. Сегодня Вы балдеете от компов, а завтра займетесь наукой или ударитесь в проектирование. Кто знает, кто знает! Фундаментальные знания, даются в школе. В институте Вы специализируетесь на какой-то выбранной области. А выстраивать свою башню знаний (т.е. преобразовывать себя из дилетанта в профи) уже будете самостятельно после института. И тот запас знаний, который Вы успеете хапнуть в молодые годы Вам ой-как пригодится. Ибо восполнять отсутствующие знания у Вас не будет времени. Свободного времени у Вас с каждым годом будет становиться все меньше и меньше. И если Вы сейчас что-то проигнорируете, то в будущем это уже будет просто недостижимо. Знания их параллельных дисциплин сами по себе они может и не нужны будут Вам, но они оказывают существенное влияние на вашу ум, на способность его изобретать, проектировать, выдумывать. Человек с ограниченными знаниями не может генерировать много разных идей. Расширяйте свое поле любыми знаниями. Они в любом случае, прямо ли, косвенно ли, но будут оказывать влияние на ваши творческие способности. Унылые работники, знающие только две операции -- никому не нужны. Творческие работники, имеющие знания во многих областях -- непотопляемы. И не забывайте, что мозг человека развивается до 22-25 лет, потом его способности впитывать науки снижаются, а к 45-50 годам начинаются обратные процессы. (Thermo -- поправьте меня.)

Так что если Вам все равно, забейте на математику!

Live Free or Die

8

koala пишет:

Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

очевидно ДА, причём все разделы по чуть-чуть (ну хотя-бы).
чего только иной раз не понадобится, а для преобразований Лапласа я уже слишком стар... (к счастью, их я изучил когда-то давно). ещё английский нужен. Любопытно, что сама информатика ИМХО не нужна. программа == формула. Это очень хорошо по RE видно. (а RE это тоже программа, хоть и написанная Тюринг-неполным ЯП. Кстати... А как вы собираетесь понять Тьюринг полноту не зная математики? bx )

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

9

drBatty пишет:

Кстати... А как вы собираетесь понять Тьюринг полноту ...

А это зачем?

10

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

SimplyLinux 7

11

mycetophylax пишет:
drBatty пишет:

Кстати... А как вы собираетесь понять Тьюринг полноту ...

А это зачем?

что именно.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

12

drBatty пишет:
mycetophylax пишет:
drBatty пишет:

Кстати... А как вы собираетесь понять Тьюринг полноту ...

А это зачем?

что именно.

Зачем понимать полноту по Тьюрингу  wink

13

AAD пишет:

К тому же "Привет мир" может написать каждый, а вот программу посложнее надо отлаживать и тут пожалуй математика тоже нужна.

задача: написать программу, обрабатывающую одно число в 24 бита.
подзадача: посчитайте время, которое надо затратить на все 16777216 тестов
подзадача2: сравните 24 бита, с объёмом входных данных любой реальной программы.

bx

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14

AAD пишет:

К тому же "Привет мир" может написать каждый, а вот программу посложнее надо отлаживать и тут пожалуй математика тоже нужна.

Пример можно?

15

mycetophylax пишет:

Зачем понимать полноту по Тьюрингу

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

16

koala пишет:

Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

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

Мой блог: http://moscwich.blogspot.com/

А давай "на ты"? Ну, если "вы", то не с пропиской буквы, ok?

17

Стив Джобс. Ему осталось жить несколько месяцев.
Послушайте человека, у которого уже не осталось времени.
http://habrahabr.ru/blogs/it_bigraphy/114411/
Но нам повезло, он успевает подвести итоги своей жизни и поделиться с нами.

Слушайте! Впитывайте и не ходите по его граблям.

Live Free or Die

18

koala пишет:

Вы тоже считаете что нужно знать отлично математику что бы стать отличным программистом?

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

Гы drBatty  из написанного им я понял он увлекается мат софизмами, а это один из способов надуть маленьких, что то типа  a=b из этого следует 1=2

19

ormorph пишет:

из написанного им я понял он увлекается мат софизмами, а это один из способов надуть маленьких, что то типа  a=b из этого следует 1=2

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

20

drBatty пишет:

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

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

21

s/ \b(\w+) \s (?= \1\b ) //gx;

давеча на УФО обсуждали такой код. сложно объяснять людям, почему этот код (из учебника кстати) отлично работает в тестах, и намертво вешает боевой сервер. Распарсить этот код просто - он находит и удаляет все повторяющиеся слова. Намного сложнее понять, почему он зависает. Для этого надо рыть гранит науки, а именно "Искусство программирования"  Д.Кнута. И тут вы обнаружите, что Кнут НЕ решил эту задачу. Он сделал больше - свёл её к другой, уже решённой. Удивительно, но расчёт времени  выполнения кода эквивалентен расчёту напряжений и токов в электрической сети. Формулы и правила точно такие же, и выведены Кирхгофом чуть-ли не в позапрошлом веке:
1) сумма токов входящих в узел цепи равен сумме исходящих.
2) сумма напряжений в контуре равна нулю (с учётом знаков).
В простых цепях правила очевидны (на лампочке включённой в сеть 220в напряжение == 220в. Ваш К.О.), в сложных они приводят к системе линейных уравнений, которые научился решать Гаусс (правда китайцы научились чуть раньше - 2000 лет назад).
Проанализировав данное уравнение методом Кнута-Кирхгофа-Гаусса-Китайцев мы узнаем, что время T=C*N*N*M (где C - константа, зависящая от железа, N ср. длинна строки, M число строк). Мы видим, что в тестах может быть строчек было и много, но они были короткие, а значит все наши тесты - коту под хвост. В реальности время намного сильнее зависит от длинны строки, и если длинна будет IRL в 1000 раз больше, то время будет больше в 1000000 раз, что и воспринимается юзером как "зависание". Как видим, тестирование не помогает нам, а помогает лишь матан.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

22

ormorph пишет:

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

не выдаёт к сожалению. если вы пользователь, то можете понадеется на программу, но если вы программист - вы обречены. мелочей тут не бывает, комп железный, умеет только считать, причём считает он плохо (хотя и быстро). Вот вам простой софизм:
1) 2руб*2руб == 4руб. Очевидно.
2) 200коп*200коп == 40000копеек == 400руб. Очевидно для компьютера.
из 1 и 2 следует, что 4руб == 400руб.

Ошибку найдёт любой продавец - рубли не умножают на рубли. рубли можно умножить на проданный товар, и получить выручку. а если множить рубли на рубли получается НЕХ.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

23

drBatty пишет:

1) 2руб*2руб == 4руб. Очевидно.
2) 200коп*200коп == 40000копеек == 400руб. Очевидно для компьютера.
из 1 и 2 следует, что 4руб == 400руб.

гвозди+мыло = шило
40+40=рубль сорок?
:lol:

BIN:
10*10=100
11001000*11001000=1001110001000000
DEC
2*2=4
200*200=40000

И какая здесь очевидность для ПК? когда разряды даже разные, аля 1=100 что ли?  oO , как так считать то? чет я не догоняю.  oO

It is good day to die ...
MS Windows 10
Заметки о главном...

24

drBatty

В варианте что предлагал я, ошибку бы выдало, это точно.
вот полный вариант.

утверждение a=b
далее домножим каждую сторону на b
ответ ab=b^2
вычтем далее a^2 :  ответ ab-a^2=b^2-a^2
далее по формулам сокращенного умножения приводим к такому виду:
a*(b-a)=(b+a)*(b-a) и делим на (b-a)
получается a=b+a
из утверждения a=b получаем:
a=2a делим на a и получаем:
1=2

машина в данном случае выдаст ошибку на месте деления, на (b-a)

А от человеческого фактора вообще много что зависит.

25 (10.03.2011 23:08:20 отредактировано mogul82)

Я считаю - без знаний математики ты просто девелопер и кодер. А все ПШП кодеры и есть девелоперы. Т.к. ПШП это ПШП 
А вот с знанием математики ты уже программист.

XMPP: mogul82@jabber.ru Фанбой AMD

26

i2ks пишет:

И какая здесь очевидность для ПК?

аддитивные величины (например стоимость) нельзя множить. Точнее можно, но они становятся другими. Метр*Метр не выразить в обычных метрах, это не аддитивная, а интегральная величина - площадь. И метры получаются не простые, а квадратные. В некоторых статистических финансовых расчётах  встречаются "квадратные рубли", некоторая денежная "площадь". И не надо мне тут двоичной системы счислений. Лучше расскажите, что такое число цифр в этой системе, и что такое - сумма единиц. А я вам потом расскажу, какой в этом практический смысл ab

ormorph пишет:

В варианте что предлагал я, ошибку бы выдало, это точно.

это смотря как считать. Hint: вовсе не обязательно при делении на ноль получается исключение, смотря как делить. Может получится и NaN, а может и бесконечность. Пруфлинк.

ormorph пишет:

машина в данном случае выдаст ошибку на месте деления, на (b-a)

а  вот и нет! оптимизирующий компилятор именно так и обработает вашу ситуацию, и получившийся код будет работать без ошибок. Видите как получается? Быдлокодер написал быдлокод, который приводит к исключению при ошибке. А компилятор его скомпилировал в машинный код так, что исключение потерялось. Это, между прочим, очень распространённый баг. Или другой пример: подумайте, что получится, если ваше а почти равно b?

+ открыть спойлер

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

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

27

mogul82 пишет:

Я считаю - без знаний математики ты просто девелопер и кодер. А все ПШП кодеры и есть девелоперы. Т.к. ПШП это ПШП  tongue
А вот с знанием математики ты уже программист.

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

28

drBatty пишет:

Лучше расскажите, что такое число цифр в этой системе, и что такое - сумма единиц.

это случайно не к степенным рядам относится?  :o

drBatty пишет:

А я вам потом расскажу, какой в этом практический смысл

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

It is good day to die ...
MS Windows 10
Заметки о главном...

29

вот вам пример плохого кода:

if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i == 9)
{
  // произвести ещё одну бессмысленную операцию
}

посмеялись? а теперь печальная суть: с именно таким кодом я встречался неоднократно.  ah
ну там конечно посложнее, но суть та же: человек не понимает, что вышеописанное эквивалентно i >=0 && i<=9.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

30

drBatty пишет:

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

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

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