Показать полную графическую версию : Как научиться программировать со слабым математическим аппаратом?
Привет всем!
Интересует информация (ввиде книг/статей), где даны основные алгоритмы. Я знаю такую литературу как "Построение и анализ алгоритмов" или "Исскуство программирования", но там очень много чисто теоретической математики. А у меня с математикой не очень, поскольку там большинство математических выводов абсолютно необъясняются.
Хотелось бы информацию по основным алгоритмам в более доступном виде, где более менее понятно человеку не имеющему классные знания в математике.
P.S. Язык программирования не важен, так как основная сложность в изучении программирования это логика алгоритмов, а не программные конструкции конкретного языка.
DillerInc
21-12-2007, 18:00
Mr666, а можно задать риторический вопрос: "Для чего вы хотите использовать программирование?"
Например.
Кто-то просто перетаскивает кнопки и прочее на форме в среде разработки Delphi и считает,что он программист.Математика,понятно,остаётся не у дел.
Кто-то внимательно читает мануалы Интел,чтобы понять,как правильно обрабатывать программные прерывания на уровне ядра,и тоже может назваться программистом.Математика снова тихо курит в сторонке.
Теперь ещё один вопрос к остальным участникам: "Какая область программирования,где активно требуется знание математики(хорошее знание)?"
И: "Что же из себя представляют те некие алгоритмы,где требуется эта математика?".
Начни с информатики для школьников. Там много практических несложных задач и основы построения алгоритмов.
Diseased Head
22-12-2007, 18:12
Mr666, скажу вам честно. У меня иногда складывается впечатление что сами авторы некоторых книг, не до конца секут в математике. Например есть у меня одна книга: "ДИСКРЕТНАЯ МАТЕМАТИКА дла програмистов". Так там автор вообще загнул, он там пишет на синтезированном "програмно-матиматическом" языке. Не буду говорить уверенно (потому как сам не спец), но помоему, бред. Или может я чё не понял...
DillerInc, а я скажу сильнее. Плохо зная математику ("общеобразовательную") можно даже и коды писать (Win32 и пр.). Я вот когда изучал C++, математику плохо знал, и при этом очень хорошо получалось.
Но что-бы быть очень хорошим программером, надо математику знать хорошо.
Теперь ещё один вопрос к остальным участникам: "Какая область программирования,где активно требуется знание математики(хорошее знание)?"
И: "Что же из себя представляют те некие алгоритмы,где требуется эта математика?". »Области: графика, звук, игры, мат.проги, физ.проги, хим.проги... Да и много где ещё. И чем сложнее прога, тем более в ней математики (обычно).
Алгоритм? Ну например, приближённое вычисление интеграла.
А может вы и не знаете, но такие вещи как: алгоритм, объект, система, множество, тоже относятся к математике.
Скажу так. Точного направления в программировании я не выбрал. Но какие бы книги по конкретным языкам не читал я каждый раз сталкивался с непреодолимой трудностью. Трудность не в освоении синтаксиса языка, а построении любых, даже самых простых программ. То есть я не знаю никакой дисциплины. Надо как то правильно ориентироваться в логике построения программ, что бы не писать чёрт знает что. В книге Кнута и прочих знаменитых писателей об алгоритмах я увидел описание того, как именно надо программировать. Но там было очень наворочено и явно расчитана для студентов, которым в вузе преподают математику.
Я же хочу книжку об алгоритмах, только по проще чем Кнут. То есть всё что я хочу, это книгу по алгоритмам (или про то как надо правильно программировать), только более доступную для человека, который не заморочен математикой.
Алгоритм? Ну например, приближённое вычисление интеграла. »
Такие алгоритмы известны (Алгоритм прямоугольников, трапеций, Симсона. Придумывать можно только свой новый.) Или подразумевается его практическая реализация?
Человек с плохой пространственной ориентацией (читай плохим пониманием геометрии) серьёзные графические приложения с нуля не напишет, а вот по шаблону при хорошем аналитическом мышлении - напишет, но за рамки возможностей шаблона на первых порах не выйдет.
Словосочетание "знание математики" это абстракция.
Требуются плотные знания определенных разделов, но все горе в том что невозможно выучить только определенные разделы, т. к. они ссылаются на другие области.
"Какая область программирования,где активно требуется знание математики(хорошее знание)?" »
Реляционные базы данных - требуют знания реляционной алгебры.
Это мой извечный кошмар.
Я не встречал еще ни одного программиста на 1С, который бы "sensored", не пытался работать с циклами.
Думал в SAP R/3 по другому.
Пользуясь случаем, хочу обратиться к прикладным программистам ERP-систем.
Господа!
Учите, реляционную алгебру и опeрации со множествами.
Да же 1С, еще в версии 7.7 писала, что встроенный в движок оптимизатор запросов не умеет работать с циклами. Точнее ни один оптимизатор не умеет, надеется, понимаешь, на человеческий разум.
Почему тысячи ситемных администраторов вынуждены занимаються эзотерическим сексом с MS Terminal Server в тщенной попытке ускорить милионны вложенных циклов которые вы нахренашили в теле процедур 1С?
Администраторы Sun и IBM рыдают над мультипроцессорными мeйнфреймами, которыe теоретически с легкостью могут расчитать создание Земли Господом Богом, но средней руки ABAP-программер, не напрягаясь, отправляет систему на полтора дня в кому одним квартальным отчетом.
Почему вы так плохо учились, господа?!
Неужели никто не знает какую нибудь маленькую книгу или статьи, в которых раскрывают глаза на то, как же всё таки научится эффективно программировать на любом языке.
Взять те же циклы. Можно просто от балды его построить без всяких методов (дисциплин), а потом тестить его до опупения (вот именно это меня уже задолбало). А можно построить цикл с помощью инварианта и иметь более менее структурированный и чёткий подход к написанию цикла.
Или те же рекурсивные алгоритмы, как их писать, методы (а не от балды) их эффективного построения.
Всё это описывается в таких книгах как "Алгоритмы: Построение и анализ":
http://www.kalinin.ru/comment/books/11_08_00.shtml
Но там для неподготовленного человека немного круто написано. Хочется перед тем как осваивать такие книги, что нибудть попроще (для того, что бы уже начать понимать алгоритмы).
IMHO, есть достаточно много областей программирования, где достаточно знать такие элементарные математические операции как сложение-вычетание, умножение-деление, проценты... Некоторое время назад я около двух лет работал 1С-программистом, и никакие более сложные познания математики мне при этом не понадобились (и я их уже забыл)... Я не говорю тут о таких мат. понятиях, которые неразрывно связаны с программированием (например: цикл, рекурсия, массив, функция и т.д.), т.к. их понимать нужно по любому, но опять же IMHO для этого не нужно напрягаться, т.к. и так все интуитивно понятно или объясняется в соответствующих учебниках по программированию. Для своего удовольствия программирую на Ассемблере под Win32, и также не испытываю особых потребностей специально изучать математику.
DillerInc
23-12-2007, 16:49
Вот,вспомнил одну из областей программирования,где необходимы глубокие познания в математике -- криптография.И соответственно криптоанализ.
как же всё таки научится эффективно программировать на любом языке. »
...по-моему,такая постановка вопроса -- это всё равно,что тыкать пальцем в небо.У программирования огромное число задач,каждая из которых требует своего подхода.
Короче,я бы посоветовал наверно почитать Джеффри Рихтера "Создание эффективных win32-приложений" -- считается очень достойным материалом.
Наверное я всё таки не смог правильно сформулировать свой вопрос. Но попытаюсь ещё раз, так как для меня это очень важно. Например, для себя я выбрал C++ по книге Бьерна Страуструпа. В процессе изучения (только на начальном этапе) я понял, что мне чего то очень нехватает. Сложностей в освоении синтаксиса у меня не возникает. Но программировать нормально не получается. Любая программа получается кривой и пишется очень долго, а потом тестируется тоже очень долго. Это я говорю об очень маленьких программах. Я не сторонник тупого табуреточного подхода идти напролом и делать так дальше, так как совершенно очевидно что у меня нет никакой системы, нет правильного подхода к построению программ. Может и можно вырасти и без этого, но пополнять и без того огромную армию криворуких программистов мне как то не хочется. Поэтому мне нужна доступная литература по тому как программировать быстро и эффективно (только не надо спорить, что быстро не бывает, думаю вы меня поймёте). В любой программе, на любом языке, есть общие черты. Мне нужно уловить именно те особенности, что бы почувствовать, что я начинаю понимать, что такое программирование.
DillerInc
23-12-2007, 20:01
я бы посоветовал наверно почитать Джеффри Рихтера "Создание эффективных win32-приложений" »
Посмотрел книжку. Могу предположить, что это достаточно интересная книга. Но дело в том, что я собираюсь писать под *nix. Есть ли аналогичная книга для Unix like систем?
P.S. Понимаю, что этот вопрос подходит под раздел "Программирование в *nix", но кто знал, что в теме по общему вопросу появится такой вопрос.
но пополнять и без того огромную армию криворуких программистов мне как то не хочется
А зачем заранее себя настраивать на криворукость. Если конкретно знаешь что нужно сделать и есть хоть малейшее представление о программировании - пробуй. Тут ведь главное практика. Я начал с "книжки" для 10-классников. Мне попезло там была куча простых задач и на доступном языке - как всё это "запрограммировать". А дальше от простого к сложному. Да - самое главное сначала "набей руку" в написании (готовые шаблоны и тд) а потом уже собирай заказы а то если наоборот - можно сесть в лужу.
Например, для себя я выбрал C++ по книге Бьерна Страуструпа. »
Это плохой выбор для знакомства с языком (хотя Бьерн Страуструп и является создателем этого языка, но похоже не умеет объяснять его доступно). IMHO, читать эту книгу стоит уже после того, как освоишь этот язык.
Diseased Head
23-12-2007, 21:58
Любая программа получается кривой и пишется очень долго, а потом тестируется тоже очень долго. Это я говорю об очень маленьких программах. »Хм... А что вы под этим подразумеваете? Я вот начинал с простых задач. Вроде: "отсортировать элементы массива по возрастанию".
Mr666
Вроде: "отсортировать элементы массива по возрастанию". »
Для начала можно попробывать элементарную пузырьковую сортировку. Потом можно будет перейти к более сложным, но и более эффективным алгоритмам сортировки. А вообще, если вас интересуют именно алгоритмы, то советую почитать сборник книг Дональда Кнута.
Я нашёл СУПЕР книгу по программированию!!! Это именно для людей, которые хотят понять как программировать не х** знает как, а именно эффективно. Купил даже бумажный вариант.
Книга Стива Макконела: Совершенный код
Рекомендую всем!
Mr666, в продолжение возьми "Жемчужины программирования" Джона Бентля.
NagLovik
30-01-2008, 13:50
Формулировка вопроса: я - пользователь без каких -то особых навыков работы, есть необходимость создания небольшой програмки для формирования отчетности (сводной информации). 10-15 показателей, 3-4 графы, несколько филиалов-организаций, от которых поступает информация. Слышал что можно на базе Excel что-то сварганить. Подскажите литературу, статейки да и с чего вообще начинать. Хотелось бы все самому освоить.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.