Войти

Показать полную графическую версию : Как научиться программировать со слабым математическим аппаратом?


Страниц : [1] 2

Mr666
21-12-2007, 13:17
Привет всем!

Интересует информация (ввиде книг/статей), где даны основные алгоритмы. Я знаю такую литературу как "Построение и анализ алгоритмов" или "Исскуство программирования", но там очень много чисто теоретической математики. А у меня с математикой не очень, поскольку там большинство математических выводов абсолютно необъясняются.
Хотелось бы информацию по основным алгоритмам в более доступном виде, где более менее понятно человеку не имеющему классные знания в математике.

P.S. Язык программирования не важен, так как основная сложность в изучении программирования это логика алгоритмов, а не программные конструкции конкретного языка.

DillerInc
21-12-2007, 18:00
Mr666, а можно задать риторический вопрос: "Для чего вы хотите использовать программирование?"
Например.
Кто-то просто перетаскивает кнопки и прочее на форме в среде разработки Delphi и считает,что он программист.Математика,понятно,остаётся не у дел.
Кто-то внимательно читает мануалы Интел,чтобы понять,как правильно обрабатывать программные прерывания на уровне ядра,и тоже может назваться программистом.Математика снова тихо курит в сторонке.

Теперь ещё один вопрос к остальным участникам: "Какая область программирования,где активно требуется знание математики(хорошее знание)?"
И: "Что же из себя представляют те некие алгоритмы,где требуется эта математика?".

azbest
22-12-2007, 15:56
Начни с информатики для школьников. Там много практических несложных задач и основы построения алгоритмов.

Diseased Head
22-12-2007, 18:12
Mr666, скажу вам честно. У меня иногда складывается впечатление что сами авторы некоторых книг, не до конца секут в математике. Например есть у меня одна книга: "ДИСКРЕТНАЯ МАТЕМАТИКА дла програмистов". Так там автор вообще загнул, он там пишет на синтезированном "програмно-матиматическом" языке. Не буду говорить уверенно (потому как сам не спец), но помоему, бред. Или может я чё не понял...

DillerInc, а я скажу сильнее. Плохо зная математику ("общеобразовательную") можно даже и коды писать (Win32 и пр.). Я вот когда изучал C++, математику плохо знал, и при этом очень хорошо получалось.

Но что-бы быть очень хорошим программером, надо математику знать хорошо.

Теперь ещё один вопрос к остальным участникам: "Какая область программирования,где активно требуется знание математики(хорошее знание)?"
И: "Что же из себя представляют те некие алгоритмы,где требуется эта математика?". »Области: графика, звук, игры, мат.проги, физ.проги, хим.проги... Да и много где ещё. И чем сложнее прога, тем более в ней математики (обычно).

Алгоритм? Ну например, приближённое вычисление интеграла.

А может вы и не знаете, но такие вещи как: алгоритм, объект, система, множество, тоже относятся к математике.

Mr666
22-12-2007, 20:30
Скажу так. Точного направления в программировании я не выбрал. Но какие бы книги по конкретным языкам не читал я каждый раз сталкивался с непреодолимой трудностью. Трудность не в освоении синтаксиса языка, а построении любых, даже самых простых программ. То есть я не знаю никакой дисциплины. Надо как то правильно ориентироваться в логике построения программ, что бы не писать чёрт знает что. В книге Кнута и прочих знаменитых писателей об алгоритмах я увидел описание того, как именно надо программировать. Но там было очень наворочено и явно расчитана для студентов, которым в вузе преподают математику.
Я же хочу книжку об алгоритмах, только по проще чем Кнут. То есть всё что я хочу, это книгу по алгоритмам (или про то как надо правильно программировать), только более доступную для человека, который не заморочен математикой.

Admiral
22-12-2007, 21:22
Алгоритм? Ну например, приближённое вычисление интеграла. »
Такие алгоритмы известны (Алгоритм прямоугольников, трапеций, Симсона. Придумывать можно только свой новый.) Или подразумевается его практическая реализация?

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

kim-aa
22-12-2007, 21:34
Словосочетание "знание математики" это абстракция.
Требуются плотные знания определенных разделов, но все горе в том что невозможно выучить только определенные разделы, т. к. они ссылаются на другие области.

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

Реляционные базы данных - требуют знания реляционной алгебры.
Это мой извечный кошмар.
Я не встречал еще ни одного программиста на 1С, который бы "sensored", не пытался работать с циклами.
Думал в SAP R/3 по другому.

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

Господа!
Учите, реляционную алгебру и опeрации со множествами.
Да же 1С, еще в версии 7.7 писала, что встроенный в движок оптимизатор запросов не умеет работать с циклами. Точнее ни один оптимизатор не умеет, надеется, понимаешь, на человеческий разум.
Почему тысячи ситемных администраторов вынуждены занимаються эзотерическим сексом с MS Terminal Server в тщенной попытке ускорить милионны вложенных циклов которые вы нахренашили в теле процедур 1С?
Администраторы Sun и IBM рыдают над мультипроцессорными мeйнфреймами, которыe теоретически с легкостью могут расчитать создание Земли Господом Богом, но средней руки ABAP-программер, не напрягаясь, отправляет систему на полтора дня в кому одним квартальным отчетом.
Почему вы так плохо учились, господа?!

Mr666
22-12-2007, 23:25
Неужели никто не знает какую нибудь маленькую книгу или статьи, в которых раскрывают глаза на то, как же всё таки научится эффективно программировать на любом языке.

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

Или те же рекурсивные алгоритмы, как их писать, методы (а не от балды) их эффективного построения.

Всё это описывается в таких книгах как "Алгоритмы: Построение и анализ":

http://www.kalinin.ru/comment/books/11_08_00.shtml

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

Oleg_SK
23-12-2007, 03:40
IMHO, есть достаточно много областей программирования, где достаточно знать такие элементарные математические операции как сложение-вычетание, умножение-деление, проценты... Некоторое время назад я около двух лет работал 1С-программистом, и никакие более сложные познания математики мне при этом не понадобились (и я их уже забыл)... Я не говорю тут о таких мат. понятиях, которые неразрывно связаны с программированием (например: цикл, рекурсия, массив, функция и т.д.), т.к. их понимать нужно по любому, но опять же IMHO для этого не нужно напрягаться, т.к. и так все интуитивно понятно или объясняется в соответствующих учебниках по программированию. Для своего удовольствия программирую на Ассемблере под Win32, и также не испытываю особых потребностей специально изучать математику.

DillerInc
23-12-2007, 16:49
Вот,вспомнил одну из областей программирования,где необходимы глубокие познания в математике -- криптография.И соответственно криптоанализ.

как же всё таки научится эффективно программировать на любом языке. »
...по-моему,такая постановка вопроса -- это всё равно,что тыкать пальцем в небо.У программирования огромное число задач,каждая из которых требует своего подхода.
Короче,я бы посоветовал наверно почитать Джеффри Рихтера "Создание эффективных win32-приложений" -- считается очень достойным материалом.

Mr666
23-12-2007, 19:36
Наверное я всё таки не смог правильно сформулировать свой вопрос. Но попытаюсь ещё раз, так как для меня это очень важно. Например, для себя я выбрал C++ по книге Бьерна Страуструпа. В процессе изучения (только на начальном этапе) я понял, что мне чего то очень нехватает. Сложностей в освоении синтаксиса у меня не возникает. Но программировать нормально не получается. Любая программа получается кривой и пишется очень долго, а потом тестируется тоже очень долго. Это я говорю об очень маленьких программах. Я не сторонник тупого табуреточного подхода идти напролом и делать так дальше, так как совершенно очевидно что у меня нет никакой системы, нет правильного подхода к построению программ. Может и можно вырасти и без этого, но пополнять и без того огромную армию криворуких программистов мне как то не хочется. Поэтому мне нужна доступная литература по тому как программировать быстро и эффективно (только не надо спорить, что быстро не бывает, думаю вы меня поймёте). В любой программе, на любом языке, есть общие черты. Мне нужно уловить именно те особенности, что бы почувствовать, что я начинаю понимать, что такое программирование.

DillerInc
23-12-2007, 20:01
я бы посоветовал наверно почитать Джеффри Рихтера "Создание эффективных win32-приложений" »

Mr666
23-12-2007, 20:34
Посмотрел книжку. Могу предположить, что это достаточно интересная книга. Но дело в том, что я собираюсь писать под *nix. Есть ли аналогичная книга для Unix like систем?

P.S. Понимаю, что этот вопрос подходит под раздел "Программирование в *nix", но кто знал, что в теме по общему вопросу появится такой вопрос.

azbest
23-12-2007, 21:51
но пополнять и без того огромную армию криворуких программистов мне как то не хочется
А зачем заранее себя настраивать на криворукость. Если конкретно знаешь что нужно сделать и есть хоть малейшее представление о программировании - пробуй. Тут ведь главное практика. Я начал с "книжки" для 10-классников. Мне попезло там была куча простых задач и на доступном языке - как всё это "запрограммировать". А дальше от простого к сложному. Да - самое главное сначала "набей руку" в написании (готовые шаблоны и тд) а потом уже собирай заказы а то если наоборот - можно сесть в лужу.

Oleg_SK
23-12-2007, 21:56
Например, для себя я выбрал C++ по книге Бьерна Страуструпа. »
Это плохой выбор для знакомства с языком (хотя Бьерн Страуструп и является создателем этого языка, но похоже не умеет объяснять его доступно). IMHO, читать эту книгу стоит уже после того, как освоишь этот язык.

Diseased Head
23-12-2007, 21:58
Любая программа получается кривой и пишется очень долго, а потом тестируется тоже очень долго. Это я говорю об очень маленьких программах. »Хм... А что вы под этим подразумеваете? Я вот начинал с простых задач. Вроде: "отсортировать элементы массива по возрастанию".

Oleg_SK
23-12-2007, 22:12
Mr666
Вроде: "отсортировать элементы массива по возрастанию". »
Для начала можно попробывать элементарную пузырьковую сортировку. Потом можно будет перейти к более сложным, но и более эффективным алгоритмам сортировки. А вообще, если вас интересуют именно алгоритмы, то советую почитать сборник книг Дональда Кнута.

Mr666
10-01-2008, 12:12
Я нашёл СУПЕР книгу по программированию!!! Это именно для людей, которые хотят понять как программировать не х** знает как, а именно эффективно. Купил даже бумажный вариант.

Книга Стива Макконела: Совершенный код

Рекомендую всем!

Admiral
10-01-2008, 21:10
Mr666, в продолжение возьми "Жемчужины программирования" Джона Бентля.

NagLovik
30-01-2008, 13:50
Формулировка вопроса: я - пользователь без каких -то особых навыков работы, есть необходимость создания небольшой програмки для формирования отчетности (сводной информации). 10-15 показателей, 3-4 графы, несколько филиалов-организаций, от которых поступает информация. Слышал что можно на базе Excel что-то сварганить. Подскажите литературу, статейки да и с чего вообще начинать. Хотелось бы все самому освоить.




© OSzone.net 2001-2012