Как научиться программировать со слабым математическим аппаратом?
Привет всем!
Интересует информация (ввиде книг/статей), где даны основные алгоритмы. Я знаю такую литературу как "Построение и анализ алгоритмов" или "Исскуство программирования", но там очень много чисто теоретической математики. А у меня с математикой не очень, поскольку там большинство математических выводов абсолютно необъясняются. Хотелось бы информацию по основным алгоритмам в более доступном виде, где более менее понятно человеку не имеющему классные знания в математике. P.S. Язык программирования не важен, так как основная сложность в изучении программирования это логика алгоритмов, а не программные конструкции конкретного языка. |
Mr666, а можно задать риторический вопрос: "Для чего вы хотите использовать программирование?"
Например. Кто-то просто перетаскивает кнопки и прочее на форме в среде разработки Delphi и считает,что он программист.Математика,понятно,остаётся не у дел. Кто-то внимательно читает мануалы Интел,чтобы понять,как правильно обрабатывать программные прерывания на уровне ядра,и тоже может назваться программистом.Математика снова тихо курит в сторонке. Теперь ещё один вопрос к остальным участникам: "Какая область программирования,где активно требуется знание математики(хорошее знание)?" И: "Что же из себя представляют те некие алгоритмы,где требуется эта математика?". |
Начни с информатики для школьников. Там много практических несложных задач и основы построения алгоритмов.
|
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, и также не испытываю особых потребностей специально изучать математику.
|
Вот,вспомнил одну из областей программирования,где необходимы глубокие познания в математике -- криптография.И соответственно криптоанализ.
Цитата:
Короче,я бы посоветовал наверно почитать Джеффри Рихтера "Создание эффективных win32-приложений" -- считается очень достойным материалом. |
Наверное я всё таки не смог правильно сформулировать свой вопрос. Но попытаюсь ещё раз, так как для меня это очень важно. Например, для себя я выбрал C++ по книге Бьерна Страуструпа. В процессе изучения (только на начальном этапе) я понял, что мне чего то очень нехватает. Сложностей в освоении синтаксиса у меня не возникает. Но программировать нормально не получается. Любая программа получается кривой и пишется очень долго, а потом тестируется тоже очень долго. Это я говорю об очень маленьких программах. Я не сторонник тупого табуреточного подхода идти напролом и делать так дальше, так как совершенно очевидно что у меня нет никакой системы, нет правильного подхода к построению программ. Может и можно вырасти и без этого, но пополнять и без того огромную армию криворуких программистов мне как то не хочется. Поэтому мне нужна доступная литература по тому как программировать быстро и эффективно (только не надо спорить, что быстро не бывает, думаю вы меня поймёте). В любой программе, на любом языке, есть общие черты. Мне нужно уловить именно те особенности, что бы почувствовать, что я начинаю понимать, что такое программирование.
|
Цитата:
|
Посмотрел книжку. Могу предположить, что это достаточно интересная книга. Но дело в том, что я собираюсь писать под *nix. Есть ли аналогичная книга для Unix like систем?
P.S. Понимаю, что этот вопрос подходит под раздел "Программирование в *nix", но кто знал, что в теме по общему вопросу появится такой вопрос. |
Цитата:
|
Цитата:
|
Цитата:
|
Mr666
Цитата:
|
Я нашёл СУПЕР книгу по программированию!!! Это именно для людей, которые хотят понять как программировать не х** знает как, а именно эффективно. Купил даже бумажный вариант.
Книга Стива Макконела: Совершенный код Рекомендую всем! |
Mr666, в продолжение возьми "Жемчужины программирования" Джона Бентля.
|
Формулировка вопроса: я - пользователь без каких -то особых навыков работы, есть необходимость создания небольшой програмки для формирования отчетности (сводной информации). 10-15 показателей, 3-4 графы, несколько филиалов-организаций, от которых поступает информация. Слышал что можно на базе Excel что-то сварганить. Подскажите литературу, статейки да и с чего вообще начинать. Хотелось бы все самому освоить.
|
Кодинг без знания математики...
Интересует такое явление...
Как часто в жизни кодера ему может пригодится математика? Я не говорю о программировании микропроцессоров или программ для сверх быстрых расчётов. Скорее о более мирном кодинге софта, офисного, домашнего, под мобильники, итд... Сам учусь на прогера но увы в школе (как и многие из нас) халявил...и математику (в частности алгебру) очень запустил. |
Математика(будь то школьная алгебра или Спец Главы Мат Анализа)-воспитывают в человеке умение мыслить логически. Любая,даже самая простая программа, основана на логическом мышлении.
Да,возможно, Вам никогда в будущем не понадобится писать алгоритмы решения сложных сходящийся рядов, матриц,СЛАУ, но при изучении алгоритмов поиска,сортировки,работы с базами данных-математика всплывет, я вас уверяю. |
Цитата:
|
мыслить логически можно...
Решать нельзя. Как только потребуется рассчитать некую цифру, будет "зачада". В повседневной нужде 9ти классов образования хватит. Так же очень поможет справочник Выгодского. Ну а что бы не быть дураком (не в обиду), математику(алгебру, геометрию) придется выучить. Это базовые понятия и навыки, без них никуда. |
Цитата:
|
сумрак, Такая темка у нас есть в программировании - и посему я объединяю темы.
|
Цитата:
Кнут, на таком уровне - не помошник, Кнут для профессионалов, Твоя задача - как можно быстрей зацепиться за рабочую программу, и смотреть её в отладчике, это практика, чем больше, тем лучше, чтение вторично. Следовательно, по мере работы с программами, Ты уже будешь представлять, как работает алгоритм, что происходит в памяти, ну и конечно надо читать литературу. Больше практики, методом проб и ошибок - ключ к успеху. |
На мой взгляд, из "математик", если обобщенно, программисту необходимы несколько предметов:
1. Алгебра и математический анализ. К примеру, в программах для расчета каких либо коэффициентов и прочего просто необходимо знать матан. 2. Дискретная математика и логика. Без этого вообще никуда - от построения и понимания общей логики до создания графов, деревьев, и прочей прелести :). К слову, мой друг, когда писал одну очень серьезную программу , дискретку до дыр затер. Все опять же зависит от прикладной задачи. Я, к примеру, писал как то для себя программу по автоматической удаленной установке Radmin'а - там математики, как таковой, ноль. Тупо скопировать, вставить, обработать и т.д. И хотя математика не использовалась, на выходе получилась очень маленькая и удобная программка. Или программы-клиенты по работе с базами данных - там тоже нет сверхматематики - вывести данные, вбить новые, почитать и т.д. Mr666, Вам не нужно забивать голову Кнутом или мыслями о том, что из высшей математики вам необходимо. Лучше всего - понять, какие задачи вы будете реализовывать в качестве программиста. |
сумрак
Цитата:
И с какой стати Вы решили, что человек мыслит логически --- в школе рассказали…???... Так ведь вроде как нет такого. Тренированный человек может логично излагать, то до чего он своей соображалкой дощёл. На уровне логики он ВСЁ переосмысливает и сам себе ЭТО формулирует, А потом и другим тоже разъясняет. А вот как он додумался --- непонятно. Специалисты по искусственному интеллекту давно в это дело упёрлись --- появились когнитивные науки. А ежели б человек мыслил логически, то был бы таким же идиотом, как машина. Если Вы что-то интересное придумали, то без машины оно большего стоит… |
Цитата:
Цитата:
И невероятно хорошее логическое мышление, чтобы грамотно спроектировать классы и отношения между ними.. Проектирование приложения довольно трудоемкая задача. |
mrcnn, тут порой проблема собственные мысли правильно изложить (чтобы просто, понятно, доступно, и ничего лишнего), а ты про философию и проектирование приложений! :teeth:
|
Советую курс "Программировать может каждый"
|
sav_mon@twitter, я надеюсь это только начало. Потому что из того что есть, программировать научиться нельзя! Т.к. на предложенном ресурсе в самой начальной форме разобран интерфейс Delphi 7. С указанием на некоторых мифических программистов, считающих что лучше этой среды ничего нет.
|
Открываем Intuit.ru и начинаем читать и учиться. Построено уроками да еще и бесплатно. На мой взгляд, отличнейший ресурс.
|
Цитата:
Моё мнение, --- прогаммированию никакие курсы и самые хорошие книги не научат. Хотя книги нужны как справочники и для систематизации знаний... Для того, чтобы научиться (можно и с нуля) нужна реальная задача, которая для тебя будет профессиональной работой. Тут хочешь/не_хочешь, а это работа и её надо делать ежедневно. Поневоле научишься. А если это делать нравится, то прогресс быстро пойдёт. Ну и задачу, которую автоматизируешь обязательно необходимо знать. В ней нужно в первую очередь быть профессионалом, а программирование вторично. Без этого программист только простой кодировщик. А по другому --- одно баловство... Имхо так. |
Цитата:
|
Цитата:
Вы это имели в виду...???... научится <===> научитЬся |
Название темы сменил и продолжаем разговор по существу. :)
|
Время: 21:27. |
Время: 21:27.
© OSzone.net 2001-