Учебники/книги по программированию

Shomma

Пользователь
Здесь буду потихоньку выкладывать полезную литературу. А то слишком много в городе людей развелось которые уже HTML языком программирования считают. Программеры поймут...;). Все отдаю as is.

Graphics Gems vol. 1-5
Классика. Больше добавить нечего. ОБЯЗАТЕЛЬНО К ИЗУЧЕНИЮ ВСЕМ программерам.

Введение в Microsoft Silverlight

Алгоритмы. Просто как дважды два
Небольшая подборка алгоритмов с подробным описанием

Миллер Т. DX9
Программирование под DirectX9 на C#. Полезна также тем кто просто хочет научится грамотно программировать

FX_Metastock
Описание торгового терминала. Почему в программировании? Да
просто потому, что под него тоже пишутся программы (С) и неплохо продаются.

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

STATISTICA Neural Networks - аналог предыдущего топика

TradingSolutions - программа от создателей NeuroSolutions адаптированная под нужды трейдеров. Что важно: позволяет экспортировать код сгенерированной сети ... ну, а далее ... все в ваших руках ... или мозгах.

ВСЕМ учится как надо: Wow - блин от FastReflection сам офигел. Но если будете юзать, аккуратнее с references...как я понял она их напрямую в RAM кидает - отсюда и выигрыш.


Свои пожелания оставляйте в этой теме. Мне в ЛС незачем... (если не по-поводу работы :)
 

SCTRWD

Местный
Здесь буду потихоньку выкладывать полезную литературу. А то слишком много в городе людей развелось которые уже HTML языком программирования считают. Программеры поймут...:D. Все отдаю as is.

Странная такая подборка. Ни в звезду, ни в Красную Армию, если чесно. Что-то читал, что-то не читал и никогда бы не стал читать :rolleyes:

Люди, есть ли у кого-нибудь Комер по TCP/IP полный, во всех частях? Дайте, плз, или ссылочку киньте. Без разницы английский или русский. В английском даже лучше :rolleyes:
 

sami

Местный
Graphics Gems vol. 1-5
Классика. Больше добавить нечего. ОБЯЗАТЕЛЬНО К ИЗУЧЕНИЮ ВСЕМ программерам.
c 1990-го прошло 20 лет, сильно изменилась проблематика и методы решения в гэйм деве. Да и трюки вроде эмуляции 32х разрядного умножения на 16 разрядном процессоре не актуальны. Однозначно фтопку.

Интересующимся брать отсюда. Там хоть 3-я версия лежит.

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

Миллер Т. DX9
Программирование под DirectX9 на C#. Полезна также тем кто просто хочет научится грамотно программировать
Не советую. Во-первых, отвратительный скан. Во-вторых, C# не для геймдева пока. Немалые накладные расходы на Interop затрудняют написание качественных движков на дотнете. У автора напрочь отсутствуют навыки декомпозиции кода, рефакторинга и просто форматирования кода. Книга годится лишь как букварь по DX9 и как пособие о том как не надо программировать (содержит классические code smells типа сплошного дублирования кода, магических констант, пренебрежение best practices, нарушение OO дизайна и т.п.).

качать не стал, комментариев не будет.

ВСЕМ учится как надо: Wow - блин от FastReflection сам офигел. Но если будете юзать, аккуратнее с references...как я понял она их напрямую в RAM кидает - отсюда и выигрыш.
Ну а почему бы не выложить ссылки прямо на codeproject?
Все что в архиве - баловство кроме Symbolic Differentiation. По поводу FastReflection отдельное замечание: автор редкий извращенец, использует новую платформу для решения проблем, которые в этой платформе решаются из коробки. Курить Expression Trees.

Свои пожелания оставляйте в этой теме. Мне в ЛС незачем... (если не по-поводу работы :rolleyes:
 

Shomma

Пользователь
Блин - для тех кто в танке - я выкладывал для псевдо программеров...Пускай хотя-бы на этом учатся...
А так - много чего есть. Спрашивайте. Выложу...
Кстати если грамотно на C# писать (reflection по минимуму) то DX шарповый проигрывает не более 4%.
(а managed C вообще C#-у проигрывает:blink:
И если кому интересно посмотреть на программерские извращения - см. исходники Q1;
 

sami

Местный
Блин - для тех кто в танке - я выкладывал для псевдо программеров...Пускай хотя-бы на этом учатся...
Не знаю, кто такие псевдо программеры, но я выразил свое отношение о некотором из выложенного.

А так - много чего есть. Спрашивайте. Выложу...
Кстати если грамотно на C# писать (reflection по минимуму) то DX шарповый проигрывает не более 4%.
(а managed C вообще C#-у проигрывает:blink:
Reflection к грамоте имеет такое же отношение как паяльник к хорошим манерам.
Нет шарпового DX-а. Есть DX и есть его обвязка для .net, которая работает через interop. Обвязка+interop уже отъедают свои 5 копеек, да еще и .net сам по себе намного уступает в производительности неуправляемому коду на C/C++. Если нужно покрутить статую из статических треугольников с кожей - C# в руки. Если речь пойдет о том чтобы мять сетки в рантайме и считать коллизии - C# сольет C++-у намного.
И если кому интересно посмотреть на программерские извращения - см. исходники Q1;
Только если кому-то интересно узнать почему Q1 шел на том железе, на котором он собственно шел. Место этим извращениям в музее (но на очень почетном месте). Сегодня изучение этого кода не поможет создать такой же ажиотаж, который тогда имел место.
 

Shomma

Пользователь
Собсвенно из-за того, что программисты нехотят изучать такие шедевры как Q1 и получаются монстры типа Win 98-w7
В щарпе протести generic`s и сравни с unmanaged C... (в компилере оптимизации незабудь) Опять-же все зависит от того какая у тебя машина.
Ежели дальше закон Мура будет работать то 5-10% - это мелочь...
 

sami

Местный
Собсвенно из-за того, что программисты нехотят изучать такие шедевры как Q1 и получаются монстры типа Win 98-w7
fixed-point арифметика и т.п. виндовсу не поможет.

В щарпе протести generic`s и сравни с unmanaged C... (в компилере оптимизации незабудь) Опять-же все зависит от того какая у тебя машина.
Ежели дальше закон Мура будет работать то 5-10% - это мелочь...
Конкретно, что с чем сравнивать?!?! На каких задачах?
На арифметике C# пролетает в разы и generic-и этого изменить не могут, т.к. вообще не приспособлены к арифметике. C# для тех, кто никуда не спешит.
Не веришь - перепиши Q1 на C# (без использования аппаратных средств).
 

Shomma

Пользователь
fixed-point арифметика и т.п. виндовсу не поможет.


Конкретно, что с чем сравнивать?!?! На каких задачах?
На арифметике C# пролетает в разы и generic-и этого изменить не могут, т.к. вообще не приспособлены к арифметике. C# для тех, кто никуда не спешит.
Не веришь - перепиши Q1 на C# (без использования аппаратных средств).

Про box`ing слышал?
 

Shomma

Пользователь
думаешь в нем дело?

И в нем тоже. Вообще-то ничего не мешает использовать unmanged код. Либо критичный участок вынести в отдельную dll`ку. У меня основной код написан на C#, некоторые места на С, а еще немного на asm`e... Прекрасно работает - и понятно и быстро.
 

sami

Местный
И в нем тоже. Вообще-то ничего не мешает использовать unmanged код.
начиная с поддержки generic-ов (более 5и лет назад) боксинг перестал быть заметной проблемой у тех кто знает что это такое и в каких случаях возникает.

по части комбинации managed/unmanaged кода: это довольно положительно, но имеет несколько ключевых неудобств:
1) неудобство работы со структурами данных. Требуется дублирование описаний общих структур данных. Соответствие структур не верифицируется компилятором. Ограничения interop-а не позволяют передавать между мирами контейнеры сложнее массива, что приводит к тому что сложные составные структуры (списки, деревья, данные теселляции и т.п.) должны быть реализованы лишь в одном из миров, что усложняет доступ к этой структуре из другого мира.
2) накладные расходы на вызов скорее всего дадут знать о себе в критических к производительности приложениях при использовании fine-grained facade. С другой стороны, coarse-grained facade-ы осложнены ограничением 1.
В итоге если сцена по соображениям производительности вынесена в unmanaged, то рулить ей из managed кода будет мягко-говоря фигово.

Либо критичный участок вынести в отдельную dll`ку. У меня основной код написан на C#, некоторые места на С, а еще немного на asm`e... Прекрасно работает - и понятно и быстро.
Просвети чем помогает вынос критического участка в отдельную dll-ку!
 

Mike22

Местный
Напоминаю, публикация ссылки на неправомерно распространяемый контент является уголовным преступлением.

Большое желание удалить тему.
Тем более что ничего полезного в ней нет.
 

Shomma

Пользователь
Просвети чем помогает вынос критического участка в отдельную dll-ку!

:blink: На шарпе asm inline нету... И если не в курсах на той-же win7 примерно половина ядра managed !!!
А еще есть такая вещь: ngen.exe. Собственно из IL генерит нормальный HEX НО ЗАТОЧЕННЫЙ УЖЕ ПОД КЛИЕНТСКУЮ МАШИНУ. Т.е проц intel - под него, amd - уже код другой...
Еще такая штука есть XNA называется... : www.xnadev.ru

Кстати если надо Gpugems 1,2 есть...


Про тему: Ненравится - удаляй. Пускай ламерье размножается...

PS. Зато хотя-бы одного толкового оппонента нашел...
 

Mike22

Местный
Shomma, ламеров вы размножаете, когда раздаёте то что вам не принадлежит и ещё строите из себя крутого.
Уважайте чужой труд, тогда и вас уважать начнут.
 

Shomma

Пользователь
Я из себя ничего не строю. Просто хотелось как-то поднять уровень публики... Считаю это полезным...
Ваше мнение конечно учту.
Да и вообще уважаемый - Вы сколько языков программирования знаете? Я, например 16...
А технологий, библиотек?
 

Shomma

Пользователь
неудобство работы со структурами данных. Требуется дублирование описаний общих структур данных. Соответствие структур не верифицируется компилятором. Ограничения interop-а не позволяют передавать между мирами контейнеры сложнее массива, что приводит к тому что сложные составные структуры (списки, деревья, данные теселляции и т.п.) должны быть реализованы лишь в одном из миров, что усложняет доступ к этой структуре из другого мира.
Неа. Неправ. Верифицируется. Передается. Все без проблем. Сложности конечно есть. Но куда без них. Все решаемо.
М/у прочим, ради интереса, сравнил скорость выполнения exp(x) и System.Math.Exp(x) - соответственно С и С#. C# оказался быстрее (после ngen)...
 

sami

Местный
:D На шарпе asm inline нету... И если не в курсах на той-же win7 примерно половина ядра managed !!!
asm inline в дотнете действительно нету
а вот то что половина ядра managed - полная чушь.
А еще есть такая вещь: ngen.exe. Собственно из IL генерит нормальный HEX НО ЗАТОЧЕННЫЙ УЖЕ ПОД КЛИЕНТСКУЮ МАШИНУ. Т.е проц intel - под него, amd - уже код другой...
Не разобрался ты в этом вопросе. ngen генерит не более заточенный код чем JIT. Только лишь он генерит его не в рантайме программы, как это делает JIT.
Еще такая штука есть XNA называется... : www.xnadev.ru
Кого ты хочешь этим удивить?


Да и вообще уважаемый - Вы сколько языков программирования знаете? Я, например 16...
Если так же как C# с дотнетом (с учетом что Миллер для тебя образец грамотного кода), то это печальная статистика. И похоже что качественного перехода знание стольких языков не даст.


Неа. Неправ. Верифицируется. Передается. Все без проблем. Сложности конечно есть. Но куда без них. Все решаемо.
Передается но не верифицируется. Платформу не знаешь. Будешь спорить - приводи ссылки.
М/у прочим, ради интереса, сравнил скорость выполнения exp(x) и System.Math.Exp(x) - соответственно С и С#. C# оказался быстрее (после ngen)...
Код в студию :blink:
Ты даже не удосужился понять что Math.Exp unmanaged функция и ngen не может ее допилить
 

maxx

Активный пользователь
sami, вопрос как к эксперту, что порекомендуешь для программерского фундамента, какие книги, мануалы?
особенно интересуют - алгоритмы.
 

sami

Местный
sami, вопрос как к эксперту, что порекомендуешь для программерского фундамента, какие книги, мануалы?
особенно интересуют - алгоритмы.
По поводу эксперта - польстило ;)
Самое фундаментальное из того что я встречал - SICP (http://mitpress.mit.edu/sicp/). До недавних пор это был обязательный (ознакомительный) предмет в MIT-е. В нашей системе образования очень редко встречается такой фундамент (дают сразу паскаль или C++, а без фундамента это очень плохо). Это и фундамент и базовая алгоритмическая подготовка, включающая работы со структурами данных, точки неподвижности (счет) и т.п.
Рекомендовал бы SICP даже тем, кто считает что у него солидный фундамент. Нет-нет да найдется что-то из незнакомого.

При желании можно найти на русском.

За SICP желательно PLAI (http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/)

Что фундаментального читать дальше - зависит от специализации.

По алгоритмам - нужно уточнение. Из фундаментального - Кнут. С первой частью ознакомиться желательно (через призму SICP). Дальше - как пойдет, но главы о сортировке и поиске будут полезны любому программисту.

Дальше - зависит от специализации. Вообще хорошо бы знать каждому численные методы, дискретную оптимизацию, реляционную алгебру, обработку сигналов и т.п. Но боюсь, что часть из этого останется невостребованной. Такие темы хороши ознакомительными курсами в ВУЗ-е, когда накапливается багаж. А после, рекомендую поднимать именно те темы, где чувствуется нехватка знаний, либо то что интересно.
 
Сверху