LINUX.ORG.RU

C++

 


1

2

Маленькая справка я изучаю С++ нашел две ветки книг какая из них ведёт к лучшему варианту изучение

ПЕРВАЯ

1.Принципы программирование 2.Бьерн Страуструп. Язык программирования C++ 3.Герб Саттер. Решение сложных задач на С++ 4.Герб Саттер. Новые сложные задачи на С++ 5.Г. Саттер, А. Александреску. Стандарты программирования на С++ 6.Мартин Фаулер. Рефакторинг. Улучшение существующего кода 7.Э. Гамма, Р. Хелм, Р. Джонсон и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования 8.Эндрю Таненбаум. Современные операционные системы

ВТОРАЯ

Прата, прата и еще раз прата. До прочтения праты дальше не двигаться принципиально, ибо нечего :)

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

После этого нужно попытаться почувствовать stl, будущим джедаям для этого рекомендуется бук «Структуры Данных и СБШ (aka stl)» by Уильям Дж. Коллинз. Нескмотря на const гей-код и очепятки для новичков это лучший бук. Обязательно нужно сделать все «программные проекты», потому что уверен, ты не сделаешь их в п.2. Все задачи и алгоритмы классические, – бук очень полезный.

Если ты действительно преодолеешь п 1-3. но ты достигнешь минимального уровня адекватности (МУА).

Т.е. будешь готов нормально понимать следующие буки -

Дедушка Мейерс долго жог, жжот он и сейчас, выпуская различные си(и далее) квелы по цпп - вариации на тему «const int советов штобы было как можно лучшее и удовлетворительнее». Тебе нужно два издания - 55(последнее) и 35. Причем второе, имхо, следует начать двигать раньше.

Паралельно с п.4 можно начать двигать буки Саттера 87(это русский int operator+(int,int)) и 40.

Параллельно с п.5 можно читаль Саттера+Александреску(вариаци на п. 4-5) и книгу «Скользкие места С++» by Стефан К. Дьюхэст. Причем первую я привел совсем без души, это скорее гайд по советам в буржуинской литературе, а вот вторая приятная, да и полегче п. 4-5.

Если ты не жалкий халявщик и статус безглового формошлепа тебе не вставляет, то при попытке овладеть п. 4-6 ты понял, что вообще ничего не знаешь про шаблоны и паттерны. Подумав еще немного, ты понимаешь, что вообще ничего не знаешь, а ведь после п.4 ты думал, что ты крут и даже иногда понимал, о чем говорят на форумах.

Если ты действительно испытаешь это, то ты получишь шанс на достижение уровня большего минимального уровня адекватности (ШНДУ>МУА).

Тебе обязательно нужен будет темплейт гайд, да не простой, а комплит. Клевый гайд, бп. Наши переводчиги назвали его «Шаблоны ЦПП - справочник разработчега», так что ищи этот бук, он редкий, но он тебе очень нужен, ибо на анатоликсах, ослах и иже с ними волк не видел его.

Вместо уголвно прославишихся GoF, на которых сцылаютцо всякие, волк рекомендует тебе для начала кингу Тротта и ШаллоуеЯ «ШП - новый подход к ООА и ООП». Хороший, простой и понятный бук читается на одном дыхании за 3 дня.

Потом нужно двигать ГоФ конечно. Если ты написал хотя бы 10 программ средней сложности, но ты будешь чувствовть, что ты понимаешь паттерны. Это, конечно же не так, но об этом сегодня я не буду писать.

Потому нужно двигать STL - там дедушка, Остерн и стИпанов жгут.

Потихоньку с п 7-12 нужно двигать буст, причем постоянно. Но двигать его надо не для того, чтобы писать в резюме или рассказывать блондинкам, что ты выучил 0.333f оператора из каких-то либ, а когда он тебе будет нужен. Поверь, он будет тебе нужен.

Нужно вкуривать форумы - тут жгут rdsn и gamedev.ru там можно найти почти любой ответ на любой вопрос.

Нужно вкуривать все посты таких лиц как aruslan и _Winnie - читай их жж, читай ссылки с них, читай френдов, вкуривай, понимай и осознавай.

Страуступа читать не надо - он справочник =) Справочники не читают, ими пользуются (с)

Если после п.15 ты думаешь, что твой уровень > ШНДУ>МУА то читай п.1 -15.

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

Столярова читал нехрена не понял на что-то новое

karpasol
() автор топика

какая из них ведёт к лучшему варианту

Конечно вторая. Первая это какой-то академический дроч.

no-such-file ★★★★★
()

После этого нужно попытаться почувствовать stl

STL - это библиотека, в которой после #include <iostream> и статической линковки получается бинарник весомн 2 мегабайта.

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

Lrrr ★★★★★
()

Как-то ты быстро прошёл путь от «что выбрать, подскажите», до «волк рекомендует»…

hobbit ★★★★★
()

Маленькая справка я изучаю С++ нашел две ветки книг какая из них ведёт к лучшему варианту изучение

Начни с русского языка.

Zhbert ★★★★★
()

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

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

Что значит прошло сколько читал форумов лучшее начинать с одна ну может две книги потом обзац так вот вопрос почему нельзя сделать так чтоб был виден путь людям которые только и варианты вить я спрашиваю не книжку а каким путём лучше пойти Прата или Страуструп Лафоре Подбельский Липпман Эккель но эти книги почти одно и тоже изложение другое а после чего? Заглядывал во все ко всем вопросы что потом склоняюсь ли Прата либо Страуструп принципы программирования один писал преподователт и все идёт постепенно вторую писал аш двое Создатель и препод описание сначало нарушать потом объяснить

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

А что тогда изучать cppcon чтоли

Если ты уже знаешь какие-нибудь другие языки, то:

  1. Читаешь какую-нибудь самую тоненькую и простенькую книжонку (или онлайн-туториал) «C++ для чайников за 3 дня», чтобы понимать самые азы для написания и компиляции простейшего «hello world».

  2. Ставишь себе задачу, и решаешь её на плюсах. Не вылезая со stackoverflow в котором будешь искать конкретику, и из гугла в котором будешь искать статьи по более общим вопросам, когда почувствуешь что нихрена не понял конкретных ответов на SO. (Это как с технической документацией на английском: первые тексты читаешь по слогам, не вылезая из словаря, а потом втягиваешься.) А уже из ответов на SO и из статей набегут ссылки и на книги.

А если ты не знаешь никаких других языков, то я не уверен, что C++ это хороший выбор в качестве первого языка.

Обе ветки в твоём вопросе – кромешная дичь, вторая особенно. Буст не нужен. Шаблонная говнозаумь – не нужна. Реализовывать самому стандартные алгоритмы для набивания руки – не нужно (впрочем, мой первый класс на C++ назывался List). И т.д. Нужно не надрачивать на фичи языка (коих в плюсах бесконечно количество, в т.ч. немало уродливых; «полностью C++ не знает никто»), а использовать минимально-необходимое их количество для получения результата. Это же касается любых других языков и технологий.

pr849
()
Последнее исправление: pr849 (всего исправлений: 6)
  1. Выкинуть C++ на помойку
  2. Взять и почитать что-то нормальное. Для теоретических основ - SICP, для практических - что-нибудь про Java/.NET/Python
lovesan ★★★
()
Ответ на: комментарий от lovesan

Выкинуть C++ на помойку

Ни. Немного освоишься, науичишься собирать без райнтайма (напишешь свой) забацаешь rtos, потом любой язык как по маслу пойдёт. Ну а если ещё и cosnt correctness во все поля, то и ржавчина только своим птичьим языком будет смущать)

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

науичишься собирать без райнтайма (напишешь свой) забацаешь rtos, потом…

и на пенсию пора выходить

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

Чтобы код писать надо код знать от-суда вопрос где его можно узнат? все узнавали тогда у Страуструпа но тепирь книг стало слишком много

karpasol
() автор топика

Вся эта дрочь на теорию - ни о чём. Только практика. Открыть исходники какого нить V8 и вникать. Потом самому писать свой Node.js

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

Да не, месяц-два. Я не уверждаю, что полный. В моём случае без исключений, так как не лезли они в целевую железку.

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

да трамплином может любая книжка быть. А дальше, захотелось странного: поискал, изучил. Столкнулся с непонятным: поискал, изучил.

Когда будет практический багаж и умные книжки начнут заходить проще.

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

я бы вообще начал с пиления пет-проектов на сишке, стараясь чтобы там был качественный код без лишнего оверхеда, правильная система сборки, и т.п.

Наплевать, что ты будешь пилить какие-то совсем казалось бы базовые вещи кучу времени, зато будешь знать основы. Такие навыки ценятся гораздо больше, чем красиво оформленные crud на гитхабе.

Запилить что-то прикладное, нафигачив сторонних лефтпадов и накопипастив кода со stackoverflow, может любой программист. А вот сделать так, чтобы это прикладное весило 20 килобайт вместо 20 мегабайт, тянуло 2 зависимости вместо 20 и собиралось где-то кроме специально подготовленного докер-контейнера - большинство даже в принципе не понимает, а чо такого-то. Ну весит 20 мегабайт, ну и что, задача решена же.

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

Запилить что-то прикладное, нафигачив сторонних лефтпадов и накопипастив кода со stackoverflow, может любой программист. А вот сделать так, чтобы это прикладное весило 20 килобайт вместо 20 мегабайт, тянуло 2 зависимости вместо 20 и собиралось где-то кроме специально подготовленного докер-контейнера - большинство даже в принципе не понимает, а чо такого-то. Ну весит 20 мегабайт, ну и что, задача решена же.

+много.

Я тоже люблю мелкий софт с минимум зависимостей. Windows SDK огромный и так, сторонние зависимости не нужны.

git занимающий почти гигабайт очень бесит меня, но приходится пользоваться 😿

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

Ну весит 20 мегабайт, ну и что, задача решена же.

Правильньій инженрньій подход. Из нее не стрелять же…

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

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

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

Как минимум попробовать что-то написать, а то книжки книжками, но толку с них, если не писать свое. Потом заиметь настольную книгу, любую, какую тебе проще воспринимать, ту и бери, и уже методом научного тьіка изучать, еще сверху можно шлифануть ISO по С++, хотя те кто пишет стандартьі, наверное сам их никогда не читал. Ну и лазить по всяким гитхабам и другим порносайтам, и в процессе изучать костьіли которьіе придумали другие люди, мб пьітатся их переписать. Но тебе нужон план, без плана ничего не вьійдет, должна же бьіть конечная цель, если конечно целью не есть читка книг.

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

Спасибо за совет для справки стандарты принимал Шилитд злой дядя

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

Извините вопрос стоит писать На С++ в виндовс или линюкс лучше а то в винде 10 есть убунту

Windows - это CLR и dotNet.
Linux - это C.

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

Имено эту систему Gentoo не дивуан не убунту

karpasol
() автор топика

Есть вариант повеселее - начни со Столярова (за месяц его трехтомник вполне реально освоить а это и си и плюси и много чего всякого), далее уже 1 ветка. А за стл нужно основательно уже потом браться, когда хотя бы Страуструпа осилишь - так как при использовании какого-то алгоритма ты ДОЛЖЕН уметь реализовать его сам и досконально понимать, как он работает

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