Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритмы. Учебники, подскажите 
:(
    Опции темы
webz
  Дата 3.1.2010, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



Добрый день. 

Не знаю, правильно ли выбрал раздел для вопроса. У меня несколько вопросов:

Начал изучать программирование (около 2 месяцев PHP, если точно)
Столкнулся с тем, что сам синтаксис языка выучить, найти нужную функцию в документации относительно просто. Но никак не получается начать "думать" как программист. 
Видеть как-то решение задачи.. 
Дальнейшие поиски повернули в сторону алгоритмов. Видимо это самое важное, 
а как написать на языке уже второй вопрос. Учебники, которые находил (книги Кнута, книга Кормена "Алгоритмы. Построение и анализ") - все требует знания математики. У меня эти знания со школы уже подвыветрились. 

Может есть что-то более доступное для понимания? 
Если заниматься с преподавателем математики - на чем акцентировать внимание? 
Рад услышать любые советы. 
PM MAIL   Вверх
kemiisto
Дата 3.1.2010, 19:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 1
Всего: 160



Цитата(webz @  3.1.2010,  19:43 Найти цитируемый пост)
Может есть что-то более доступное для понимания?

Есть. Например, Ананий В. Левитин, Алгоритмы: введение в разработку и анализ. Или недавно вышедшая книга Никлауса Вирта.

Но без математики всё же никак. Надо знать многие разделы математического анализа. Можно воспользоваться классическим учебником В. А. Ильин, В. А. Садовничий, Бл. Х. Сендов, Математический анализ. В 2 частях. В продаже сам найти не смог, но по сети ходит электронная версия середины 80-х.

Ну и без дискретной математики далеко не уедешь. Тут могу рекомендовать два труда с одинаковым названием "Дискретная математика для программистов" за авторством Ф. А. Новикова и Р. Хаггарти.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
webz
Дата 3.1.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



kemiisto, спасибо!
PM MAIL   Вверх
maxdiver
Дата 4.1.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: нет
Всего: 18



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

Конкретную книгу я советовать не буду, тем более тут всё от языка сильно зависит. Только PHP на эту роль никак не тянет smile Выберите какой-нибудь нормальный язык, тогда можно будет более конкретно о книгах поговорить, впрочем тогда и на этом же форуме можно будет найти тему с соответствующим языком.

Лично я поступал следующим образом: сначала я некоторое время тратил на хорошее изучение синтаксиса языка. Несколько месяцев я читал различные книги, начиная с самых азов, и постепенно переходя ко всё более углубленным книгам. За это время помимо самого языка впитывается и его "философия", ведь в этих книгах даются рекомендации опытных людей, обобщающие в себе огромный накопленный опыт. И только потом я устанавливаю среду программирования себе на компьютер. Затем я ставлю себе какую-нибудь учебную задачу, поначалу простую, но и чтобы ей было интересно заниматься, и долблю-долблю её, пока всё не выйдет так, как я и хотел, и чтобы при этом и код был достаточно красивым и отвечал требованиям профессионалов smile Ну и вот так, за несколько таких задач, вполне можно получить достаточно практики, к уже имеющимся теоретическим знаниям.

И математика при этом редко оказывается нужна, точнее, когда оказывалось необходимым решить конкретную задачу, я искал книги/статьи по теме и разбирался в решении. Изучать все подряд алгоритмы, пусть даже и совсем базовые и простые, в такой ситуации мне кажется неразумным. Дискретная математика, комбинаторика, теория чисел - во всё это я углубился позже, когда вплотную занялся олимпиадами (опомнился вдруг, в универе, поиграться решил smile хотя сейчас, похоже, это кое-какие дивиденды мне даст... smile )
PM MAIL WWW ICQ   Вверх
Pavia
Дата 4.1.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: нет
Всего: 12



Математика в алгоритмах не так важна. Важно абстрактное мышление которому как раз и учит математика. А также математика это язык на котором приходится разговаривать чтобы понимать некоторые вещи.

Предлагаю начать с "С. Окулов Программирование в алгоритмах". Алгоритмы можно писать на любом языке. Даже на бэсике.
В книжке достаточно теории для реализации и есть задачи.  И минимум математике. А если захочется задач по интересней то можно найти много сборников. К примеру  "Особенности национальных задач по информатике".

Можно найти также много книг с математикой.  Сам я увлекся распознаванием образов и обработкой сигналов. Вот тут мне встретилась вся высшая математика и не только. 
PM MAIL   Вверх
webz
Дата 5.1.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.1.2010

Репутация: нет
Всего: нет



maxdiver
Pavia,
спасибо большое за ответы! 
PM MAIL   Вверх
_Y_
Дата 8.1.2010, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Не знаю, подойдет ли это Вам, но сам я большой поклонник старых-добрых блок-схем. Алгоритм расписывается в виде схемы и, таким образом, становится ясным и наглядным.

Может стОит взять пару-тройку несложных общеизвестных алгоритмов (например сортировку перестановкой, сортировку пузырьком, еще что-нибудь) и попробовать самому расписать их в виде блок-схем по всем правилам? Потом взяться за собственную задачу, не намного более сложную, и нарисовать до того, как начать программировать. Понятно, что когда пойдут сложные задачи, придется составлять отдельные схемы для подпрограмм (методов, функций).

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Vad118
Дата 10.1.2010, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 28.12.2009

Репутация: нет
Всего: нет



Цитата(_Y_ @ 8.1.2010,  19:55)
Не знаю, подойдет ли это Вам, но сам я большой поклонник старых-добрых блок-схем. Алгоритм расписывается в виде схемы и, таким образом, становится ясным и наглядным.

Может стОит взять пару-тройку несложных общеизвестных алгоритмов (например сортировку перестановкой, сортировку пузырьком, еще что-нибудь) и попробовать самому расписать их в виде блок-схем по всем правилам? Потом взяться за собственную задачу, не намного более сложную, и нарисовать до того, как начать программировать. Понятно, что когда пойдут сложные задачи, придется составлять отдельные схемы для подпрограмм (методов, функций).

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

Кстати говоря ведь именно так и проходит обучение программированию в учебных заведениях. Берите учебник по программированию, по любому языку(можно и по php главное чтоб там были как-раз задачки подобного типа - сортировка пузырьком, поиск в массиве, и прочие элементарные, если таковых нет, ищите другой учебник smile Например Н. Культин c\c++ в задачах и примерах. - т.е. фактически вам нужен задачник по программированию), и расписывайте их в виде блок-схем. Если не владеете блок схемами, то посмотрите где-нить примеры (к сожалению сейчас нет под рукой ничего чтобы конкретно посоветовать), и начинайте рисовать свои блок схемы к тем самым простым задачкам. 

Никакая высшая математика, и проч. не понадобится, всё что вам нужно - алгебра логики - это школьникам ещё дают - элементарщина, если пороетесь в инете найдёте. В принципе дискретная математика тоже в эту сторону. Но основой этих простых алгоритмов будет только ваше собственное логическое мышление, а когда набьёте руку на этих простых задачах, сами поймёте что вам нужно дальше.
PM MAIL   Вверх
esperanto
Дата 13.1.2010, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 31.5.2003

Репутация: нет
Всего: 4



Цитата(Vad118 @ 10.1.2010,  02:01)
1)Кстати говоря ведь именно так и проходит обучение программированию в учебных заведениях. 

Берите учебник по программированию, по любому языку(можно и по php главное чтоб там были как-раз задачки подобного типа - сортировка пузырьком, поиск в массиве, и прочие элементарные, если таковых нет, ищите другой учебник smile Например Н. Культин c\c++ в задачах и примерах. - т.е. фактически вам нужен задачник по программированию), и расписывайте их в виде блок-схем. Если не владеете блок схемами, то посмотрите где-нить примеры (к сожалению сейчас нет под рукой ничего чтобы конкретно посоветовать), и начинайте рисовать свои блок схемы к тем самым простым задачкам. 

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

1) Нет. Не так.


2) Вы заблужаетесь, мало выдумать алгоритм. Наде уметь доказать что он работает правильно. Уметь посчитать его сложность и оценить эффективность.


--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET
PM MAIL   Вверх
bilbobagginz
Дата 13.1.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



Цитата(Pavia @  4.1.2010,  13:28 Найти цитируемый пост)
Математика в алгоритмах не так важна. Важно абстрактное мышление которому как раз и учит математика. 

КСТАТИ, ДА.
Важно абстрактное мышление, а путей натренировать это абстрактное мышление лучше математики - на настоящий момент нету.

Добавлено через 14 секунд
esperanto, +1



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
hkdkest
  Дата 14.1.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 30.11.2008

Репутация: нет
Всего: 1



без азов математики никуда (то что в школе проходят)
PM MAIL WWW   Вверх
bumbastic
Дата 15.1.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 8.5.2007

Репутация: нет
Всего: 1



Цитата(kemiisto @  3.1.2010,  19:14 Найти цитируемый пост)
Есть. Например, Ананий В. Левитин, Алгоритмы: введение в разработку и анализ. 


kemiisto, не подскажете где ее можно скачать в электронном виде? очень нужно! 

сам не нашел
PM MAIL   Вверх
bumbastic
Дата 18.1.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 8.5.2007

Репутация: нет
Всего: 1



нет значит в электронном виде? так понимать "молчание НЕягнят"?  smile 

Альфред В.Ахо, Джон Э.Хопкрофт, Джеффри Д.Уильман "Структуры данных и алгоритмы"
очень доступно написано. даже я понял  smile 
PM MAIL   Вверх
jijidesign
Дата 31.8.2010, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 31.8.2010

Репутация: нет
Всего: нет



ох, ох. Да, да абстракция это хорошо, НО мы забываем что программисты люди конкретные, и им много приходится думать, рассуждать, связывать цепочки и анализировать это. Логическое мышление - это наше все. Как говорят люди играющие на профессиональном уровне в шахматы, бридж могут стать хорошими программистами. А математика, не вся нужна программистам, ну конечно программисткую математику не надо запрещать, а вот мат анализ бывает лишний, просто у нас в РОССИИ всей же обучают по Советской программе, когда все 5 курсов долбят матаном. Да это полезно, но не всегда. Вид может человеку некогда не пригодится векторная алгебра, линейная алгебра, аналит. геометрия - он просто не хочет писать свой 3D движок. 
Так что, надо определится чем хочешь заниматься, какими отраслями, и с этого пункта уже ориентироваться на какие в первую очередь нужны знания. ;)
Например я стал изучать математику, не потому что мне нужно, а потому что нравится, и охота научится решать самому сложные примеры, и искать свои методы решения. - Нравится, и все. Хотя, лень убивает бывает.
Так что удачи в свои начинаниях, помни всегда правило дедушки "Учись, учист и еще раз учись". Надеюсь чью то самооценку не задел.
PM MAIL   Вверх
kemiisto
Дата 31.8.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 1
Всего: 160



Цитата(kemiisto @  3.1.2010,  20:14 Найти цитируемый пост)
Можно воспользоваться классическим учебником В. А. Ильин, В. А. Садовничий, Бл. Х. Сендов, Математический анализ. В 2 частях.

Хороший двухтомник. Удалось купить у букинистов.

Кстати говоря, вышла новая версия классичсекого труда Н. Вирта. Алгоритмы и структуры данных. Хорошая книга.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.1389 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.