Войти
ПрограммированиеФорумОбщее

Посоветуйте книги для изучения

Страницы: 1 2 3 Следующая »
#0
14:03, 8 ноя. 2017

Наверное, нет ничего необычного в том, что всегда найдется человек лучше тебя. Но встреча с подобными людьми заставляет меня прокрастинировать: "он лучше меня, а вот с завтрашнего дня я сделаю то-то, чтобы рано или поздно стать лучше!". Самое печальное в этом то, что все эти идеи быстро забываются. Чтобы избежать этого, я завел себе TODO блокнот, в который записываю все свои планы (и не важно насколько они несбыточны)

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

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


Программирую на С++, чисто для души (да, у крестоновцев есть душа! хдд). Хотел бы:

1. Улучшить качество кода, в том числе его удобочитаемость

2. Поднять скилл проектирования архитектуры ПО

3. Понять "математику". У меня есть базовое (возможно, слегка заниженное) понимание на уровне школьной программы, я понимаю как работают матрицы и векторы (хотя не все помню наизусть, некоторые вещи написаны в коде единожды и я забываю о внутренней реализации), пытался поверхностно понять кватернионы. Периодически на этом форуме происходят математические баталии, и, к сожалению, я не всегда понимаю откуда берутся те или иные формулы и как их использовать. Хочу стать более эрудированным в данном вопросе

4. Понять "физику". Всегда боялся подходить близко к физическим движкам. А все потому, что я хорошо знаю лишь некоторые разделы физики, а вот с остальными разделами большая беда. Неплохо было бы совместить изучение физики с написанием игрушечного физического движка :) Физика твердых/мягких тел, скорость, ускорение, физика газов, механика - вот это все (и возможно даже больше)

Буду рад любым вашим советам. Желание у меня простейшее - стать хорошим специалистом, прыгнуть "из грязи в князи" :))

С наилучшими пожеланиями, NukeBird


#1
14:34, 8 ноя. 2017

Хант Эндрю "Программист-прагматик".

На Хабре где-то видел список литературы рекомендуемый к прочтению.

#2
16:51, 8 ноя. 2017

Я по крайней мере советую книги по C, C++, Asm Шилдта.

#3
17:15, 8 ноя. 2017

GermanAizek
> Я по крайней мере советую книги по C, C++, Asm Шилдта.
Все базовые конструкции языка С/С++ я знаю, а все детали и ньюанасы (фикс: языковые ньюансы, т.е. ньансы языка как такового) я пытаюсь выведать через личный опыт (практику), справочники. Иногда прибегаю к так называемым "cookbook'-ам, там иногда показывают довольно красивые трюки со стандартными STL'овыми алгоритмами. С TASM/FASM/NASM тоже знаком, в состоянии по крайней мере написать змейку или крестики-нолики. Меня больше интересует идеологическая часть вопроса:

1)как разработать красивое API?

2)как сделать код удобночитаемым?

3)какую систему именования функций/классов/полей/методов/файлов/папок лучше использовать? Почему?

4)как структурировать проект/систему? (примеры)
4.1)общая структура проекта (где хранится код/документация/билды/тесты/примеры/уроки/... и почему)
4.2)подразделение кода на отдельные компоненты (та же библиотека SFML имеет подразделение на Audio/Graphics/Main/Network/System/Window. Иногда подразделение может оказаться куда сложнее и запутанней, вот мне и хочется почитать про хорошие практики, намотать часть на свой ус)

5)какие архитектурные решения уже существуют (те же шаблоны проектирования)? Как их лучше использовать? Когда их лучше НЕ использовать? (я читал массу статей на хабре и gameprogrammingpatterns.com , но мне хочется окунуться в детали)

Васян
> Хант Эндрю "Программист-прагматик".
Там больше рассмотрены вопросы философии? Или конкретные примеры-пояснения тоже содержатся в этой книге?

Васян
> На Хабре где-то видел список литературы рекомендуемый к прочтению.
Буду очень признателен, если найдете ссылку. Поблагодарю дважды - если сделаете ревизию тех книг, которые вы уже успели пролистать/прочитать :)

#4
17:35, 8 ноя. 2017

Если есть хотя бы три года опыта программирования, читай: Буч "Объектно-ориентированный анализ и проектирование".
Для ознакомления со всей физикой, по верхам, без базового владения высшей математикой: Ландсберг "Элементарный учебник физики".

#5
17:50, 8 ноя. 2017

nuke_bird
> Буду очень признателен, если найдете ссылку.
https://habrahabr.ru/company/plarium/blog/328712/
Нашёл ссылку и чё-то я немного разочарован тем, что там. Но в любом случае, там в комментариях можно посмотреть, что народ ещё советует почитать.

nuke_bird
> Там больше рассмотрены вопросы философии? Или конкретные примеры-пояснения тоже
> содержатся в этой книге?
Примеров там нет. Есть только воспоминания автора.
Я даже не помню, дочитал ли я её до конца. Но помню точно, что после этой книжки я стал несколько по другому смотреть на рефакторинг, на повторное использование кода, на написание вспомогательных утилит. А ещё после книжки очень хотелось изучить flex+bison, но руки так и не дошли. Вряд ли это какая то панацея, но узнать мнение автора в вопросах, в которых он компетентнее меня, мне было интересно.

На остальные вопросы не отвечу. Книги читаю редко. В голове откладывается не много.

#6
17:57, 8 ноя. 2017

Васян
> Примеров там нет. Есть только воспоминания автора.
> Я даже не помню, дочитал ли я её до конца. Но помню точно, что после этой
> книжки я стал несколько по другому смотреть на рефакторинг, на повторное
> использование кода, на написание вспомогательных утилит. А ещё после книжки
> очень хотелось изучить flex+bison, но руки так и не дошли. Вряд ли это какая то
> панацея, но узнать мнение автора в вопросах, в которых он компетентнее меня,
> мне было интересно.
а, ну раз так то я могу её попробовать почитать как книжку на ночь =))

Спасибо, добавлю в TODO!

Zab
> Если есть хотя бы три года опыта программирования, читай: Буч
> "Объектно-ориентированный анализ и проектирование".
> Для ознакомления со всей физикой, по верхам, без базового владения высшей
> математикой: Ландсберг "Элементарный учебник физики".
Я стал программировать (С++ - мой первый язык) с 2009 года. Вот до сих пор на С++ сижу, хоть и проводил сравнительный анализ с другими языками

За книжки спасибо, проведу сравнительный анализ! По крайней мере, заголовки книг звучат солидно

#7
19:18, 8 ноя. 2017

https://tproger.ru/books/cpp-books-definitive-guide/

#8
19:28, 8 ноя. 2017

> 1)как разработать красивое API?

> 2)как сделать код удобночитаемым?

> 3)какую систему именования функций/классов/полей/методов/файлов/папок лучше использовать? Почему?

> 4)как структурировать проект/систему? (примеры)
> 4.1)общая структура проекта (где хранится код/документация/билды/тесты/примеры/уроки/... и почему)
> 4.2)подразделение кода на отдельные компоненты (та же библиотека SFML имеет подразделение на Audio/Graphics/Main/Network/System/Window. Иногда подразделение может оказаться куда сложнее и запутанней, вот мне и хочется почитать про хорошие практики, намотать часть на свой ус)

> 5)какие архитектурные решения уже существуют (те же шаблоны проектирования)? Как их лучше использовать? Когда их лучше НЕ использовать? (я читал массу статей на хабре и gameprogrammingpatterns.com , но мне хочется окунуться в детали)

Окей гугл.

#9
19:32, 8 ноя. 2017

0iStalker
> https://tproger.ru/books/cpp-books-definitive-guide/
Похоже на хорошую подборку, вопрос про книги по С++ исчерпан :)


GermanAizek
> Окей гугл.
Окей гугл:

1)куча статей, противоречащие друг другу. Более того - это скудные вижимки из книг, которые могут быть поняты некорректно

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

Окей яндекс?

#10
0:30, 9 ноя. 2017

nuke_bird

#11
6:33, 9 ноя. 2017

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

#12
7:21, 9 ноя. 2017

nuke_bird
Мне в 2005-07 годах очень понравились книги Саттера. Он в них хоть и не раскрывает тему, но пинки к изучению даёт. После их прочтения у меня появилось понимание того, как делается архитектура проекта в целом.

Но вообще хороших книг именно по архитектуре мало. В основном черпается с чужих проектов что-то новое.

#13
10:23, 9 ноя. 2017

Suslik
> nuke_bird
> я не видел ни одной книги, которая может научить программировать. чтобы
> научиться программировать, надо программировать. конкретные области изучаются
> по конкретным статьям. например, стало интересно, как рендерить мягкие тени —
> гуглишь и читаешь. в одной книге всё вместе не уместишь.
Так а кто же спорит? Я программирую и читаю статьи каждый день. Но мне хочется получить чуть-чуть больше теории, и желательно концентрат.
Разве это плохо - желать чуточку большего? В книгах содержатся идеи - много идей. Мне остается лишь впитывать информацию и складывать своё личное мнение из мелких кирпичиков

CasDev
> Мне в 2005-07 годах очень понравились книги Саттера. Он в них хоть и не
> раскрывает тему, но пинки к изучению даёт. После их прочтения у меня появилось
> понимание того, как делается архитектура проекта в целом.
> Но вообще хороших книг именно по архитектуре мало. В основном черпается с чужих
> проектов что-то новое.
Герб Саттер?

Я, кажется, знаком с одной из его работ: "Effective Concurrency in C++", но вот других книжек не встречал. Какие книги ты уже читал и какие можешь рекомендовать?

#14
11:02, 9 ноя. 2017

nuke_bird
> Но мне хочется получить чуть-чуть больше теории, и желательно концентрат.
Ну, как бы, знание теории противоречит хотению концентрата.

nuke_bird
> Так а кто же спорит?
Дык, кроме цеховой формы обучения, существует университетская.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.