| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Литература для изучения C++ (FAQ читал) |
| Автор: Xokker 3.3.2010, 14:14 |
| По собственной глупости C++ когда-то начал изучать по книге C++ Without Fear. Когда понял, что книга далеко не лучшая (или я ошибаюсь?), был уже больше, чем на середине. Ее дочитал (и выполнил все примеры), но теперь сейчас заметил, что стандартом де факто для изучения языка является "Как программировать на C++". Если кто-нибудь сталкивался с этими обоими книгами, подскажите, пожалуйста, стоит ли тратить время и деньги на прочтение "Как программировать на C++"? Или, может, прочитать оттуда отдельные главы? P.S. Прошу прощения, если пост поместил не в тот раздел. |
| Автор: limelight 3.3.2010, 15:07 |
| Если идет речь о книге обоих Дейтелов, то я совсем недавно купил 5-е полное издание этой книги, т.к. в сети вообще не было даже подобия, максимум 3-е и то в плохом качестве. Что скажу...пока что 100 страниц усвоил. Все ооооочень разжеванно, ну поначалу по крайней мере. Еще не видел ни одного плохого отзыва о ней, очень многие рекомендуют начинать ее. В самой книге написано что предназначеная для 1-2 го года программирования. 1400 страниц в ней мне пока нравится все кроме лишней "воды" но это надеюсь не минус, т.к. какие то более сложные темы будут объяснены более полно. Параллельно читаю книгу Лафоре "Объектро-ориентированное программирование" разжевано все меньше, но все понятно процентов на 97 - 100 |
| Автор: Lazin 3.3.2010, 15:22 | ||
вообще не стоит тратить время на изучение С++ |
| Автор: mes 3.3.2010, 15:39 | ||
kemiisto, В отличие от Ваших (многих) предыдущих выпадов в сторону С++, с такой формулировкой согласен хотя что такое Chokeslam не знаю, но чувствую что интуиция мне подсказывает правильно |
| Автор: Alca 3.3.2010, 18:25 | ||
Lazin, а тогда на что тратить? |
| Автор: Ozerich 3.3.2010, 19:07 |
| Дейтелы, а потом Страуструп |
| Автор: Xokker 3.3.2010, 19:28 |
| kemiisto, вообще у меня C++ не первый, до этого был Паскаль, после которого (вроде) советуют изучать C/C++ (это был ответ на вопрос "зачем"). А что вы посоветуете в моем случае? Ozerich, На счет Дейтелов пока думаю, а Страуструп дома лежит, иногда полистываю(почитываю). |
| Автор: limelight 3.3.2010, 19:35 |
| Хм, по вашему Дейтлы настолько плохи для начального погружения??Поясните коль сказали "А" )) |
| Автор: kemiisto 3.3.2010, 20:12 | ||||
Вроде... Советуют... Это не ответ. Дык в том то и дело, что мы ровным счётом ничего не знаем о Вашем случае. Что за задача? Или just for fun? Какая фантастическая подборка. А где Perl и RealBasic? Я негодую!
Язык плох, а не авторы. Невозможно написать хорошую книгу по С++. |
| Автор: limelight 3.3.2010, 20:22 |
| На "плохом языке" написано много много много всего чем пользуемся мы и чем пользуетесь вы) Так что выходит что этот язык так популярен за неимением лучшего? И чем же вы можете подкрепить свое подобное к языку отношение? |
| Автор: Xokker 3.3.2010, 20:36 |
| kemiisto, цели 2: just for fun и чтобы быть во всеоружии на момент поступления в ВУЗ (через 1.5 года). |
| Автор: Lazin 3.3.2010, 20:37 |
пятилетним опытом его использования зависит от задач. я лично трачу время на изучение F# |
| Автор: kemiisto 3.3.2010, 21:08 | ||||||
Сжато:
Этот тоже хороший. Дам и тут пару наводок:
Тут всё очень просто. Достаточно познакомиться с любым современным ЯП и Вы не будет задавать подобных вопросов.
Oberon - разобраться в императивном программировании. Процедурном и объектно-ориентированном. Smalltalk - другое ООП. Динамика во всём. Haskell - ФП. Как минимум, учиться лучше с использованием концептуально чистых языков. |
| Автор: Lazin 3.3.2010, 21:19 |
| Отличной заменой С++ может быть OCaml Добавлено через 23 секунды а так-же оберону, хаскелю и смоллтолку |
| Автор: Ozerich 3.3.2010, 21:45 |
| kemiisto, в сторону .NET намекаешь? |
| Автор: Anark1 3.3.2010, 21:52 |
| Шилдт, потом Страуструп http://www.google.ru/search?hl=ru&newwindow=1&q=%D1%88%D0%B8%D0%BB%D0%B4%D1%82+%D1%81%D0%B0%D0%BC%D0%BE%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D1%8C+%D1%81%2B%2B+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=0&oq=%D1%88%D0%B8%D0%BB%D0%B4%D1%82+%D1%81%D0%B0%D0%BC%D0%BE |
| Автор: kemiisto 3.3.2010, 22:27 |
Для Windows - да. C#, F#, ... |
| Автор: Ozerich 3.3.2010, 22:37 | ||
Спасибо за авторитетное мнение Я в принципе еще новичок, так что еще есть выбор за что основательно взяться А есть ли тут где нибудь холивар на тему С++/С#(.NET) ? Ссылку если можно дайте пожалуйста |
| Автор: Alca 3.3.2010, 23:14 | ||
А когда закончиться весь алфавит? |
| Автор: Леопольд 4.3.2010, 11:01 |
Я ошибусь, если скажу что при хорошем знании С++, можно легко усвоить любой другой императивный язык? Добавлено через 3 минуты и 34 секунды F++ |
| Автор: Lazin 4.3.2010, 11:19 | ||
не знаю Изучая С++, новичок сталкивается с абсолютно не нужными ему вещами, такими, как управление памятью, ему ведь нужно научиться не просто писать код на определенном языке, ему нужно научиться профессии, в которую входят такие вещи, как умение использовать различные технологии, умение создавать алгоритмы и проектировать архитектуру системы. В общем, если смотреть на программу как на систему, то язык программирования - далеко не самая важная ее часть. А С++ претендует на роль самой важной части системы, очень часто простые вещи описываются на нем весьма нетривиально. Для того, что-бы быть квалифицированным С++ программистом, нужно много чего знать и уметь, причем большая часть этих умений и знаний, относится к языку, а не к программированию как таковому. Это главная слабость С++, вместо того, что-бы думать над тем как это должно работать, приходится думать над тем, как правильно сделать это на С++. |
| Автор: andrew_121 4.3.2010, 11:35 | ||
хватит троллить! вонь ###! на оберон тебя просто развели стебутся же, разве не понимаешь |
| Автор: GoldFinch 4.3.2010, 14:08 |
| человеку уже умеющему программировать, для изучения С++ следует читать стандарт или другой справочник, затем литературу по отдельным разделам языка. а человеку еще не умеющему программировать - лучше сначала выучить дельфи, C# или что по проще. |
| Автор: Anark1 4.3.2010, 15:43 | ||
C# перед C++ ? |
| Автор: GoldFinch 4.3.2010, 15:58 |
| Anark1, какбэ начинать надо с простого, и более общего. |
| Автор: Леопольд 5.3.2010, 13:35 |
Абсолютно согласен, однако к несколько неудобному синтаксису С++ можно привыкнуть. Когда доступны такие библиотеки как boost, Qt4, Ogre3D и т.д., ни что не мешает писать программы быстро. Со второго раза, само собой Добавлено @ 13:47 Думаю вместо С++ здесь может стоят любой язык. Сложную систему на любом языке тяжело описать, потому-что её надо сначала придумать. Если система уже построена, то на С++ можно написать сравнительно с такой же скоростью как и на других императивных языках со статической типизацией. Пусть кто-то хорошо знает С++, и ровно хорошо знает С#. Допустим, их оба мог бы начать изучать первым. Ему потребуется больше времени на С++ чем на С#. Однако, если он выберет С++, сколько понадобиться времени, что бы потом изучить С# (я не говорю про платформу, потому что она просто гигантсая)? Сколько понадобистья времени, что бы изучить С++ после С#. Я думаю значительно больше. Конечно с утиной типизацией не сравниться, но это ведь уже не статическая типизация. Python, по моему, очень прост в изучении. |
| Автор: Леопольд 5.3.2010, 13:52 |
| Тот же Python, должен позволять писать что-либо более просто и понятно чем это может тот же C#, именно благодаря динамической типизации. Однако он не везде требуется. Он скриптовый, на нём только GUI писать. Есть ещё удобная штука Boost.Python |
| Автор: Lazin 5.3.2010, 14:15 | ||
Так дело не в синтаксисе, а в тонкостях. Мне нужно понимать все тонкости работы кода, которые мне по идее знать не обязательно, например то, как расположены в памяти члены данные объекта, где лежит объект, на стеке или в хипе, можно ли возвращать указатель на объект из функции или нет, как передается объект в функцию - по ссылке или по значению, мне сто лет не упало контролировать время жизни объектов. Все это бывает на самом деле нужно - очень редко. Даже идейные С++ программисты соглашаются с тем, что многие вещи, должны быть работой компилятора, а не программиста.
|
| Автор: mes 5.3.2010, 15:17 | ||||||
если учить #, то чего на ++ смотреть ? только запутается человек. и Вас не смущает, что это костыль ? пользоваться приходится за неимением альтернативы.
тут надо учитывать не только физическую скорость написания, а также и нагрузку на программиста и легкость дальнейшего рефакторинга
я бы сказал, что при понимании что такое программирование, легко усваивается любой язык (после разбора синтаксиса). С++ сложен потому, что учит не только программировать, а обходить подводные камни, которые он несет в себе - и в этом его один минус. а еще один в том что не смотря на разнообразие инструментов в него входящих , многие из них морально устарели... не будем далеко ходить, взять хотя бы for (); - как часто нужен, и как мало может, даже BOOST_FOREACH не покрывает потребностей... хотелось бы добавить по теме что свой первый язык нужно выбирать ориентируясь на целевую платформу и глубину познания (кодить, программировать, или мыслить.) |
| Автор: k0rvin 12.3.2010, 21:37 | ||
что значит "скриптовый"? |