LINUX.ORG.RU

Лучшая книга по C++


1

9

Решил взяться за изучение C++, серьезное (а не ради развлечения) изучение, с целью последующей работы прогером C++. Не могу выбрать книгу, их очень много, на разного уровня подготовки изучающего. На форумах конкретики по тому или иному автору не дают, в духе «этот автор плох тем-то, тем-то», а лишь флуд и взаимное кало-метание друг в дружку.

Так вот вопрос таков: на какие книги стоит обратить внимание на начале изучения, и какими стоит закончить, утвердить освоение материала? Примечание: книга должна быть на русском и все еще издаваться каким либо издательством, а не реликвия которую заказать в бумажном варианте не представляется возможным, я собираюсь брать именно бумажные варианты.



Последнее исправление: vladmenshikov (всего исправлений: 1)

Ответ на: комментарий от erfea

Есть миллионы примеров говяного ПО и на крестах наговняконого. Вот только для той же жабы, есть инструменты предназначенные вынести модуль во вне, с целью реализовать нативно.

не помогает, поверь

shty ★★★★★
()
Ответ на: комментарий от mv

mv, ты такой умный. Всегда люблю читать твои комменты. Без сарказма.

anonymous
()
Ответ на: комментарий от mv

В принципе, платформы типа .NET (managed-среда с обширной стандартной библиотекой и стандартными же интерфейсами взаимодействия) Линуксу не хватает

Java, Python, whatever... что тебе ещё надо?

shty ★★★★★
()
Ответ на: комментарий от shty

ололо, 3-5 лет практики не хочешь? (это если в нормальной команде)

а допрежь этого срока - это всё личинка разработчика

Я указал самый-самый минимум. Ну и мне повезло относительно, - те Junior-ы, которых на меня вешали (в хорошем смысле слова) обучатся на прошлом месте рабочем, все были очень-очень толковые ребята и быстро все схватывали, так что может оптимист немного.

qrck ★★
()
Ответ на: комментарий от qrck

Вообще же, хочу предостеречь - C++ - это не язык который можно профессионально освоить за пару месяцев, большинству требуется минимум месяцев 6-12 практики .

года 3(ТРИ) не менее.

drBatty ★★
()
Ответ на: комментарий от lazyklimm

Qt-разрабам

А там не чистый C++, там C++ на стероидах

мне даже стало интересно что уважаемый называет стероидами? препроцессор?

shty ★★★★★
()
Ответ на: комментарий от dave

На маках я бы не стал использовать приложения Qt, а предпочел бы родные на Cocoa...

...даже если их нет в природе

shty ★★★★★
()
Ответ на: комментарий от Begemoth

Я уже три года не программирую на Си++ и вполне обхожусь без traits classes. Честно говоря, они никогда мне не нравились. Можно было бы сказать, что это специфичный для Си++ костыль, но тут надо еще подумать.

dave ★★★★★
()
Ответ на: комментарий от shty

Это единственная причина использовать Qt :)

dave ★★★★★
()
Ответ на: комментарий от Dragon59

системный софт под линукс писать? На кривом гтк

Фимоз мозга детектед.

Юноша, системный софт и гуйня - это две огромные разницы.

anonymous
()
Ответ на: комментарий от lazyklimm

не, кутишный препроцессор не катит - голяк, просто вписывает костыли чтобы удобнее было, ни семантика не меняется, ни парадигма, сравни Scala vs Java, вот там видно кто и куда

shty ★★★★★
()

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

Саттер, Александреску.

Reset ★★★★★
()
Ответ на: комментарий от shty

Java, Python, whatever... что тебе ещё надо?

Ява недостаточно нативна. Питон неплох, но динамически типизирован и пользуется репутацией тормоза.

tailgunner ★★★★★
()
Ответ на: комментарий от TheKnight

Ну и? Какой-то лошара и предатель Родины. Мнение подобной личности вообще никому тут неинтересно должно быть.

anonymous
()
Ответ на: комментарий от tailgunner

Ява недостаточно нативна.

нельзя ли поподробнее про эту «недостаточность», хотелось бы понять в чём она выражается на практике и какое здесь преимущество у .net?

Питон неплох, но динамически типизирован и пользуется репутацией тормоза.

писать на нём работающие проекты это не мешает (а область применения, она у любого языка есть, в том числе и у C#)

shty ★★★★★
()
Ответ на: комментарий от dave

Стартуй один раз на, как ёмакс

anonymous
()
Ответ на: комментарий от anonymous

Фимоз мозга детектед.

Юноша, системный софт и гуйня - это две огромные разницы.

Так спешил показать одноклассникам своё знание луркосленга, что не успел прочитать пост ниже?

Dragon59 ★★
()
Ответ на: комментарий от tailgunner

Кстати, те же приложения на хаскеле стартуют очень быстро :)

dave ★★★★★
()
Ответ на: комментарий от shty

нельзя ли поподробнее про эту «недостаточность»

Толстая VM с долгим стартом (на каждую программу - своя), геморройный доступ к библиотекам нижележащей платформы.

какое здесь преимущество у .net?

ХЗ, с .NET не работал. Но, если .NET официально основная платформа разработки для венды, то у нее всё в порядке (Java - узкая платформа для всяческого серверсайда).

Питон неплох, но динамически типизирован и пользуется репутацией тормоза.

писать на нём работающие проекты это не мешает

Не мешает. Но делает его не очень хорошим кандидатом на Ъ-массовую платформу вроде .NET или Java.

tailgunner ★★★★★
()
Ответ на: комментарий от Dragon59

не успел прочитать пост ниже?

Облажался - отвечай по полной. Раз такие оговорки допускаешь, значит каша в голове.

Вообще, озабоченность гуйней это само по себе первейший симптом фимоза.

anonymous
()
Ответ на: комментарий от anonymous

Вообще, озабоченность гуйней это само по себе первейший симптом фимоза.

wut? Какая озабоченность? Если в контексте упомянут гтк, даже такому неразумному анаонимусу как ты должно быть ясно, что речь идёт исключительно о гуёвых программах.

Dragon59 ★★
()
Ответ на: комментарий от tailgunner

Толстая VM

за всё приходится платить, .net тут, кстати, тоже тонкостью не отличается

с долгим стартом

ну что сказать, скажу только что всё относительно, и что в толстом приложении всё равно всякие модули подгружаться, конфигурации читаться, сетевые соединения устанавливаться будут на порядок дольше, но легковесные cli-утилиты не попишешь, да

зато в данной нише (где нужен быстрый стартап) есть тот самый питон, который себя вполне прилично чувствует

на каждую программу - своя

и слава богу, не хватало ещё чтобы программы за контексты ВМ боролись

.NET официально основная платформа разработки для венды

ну да, такова официальная версия, только я не вижу от того особого профита, учитывая что её всё равно приходится .net руками доставлять, да ещё и для каждый версии .net приходится ставить отдельно

Java - узкая платформа для всяческого серверсайда

не согласен насчёт ширины платформы и области применения - да, в сервер-сайд Java (платформа) себя чувствует отлично, но в связи с ростом мощности рядового десктопа в последние N лет, и на десктопе тоже дела весьма оптимистично выглядят

тут соображение следующее - бизнесу зачастую пофиг сколько там стартует приложение (1 секунду или 10), если оно затем довольно шустро работает и не падает, тем же кому нужна максимальная эффективность выбирают другие средства и платформы

shty ★★★★★
()
Ответ на: комментарий от tailgunner

Но делает его не очень хорошим кандидатом на Ъ-массовую платформу вроде .NET или Java.

ну, тут спорить сложно, но если рассматривать различные области применения, то существует такие области где использовать python удобно и приятно, да, это количество областей меньше чем у Java или .net, но это количество всё равно существенно

shty ★★★★★
()
Ответ на: комментарий от shty

и на десктопе тоже дела весьма оптимистично выглядят

Ява оптимистично выглядит на десктопе? O_o

бизнесу зачастую пофиг сколько там стартует приложение (1 секунду или 10)

Речь не о бизнесе, а об инструменте общего назначения. Для бизнеса хватит Явы.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

и на десктопе тоже дела весьма оптимистично выглядят

Ява оптимистично выглядит на десктопе? O_o

да, а что смущает?

Речь [..] об инструменте общего назначения.

я не очень понимаю значение этого термина в рамках нашей дискуссии

shty ★★★★★
()
Ответ на: комментарий от tailgunner

Ява оптимистично выглядит на десктопе? O_o

С библиотекой SWT, пожалуй, да. Примеры: Eclipse, AnyLogic и Vuze.

dave ★★★★★
()
Ответ на: комментарий от shty

Ява оптимистично выглядит на десктопе? O_o

да, а что смущает?

Оттуда, где я сижу, как-то не видно широко распространенных приложений на Яве. Я вообще не знаю полезных десктопных приложений на ней, за исключением Eclipse. Вот еще подсказывают Vuze.

Речь [..] об инструменте общего назначения.

я не очень понимаю значение этого термина в рамках нашей дискуссии

Что-то относительно легкое и с доступом к фишкам платформы (в случае Linux это сводится к Си-библиотекам). Ближе всего - Python.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Оттуда, где я сижу, как-то не видно широко распространенных приложений на Яве.

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

Я вообще не знаю полезных десктопных приложений на ней, за исключением Eclipse.

ну я, к примеру, часто использую xmind - очень удобно, например, и довольно шустро

shty ★★★★★
()
Ответ на: комментарий от tailgunner

Я вообще не знаю полезных десктопных приложений на ней

jEdit, Visual Paradigm, хотя, конечно, их мало.

Begemoth ★★★★★
()
Ответ на: комментарий от tailgunner

Ява недостаточно нативна.

В каком смысле? SWING некрасиво выглядит?

Питон неплох, но динамически типизирован и пользуется репутацией тормоза

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

cab ★★★★
()
Ответ на: комментарий от cab

Питон неплох, но динамически типизирован и пользуется репутацией тормоза

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

А когда у него был шанс? Сколько помню, Python всегда был беспонтовым.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Я вообще не знаю полезных десктопных приложений на ней, за исключением Eclipse

Я очень долго пользовался музыкальным плеером Jajuk.

cab ★★★★
()
Ответ на: комментарий от tailgunner

ИМХО, Python был вполне бодр до версии 2.5, а потом, с выходом тройки стал жиреть и топтаться на месте.
Тем не менее, он отличная рабочая лошадка.

cab ★★★★
()
Ответ на: комментарий от tailgunner

Что-то относительно легкое и с доступом к фишкам платформы (в случае Linux это сводится к Си-библиотекам). Ближе всего - Python.

я пока, честно, не очень понимаю как «легкое и с доступом к фишкам платформы» коррелирует с «инструментом общего назначения», ибо под это определение подходит всё обсуждаемое, отличаются только степени (незначительно) лёгкости как таковой и лёгкости «доступа к фишкам»

далее, «фишки платформы» сводить к использованию си-библиотек я бы всё же не стал, ибо во-первых здесь у питона никаких особых преимуществ не наблюдается, а во-вторых широкая аудитория всё же ориентируется на «батарейки» (и правильно делает), если же рассматривать «относительно лёгкое», то здесь питон и .net и java обскачет, как по размерам (тест: установить на чистую машину приложение, использующее ту или иную платформу), так и по легковесности запуска

и мы говорим про «инструменты общего назначения» с точки зрения кого, разработчика?

shty ★★★★★
()
Ответ на: комментарий от shty

далее, «фишки платформы» сводить к использованию си-библиотек я бы всё же не стал

Имелось в виду «фишки нижележащей платформы», естественно.

здесь у питона никаких особых преимуществ не наблюдается

Я проспал появление у Явы аналога ctypes?

и мы говорим про «инструменты общего назначения» с точки зрения кого, разработчика?

Да. С чьей же еще?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ну да, 3 человека аж 4 приложения вспомнили

ну вспомнили же :)

в начале 2000-х я, к примеру, ничего на java не использовал, ярко помню как поставил jbuilder, понял что это дико тормозная кака, в которой даже кнопки с дикими лагами нажимаются, и снёс к чертям собачьим

shty ★★★★★
()
Ответ на: комментарий от tailgunner

(хотя хз, что такое этот AnyLogic)

Визуальная среда имитационного моделирования. Например, там есть редактор различных специализированных диаграмм. Российская разработка. Хорошо продается в штатах.

dave ★★★★★
()
Ответ на: комментарий от tailgunner

здесь у питона никаких особых преимуществ не наблюдается

Я проспал появление у Явы аналога ctypes?

JNI, не?

// однако здесь должен сказать, что сильно плотно не использовал ни то ни другое, так что не знаю насколько по возможностям они соотносятся, мне для моих маленьких задач вполне хватало

shty ★★★★★
()
Ответ на: комментарий от Dragon59

И да, под системным софтом я имел ввиду прикладной

а я под «лево» имею в виду «право»

vostrik ★★★☆
()
Ответ на: комментарий от shty

JNI, не?

Не, JNI требует написания отдельной обёртки на С, а ctypes позволяет напрямую вызывать С-шные функции.

Begemoth ★★★★★
()

за то время, что я занимаюсь плюсами, такой книги я не нашел (вот в сях это определенно k&r, хотя и к ней я бы добавил deep c secrets), но могу посоветовать несколько из тех, что мне более-менее понравились.

http://www.ozon.ru/context/detail/id/2847443/
http://www.ozon.ru/context/detail/id/5600302/
http://www.ozon.ru/context/detail/id/5384178/

C++ для профессионалов хотя и носит громкое название, в действительности книга для новичков. из нее в свое время осилил различные понятия, которые ниасилил например в Лафоре.

в принципе этих 3-х книг для старта хватит. начинать с Саттера, на непонятных моментах заглядывать в Страуструпа (хотя не факт, что станет понятнее). хотя когда я начал с этих книг, у меня уже были кой-какие знания, почерпнутые из с++ за 21 день, ооп в с++ Лафоре. так что возможно я ошибаюсь.

для дальнейшего изучения крестов:

http://www.ozon.ru/context/detail/id/18062411/
http://www.ozon.ru/context/detail/id/3829080/
http://www.ozon.ru/context/detail/id/3817580/
http://www.ozon.ru/context/detail/id/2342923/
http://www.ozon.ru/context/detail/id/6283412/
http://www.ozon.ru/context/detail/id/2623968/

паттерны:

http://www.ozon.ru/context/detail/id/2457392/
http://www.ozon.ru/context/detail/id/6108824/

на русском, как видишь, они издаются/издавались.

от себя совет: не связывайся с крестами. во всяком случае если только начинаешь изучать программирование и cs как таковой. Изучи C, пройди курс по scheme, ооп пробуй в какой-нить жабе или шарпе. когда набъешь некоторую базу знаний - берись за кресты. это как курение :) не зря во всем мире детям до 18 (а где и до 21) не продают сигареты/алкоголь. организм должен окрепнуть, прежде чем начинать его травить :) так и тут. опять же, это всего лишь мое мнение с поправкой на опыт, оно может отличаться от местных аналитиков :)

vvviperrr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.