Форум Иара Эльтерруса
Текущее время Чт, 28 Мар, 2024 18:24

Посоветуйте книгу по C++
На страницу 1, 2  След.
 
Ответить на тему    Список форумов Ветер Фантазии -> ТехЦентр
Предыдущая тема :: Следующая тема  

Автор Сообщение
GarretShadow
Оптимист

Возраст: 32
Пол: Пол:Мужской

Зарегистрирован: 16.03.2008
Сообщения: 2068
Откуда: Нижегородская обл., г.Павлово


СообщениеДобавлено: Чт, 19 Май, 2011 12:26    Заголовок сообщения: Посоветуйте книгу по C++ Ответить с цитатой

Посоветуйте книгу или материалы для обучению програмированию на с++
_________________
Весь мир - театр, а люди в нём - актёры...
Жизнь - это спектакль и важно не то как долго он длиться, а будут ли в конце аплодисменты...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 14:55    Заголовок сообщения: Ответить с цитатой

Посоветую не учить C++. Серьезно. Есть множество языков, которые действительно стоит изучать, в отличие от C++. Вот почитай, к примеру: http://steps3d.narod.ru/tutorials/c-minus-minus.html
Если же всё таки нужно —
«Основы программирования на С++. Том 1», Стенли Липпман
Язык программирования C++. Вводный курс", Стенли Липпман, Жози Лажойе
Потом желательно еще почитать Страуструпа, всё-таки автор языка
И напоследок очень полезно «Современное проектирование на С++» Андрея Александреску
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
domov0y
Домовой

Возраст: 38
Пол: Пол:Мужской

Зарегистрирован: 18.02.2007
Сообщения: 482
Откуда: Город ветров


СообщениеДобавлено: Чт, 19 Май, 2011 15:38    Заголовок сообщения: Ответить с цитатой

Наверное полностью соглашусь с adm0r'ом. лучше уж просто С. без извращений вида наследование полиморфизм и пр... объектного мусора. В последнее время часто сталкиваюсь с бредом вида городить классы с объектами там, где надо набрать пару строк.
_________________
как же надоел этот беззвучный вой... стон от которого замирает сердце и плачет душа
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 16:08    Заголовок сообщения: Ответить с цитатой

Ну, последнее уже привычно для многих языков с объектно-ориентированной парадигмой. Городить фреймворк для простейших операций. Если кто не читал — интересная статья по теме: http://habrahabr.ru/blogs/java/112969/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 17:22    Заголовок сообщения: Ответить с цитатой

adm0r, domov0y
При всем уважении, вы говорите ерунду.
Человеку, который собирается работать в индустрии ПО, однозначно нужно знать и С, и С++. Это своего рода стандарт. Даже если писать на нем не придется, это даст более глубокое понимание многих аспектов (управление памятью, адресная арифметика, определенные особенности ООП, устройство разнообразых api, ориентированных на С/С++).

А уж уверенного знания ООП:
domov0y писал(а):
без извращений вида наследование полиморфизм и пр

на ниве современного программирования работать не получится. Оно не просто так стало доминирующим подходом к разработке ПО.

Что же до книг, я бы советовал что-то вроде

Герберт Шилдт "Полный справочник по C++"
Для ознакомления с синтаксисом этого хватит. Дальше есть смысл смотреть по задачам.
Из того, что пригодится большинству, могу посоветовать
Скотт Мейерс "Эффективное использование STL"

Упомянутая выше «Современное проектирование на С++» Андрея Александреску - действительно очень интересная книга, но практическая применимость всего, что там написано, 0 целых и 0 десятых. Но идиомы там действительно очень интересные.

Ну и, если возникнут вопросы касательно программирования и С++ в частности, можно задавать их тут Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 17:42    Заголовок сообщения: Ответить с цитатой

Ну, я работаю в индустрии ПО сдельным программистом. И что? Знать С++ ради «определенных особенностей ООП»⁈ Да более отвратительное ООП я видел только в Turbo Pascal 5.5. Ради ООП стоит изучать, допустим, Ruby с его парадигмой — «всё это объект». Ради «управления памятью и адресной арифметики»? Простите покорно, но Танненбаум с его «Архитектурой компьютера» даст много больше чем изучение корявой поделки.

Windows тоже своего рода стандарт. Только поставить его меня никто не заставит.
И не советую замыкаться на ООП. Существуют и другие парадигмы программирования — в частности, набирающая обороты функциональная.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 17:59    Заголовок сообщения: Ответить с цитатой

adm0r писал(а):
Ну, я работаю в индустрии ПО сдельным программистом. И что?

И, судя по списку рекомендованных книг, знаете С++ Smile

Не все в С++ хорошо - это факт. Но почему-то именно его синтаксис лег в основу широкой массы других языков (C#, Java, JS, php и т. п.). И знать С++ стоит уже хотя бы затем, чтобы понимать, почему в разработке последующих языков что-то сделано по другому.

Ну а Танненбаум - это, конечно, хорошо, но практике грамотного управления памяти, поиску утечек, мертвых ссылок и т. п. он не научит. Зато опыт разработки на С/С++ - вполне.

adm0r писал(а):
Существуют и другие парадигмы программирования — в частности, набирающая обороты функциональная.

У которых есть своя ниша, которая с С++ ни разу не перекрывается.

adm0r писал(а):
Windows тоже своего рода стандарт. Только поставить его меня никто не заставит.

Вообще-то средства должны подбираться под задачи, а не задачи под средства. Я не являюсь поклонником творений Microsoft, но не вижу в них ничего ужасного. В прямых руках и там все работает как надо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 18:14    Заголовок сообщения: Ответить с цитатой

reiten писал(а):
И, судя по списку рекомендованных книг, знаете С++

С++ изучал в университете. Поэтому — да, знаю. Пользы от этого, правда, не вижу.

reiten писал(а):
Но почему-то именно его синтаксис лег в основу широкой массы других языков (C#, Java, JS, php и т. п.).

В основу других языков лег синтаксис не C++. Это синтаксис C - прекрасного языка.

reiten писал(а):
Ну а Танненбаум - это, конечно, хорошо, но практике грамотного управления памяти, поиску утечек, мертвых ссылок и т. п. он не научит. Зато опыт разработки на С/С++ - вполне.

Ручное управление памятью и поиск утечек? Простите, а зачем тренировать этот скилл, если потом не программировать с его применением? Ведь стоит начать программировать на другом языке, и скилл оказывается невостребованным.

reiten писал(а):
И знать С++ стоит уже хотя бы затем, чтобы понимать, почему в разработке последующих языков что-то сделано по другому.

Знать С++ ради того, чтобы понимать, почему другие языки лучше? Вообще хорошее предложение.

С++ еще жив, и жив будет долго. Геймдев со временем переключится на другие языки, но это будет не быстро. Но в большинстве задач C++ уже не нужен: есть С, есть Managed среды, есть скриптовые языки…
И, правильно, средства под задачу — веб движок на руби, десктопное приложение на Vala/Mono, маленькие утилиты — Python/Ruby

p.s. http://habrahabr.ru/blogs/cpp/111403/
p.p.s. Мм-да. А темка-то холиварная получилась. Ладно — мое мнение понятно, список литературы я привел, засим из дискуссии самоустраняюсь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 18:41    Заголовок сообщения: Ответить с цитатой

adm0r писал(а):
Ручное управление памятью и поиск утечек? Простите, а зачем тренировать этот скилл, если потом не программировать с его применением? Ведь стоит начать программировать на другом языке, и скилл оказывается невостребованным.


Затем, что память - не единственный ресурс, подверженный утечкам. Не говоря уже о том, что при определенном "таланте" утечку памяти можно создать и в языке со сборкой мусора.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 18:44    Заголовок сообщения: Ответить с цитатой

reiten, вам не кажется, что если у человека «талант» к созданию утечек, то ему категорически запрещено программировать на С++? С++ — язык не терпящий быдлокода, и средств отстрелить себе ногу в нём просто поразительное количество.

Последний раз редактировалось: adm0r (Чт, 19 Май, 2011 19:03), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 18:51    Заголовок сообщения: Ответить с цитатой

Вот потому таким людям и надо пройти через программирование на С++ - они научатся делать как надо, или умрут от потери крови Smile
Именно из-за нулевой толерантности к ошибкам я считаю С++ хорошим полигоном для обучения перед тем, как переходить на managed-языки.

Так сказать, тяжело в учении - легко в бою.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 19:02    Заголовок сообщения: Ответить с цитатой

А я бы советовал изучать математику, алгоритмы, читать Кнута, Танненбаума,Фаулера, научиться разбираться в работе компьютера на всех уровнях, смотреть best practices для того языка, который и будет использоваться в «бою». Ведь, благо, для этого будет достаточно времени, если не тратить его на С++
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 19:08    Заголовок сообщения: Ответить с цитатой

Так одно другого не отменяет. А кроме алгоритмов есть еще сети, параллельное программирование, базы данных, проектирование и много других важных вещей.

А вот на один конкретный язык с самого начала завязываться неразумно. При достаточном опыте и понимании основ, очередной язык изучается за пару дней.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 19:10    Заголовок сообщения: Ответить с цитатой

Тем более. К чему тогда привязываться к С++, если видеть все его недостатки? Может стоит изучать ОСНОВЫ, а не С++, и паралельно программировать на более «цельных» языках, а при необходимости изучить С++ за пару дней?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 19:24    Заголовок сообщения: Ответить с цитатой

Затем, что если начинать с Java/C#/python/php и т. п., то целые пласты программирования окажутся вне поля зрения. Для человека, который никогда не задумывался о том, как хранятся строки, их реализация, к примеру, в С будет темным лесом. Вот чтобы не создавать пробелов в образовании, и стоит начитать с С или С++. Как вариант - с pascal, но это де факто мертвый язык. Ну а если ставить вопрос как С или С++, то ИМХО надо учить и то, и другое.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
GarretShadow
Оптимист

Возраст: 32
Пол: Пол:Мужской

Зарегистрирован: 16.03.2008
Сообщения: 2068
Откуда: Нижегородская обл., г.Павлово


СообщениеДобавлено: Чт, 19 Май, 2011 19:25    Заголовок сообщения: Ответить с цитатой

В статье прочитал, что язык С++ "широко" используется, т.е. для множества различных целей... А вы его что то недолюбливаете =) Тогда с какого языка лучше начать учить програмирование (сам пробовал программировать только в паскале и бэйсике и то только простейшее)?
_________________
Весь мир - театр, а люди в нём - актёры...
Жизнь - это спектакль и важно не то как долго он длиться, а будут ли в конце аплодисменты...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 19 Май, 2011 19:35    Заголовок сообщения: Ответить с цитатой

Статья, скажем так, не совсем объективна Smile
Начинать стоит все же с С/С++/pascal. Первые акценты - алгоритмы и структуры данных, процедурное программирование (понимание необходимости инкапсуляции, повторного использования кода и т. п.). А уже когда есть основа, можно переходить к ООП, изучению какого-нибудь фреймворка (создание пользовательских интерфесов, многопоточность, работа с сетью, работа с базами данных и т. п.). На этом этапе уже может быть смысл переходить на managed-язык (хотя роли это особо не играет)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 19 Май, 2011 19:37    Заголовок сообщения: Ответить с цитатой

С — согласен. Язык хорош. И стоит изучения. А С++ лучше заменить на Objective-C, если уж так хочется не удаляться от С.

Я бы современное изучение языков строил от простого к сложному: сначала интерпретируемый язык(Ruby) — скорость разработки, и изучение подходов и алгоритмов. Потом С: понять на низком уровне, что и как происходит. А потом что-то из managed сред: Java, C#, Vala. А уже потом что-то для поднятия квалификации и расширения кругозора:Haskell, Ocaml, и(обязательно) Lisp.

В результате на любую задачу у тебя будет набор инструментов: скорость — С, Haskell, Lisp, Vala. Скоростное прототипирование — Ruby(+ самописные модули на С — штука зверская). Скоростная удобная разработка с GUI — Java, C#, Vala. Сложные алгоритмы, обработка данных — Haskell
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
Аль-Митра
Лор-адмирал
Лор-адмирал


Пол: Пол:Женский

Зарегистрирован: 02.08.2010
Сообщения: 786


СообщениеДобавлено: Чт, 16 Июн, 2011 09:54    Заголовок сообщения: Ответить с цитатой

Т.А. Павловская. "С/С++. Программирование на языке высокого уровня."

Учебник для ВУЗов. Моя настольная книга.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
domov0y
Домовой

Возраст: 38
Пол: Пол:Мужской

Зарегистрирован: 18.02.2007
Сообщения: 482
Откуда: Город ветров


СообщениеДобавлено: Чт, 16 Июн, 2011 18:45    Заголовок сообщения: Ответить с цитатой

Офтоп (Не хочется городить кучу тем.)
Вопрос на засыпку: кто нибудь может подсказать ссылку на приличный материал относительно доступно (читай для чайника только слезшего с интегрированной среды разработки и программы hello world) рассказывающий как происходит компиляция и линковка приложений написанных на с? А еще на опции компилятора (gcc). И таблеток от жадности. Да побольше побольше.
А то править чужое-легко. Но понимания процесса как то не хватает.

_________________
как же надоел этот беззвучный вой... стон от которого замирает сердце и плачет душа
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
agrael
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 14.07.2008
Сообщения: 2816
Откуда: Город 313


СообщениеДобавлено: Чт, 16 Июн, 2011 19:03    Заголовок сообщения: Ответить с цитатой

Ivor Horton Apress.Beginning.C.From.Novice.to.Professional.4th.Edition.Oct.2006
Francis Glassborow You Can Program In C++ - A Programmer's Introduction
Francis Glassborow You Can Do It! - A Beginner's Introduction to Computer Programming
После фамилии автора - название файла (pdf), как я скачивал. Что-то с торрентов, что-то напрямую.

В виде файла справки: A Complete Guide to Programming in C++ by Ulla Kirch-Prinz and Peter Prinz

И еще
Bruce Eckel - Thinking in C++ и Thinking in Java, у него даже сайт есть, где он ранние издания нахаляву раздает.

Ну и сам Stroustrup всюду валяется - и русский, и английский. Ну и там adm0r еще кучу давал.

domov0y
У Гласборо и Экеля что-то про принципы линковки было (особенно у Экеля), но кокретный процесс - это надо наверное мануал от gcc ковырять. Моя пас.

Если что кого заинтересовало, а поиск результатов не дает, могу попробовать намылить. Но это по 5, а то и по 10М каждая книга.

_________________
Все будет так, как должно быть, даже если будет иначе
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
reiten
Дварх-майор
Дварх-майор

Возраст: 34
Пол: Пол:Мужской

Зарегистрирован: 28.01.2008
Сообщения: 447
Откуда: Украина, Киев


СообщениеДобавлено: Чт, 16 Июн, 2011 19:04    Заголовок сообщения: Ответить с цитатой

Если интересна теория, то вот: http://www.network-theory.co.uk/docs/gccintro/gccintro_83.html
Если же практика - то собирают софт при помощи одной из распространенных связок типа autotools, cmake, qmake, и т. п.
Что до опций компиляции - man gcc.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение [ скрыт ]
Автор Сообщение
domov0y
Домовой

Возраст: 38
Пол: Пол:Мужской

Зарегистрирован: 18.02.2007
Сообщения: 482
Откуда: Город ветров


СообщениеДобавлено: Чт, 16 Июн, 2011 20:48    Заголовок сообщения: Ответить с цитатой

Я просто решил выяснить что такое микроконтролер и чем его закусывают. Сел править файлы прошивки программатора и уткнулся в 'лишние модули' без которых оно прекрасно собралось ни на байт не поменяв размер. Вот меня и заинтересовала теория как это происходит. Особенно в условиях недостатка памяти актуально
_________________
как же надоел этот беззвучный вой... стон от которого замирает сердце и плачет душа
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
adm0r
Бета-координатор
Бета-координатор


Пол: Пол:Мужской

Зарегистрирован: 12.01.2010
Сообщения: 2139


СообщениеДобавлено: Чт, 16 Июн, 2011 21:43    Заголовок сообщения: Ответить с цитатой

А что за микроконтроллеры? PIC, AVR?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  
Автор Сообщение
domov0y
Домовой

Возраст: 38
Пол: Пол:Мужской

Зарегистрирован: 18.02.2007
Сообщения: 482
Откуда: Город ветров


СообщениеДобавлено: Чт, 16 Июн, 2011 22:09    Заголовок сообщения: Ответить с цитатой

AVR attiny2313 и atmega16. программатор до которого добрался AVR-Doper. так и не понял зачем там компиляция куска utils.с
_________________
как же надоел этот беззвучный вой... стон от которого замирает сердце и плачет душа
Вернуться к началу
Посмотреть профиль Отправить личное сообщение  

Показать сообщения:   
Ответить на тему    Список форумов Ветер Фантазии -> ТехЦентр Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы

Powered by phpBB © 2001, 2005 phpBB Group.
Theme Designed By Arthur Forum