Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2012, 17:37   #1
rushmod
 
Регистрация: 04.08.2012
Сообщений: 4
По умолчанию Литература

Не могли бы вы дать список книг, в которых рассматриваются общие вопросы программирования, алгоритмов, "философия программирования", история и общие аспекты вычислительной техники, операционных систем и так далее. Хотелось бы почитать "классиков жанра". Можно на английском.
rushmod вне форума Ответить с цитированием
Старый 04.08.2012, 17:40   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну тогда - в первую очередь Дональд Кнут "Искусство программирования". Н. Вирт "Алгоритмы и структуры данных". Ч. Петцольд "Код".
s-andriano вне форума Ответить с цитированием
Старый 04.08.2012, 17:54   #3
rushmod
 
Регистрация: 04.08.2012
Сообщений: 4
По умолчанию

Да, Кнута только что сам нашел, спасибо. Я хочу основательно изучить вопросы, касаемые вычислительной техники, по-большей степени, конечно, высокоуровневое программирование, но также хочу иметь хорошее представление и о низкоуровневых, аппаратных процессах, знать, что происходит "на корню", а также изучить специальные разделы математики, которые необходимы. Если бы вы могли дать список книг и по этим вопросам, я был бы вам чрезвычайно признателен.
rushmod вне форума Ответить с цитированием
Старый 04.08.2012, 18:21   #4
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Немного не то, что вы хотите, наверное.
Стив Макконел - Совершенный код.
Рассказывается про общие принципы написания программ. Всё мое понимание(пусть и скудное) ООП в основном почерпнуто оттуда.

Некоторые философские мысли можно почитать в автобиографии Торвальдса. Еще у Джоэла Спольски(книги его не читал, но пару статей видел).
Опять же, возможно, не то, что Вам нужно

Последний раз редактировалось Sna1L; 04.08.2012 в 18:23.
Sna1L вне форума Ответить с цитированием
Старый 04.08.2012, 23:29   #5
rushmod
 
Регистрация: 04.08.2012
Сообщений: 4
По умолчанию

Спасибо, посмотрю. Я не ищу чего-то конкретного, просто хочу настроить мозги на нужную волну перед изучением конкретных вопросов^^
rushmod вне форума Ответить с цитированием
Старый 05.08.2012, 11:52   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от rushmod Посмотреть сообщение
Да, Кнута только что сам нашел, спасибо. Я хочу основательно изучить вопросы, касаемые вычислительной техники, по-большей степени, конечно, высокоуровневое программирование, но также хочу иметь хорошее представление и о низкоуровневых, аппаратных процессах, знать, что происходит "на корню", а также изучить специальные разделы математики, которые необходимы. Если бы вы могли дать список книг и по этим вопросам, я был бы вам чрезвычайно признателен.
Конкретных книг не подскажу, но советую обратить внимание на математическую логику и булеву алгебру в частности. Практика как этого форума, так и других показывает, что почему-то именно в этих разделах математики оказываются наибольшие пробелы в образовании.
Это что касается вообще программирования.
Если хоть каким-то образом интересует 3D-графика, то подробное изучение аналитической геометрии.

А по "железу" - даже и не знаю, что посоветовать. Дело в том, что большая часть информации стремительно устаревает, поэтому с одной стороны желательно хорошо представлять общие архитектурные принципы, с другой - уметь выделить, что из новинок является принципиальным, а что - преходящим. К сожаления в работах, посвященных "околоаппаратной" оптимизации (т.е. оптимизации с учетом конкретных особенностей "железа"), очень часто действительно полезные сведения перемежаются с давно устаревшими. Не говоря о том, что сама книга может быть выпущена 10 лет назад, так и еще на момент выхода часть сведений могла устареть еще на 10 лет.
Бывает и наоборот. Например в одной из книг Бартеньева, посвященной оптимизации на Фортране, приводится пример, что в зависимости от порядка перебора элементов двумерного массива время выполнения программы может меняться более чем в 3 раза. Проверив пример на своем компьютере, я обнаружил разницу более чем 10 раз. Т.е. с течением времени эта разница не только не "устаревает", но становится все более актуальной.
А для того, чтобы отслеживать такие вещи, нужно интересоваться историей развития вычислительной техники чуть не с самого начала. А это отнимает довольно много времени, поэтому если это не представляет явного профессионального интереса, то, мне кажется, все это отслеживать нереально.
Я, например, когда перестал писать для "Мира ПК", как-то почти и перестал следить за новинками.
s-andriano вне форума Ответить с цитированием
Старый 05.08.2012, 15:30   #7
rushmod
 
Регистрация: 04.08.2012
Сообщений: 4
По умолчанию

Спасибо за столь подробный ответ, мне сейчас чрезвычайно необходимо "расширение кругозора" в этой области х)

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

Что касается профессиональной деятельности, то я вообще в этом году начинаю учиться на биолога, но меня крайне интересуют эксперементы in silico, моделирование обобщенных биосистем (как внутри- так и надорганизменных), нейросетей и так далее. Поэтому я хочу посвятить бОльшую часть свободного времени этим вопросам х)

Еще раз благодарю.

UPD: 3D графика - да! В детстве я обожал часами играться в 3D-Max'e, перебирать различные параметры, которых там целая туча, особенно интересно было разбираться в визуализаторе (я, кажется, V-ray пользовался). До сих пор помню статьи о методе Монте-Карло, о фотонных картах, о переотражениях и прочем... Хорошо, что вы напомнили об этом, а то я как-то совсем забыл - надо будет изучить эти вопросы с новых позиций х)

Последний раз редактировалось rushmod; 05.08.2012 в 15:38.
rushmod вне форума Ответить с цитированием
Старый 05.08.2012, 15:57   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от rushmod Посмотреть сообщение
Я думал еще в первую очередь изучить теорию чисел, функциональный анализ и статистику.
На мой взгляд, это, в какой-то степени, аналогично аналитической геометрии - сильно зависит от того, чем именно Вы будете заниматься: может оказаться просто необходимым, а может и не понадобиться.
Могу еще обратить внимание на численные методы, по крайней мере, на особенности представления в компьютере вещественных чисел, проблемы точности и условия устойчивости вычислений.
Цитата:
почти для каждой задачи программирования можно почерпнуть идею из "чистой" математики.
Сейчас постепенно формируется новая научная область, обычно называемая компьютерными науками, которая выкристаллизовывается в основном из математики, но имеет свои особенности. Как в свое время из философии выкристаллизовалась физика, а несколько позднее из нее - химия.
Цитата:
Вот, например, перебор двумерного массива, о котором вы упомянули. Я никогда с этим не сталкивался, но мне кажется, что для разработки наиболее оптимального алгоритма можно использовать, например, теорию графов (вспоминаю знаменитые Кёёнингсбергские мосты х).
Если речь идет о переборе всех элементов массива - маловероятно.
Тут, скорее, знание "железа" - особенности организации и функционирования на физическом и логическом уровне, а именно того факта, что динамическая память, хоть и называется Random Access Memory - Память с Произвольным Доступом, но на самом деле этот произвольный доступ раз в 20-30 медленнее последовательного.
Цитата:
Что касается профессиональной деятельности, то я вообще в этом году начинаю учиться на биолога, но меня крайне интересуют эксперементы in silico, моделирование обобщенных биосистем (как внутри- так и надорганизменных), нейросетей и так далее. Поэтому я хочу посвятить бОльшую часть свободного времени этим вопросам х)
Тогда еще раз упомяну о численных методах. В частности, Н. Калиткин, "Численные методы".
s-andriano вне форума Ответить с цитированием
Старый 17.08.2012, 21:31   #9
Petr123
Новичок
Джуниор
 
Регистрация: 17.08.2012
Сообщений: 5
По умолчанию

"Рефакторинг" Мартина Фаулера
Полезные книги для целеустремленных людей - http://actualbooks.blogspot.com
Petr123 вне форума Ответить с цитированием
Старый 18.08.2012, 13:25   #10
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Эдгар Дейкстра - Дисциплина Программирования, Н. Вирт "Алгоритмы и структуры данных", Никлаус Вирт.Алгоритмы+структуры данных=программы, Никлаус Вирт - Систематическое Программирование, Джон Бентли - Жемчужины творчества программистов
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература по С++ rrrFer Общие вопросы C/C++ 73 12.05.2021 18:02
Литература revaldo666 C/C++ Сетевое программирование 0 07.10.2011 18:05
Литература по VS C++ arcer Visual C++ 6 30.08.2011 22:40
Литература 13th Помощь студентам 7 01.01.2009 17:05
Литература бд Proof БД в Delphi 7 05.04.2008 18:26