@Pantene742

Как учить C++ программисту который не учился в вузе в данной сфере?

Работаю Full stack JavaScript разработчиком. Имею опыт работы PHP, Python.

Посоветуйте хорошие книги. Которые подойдут для человека который не учился в соответствующем вузе.
Простым языком о C++ и Computer Science это смешно. Но Посоветуйте понятных книг по проще.

Почему хочу изучать C++ ?
Ради фана и развития. скорее всего работать буду дальше с JS. Возможно прибавлю Java.

Ради развития и общего понимая программирования. Многие вещи из C++ переносят в популярные языки или они там есть уже в виде копии. (В данном языке можно в ручном режиме попробовать любую идею программирования)
Хочу понимать на базовом уровне.
Архитектуру Железа.
Архитектуру ОС.
Принципы компиляции. Интерпритации. Логика. (Желательно по проще) не так как в популярной книге Принципы компиляции и интерпритации программ (Пока она для меня сложная)
Более практическое применение C++. STD/BOOST. управление потоками процессами (ОС API)
Взаимодействие с IO устройствами.(понимание логики - драйвера писать не собираюсь)
Шаблоны ООП Парадигмы на практическом примере. (Игры, GUI... Сетевые приложение)
  • Вопрос задан
  • 2281 просмотр
Решения вопроса 4
jamakasi666
@jamakasi666
Просто IT'шник.
Учился или нет роли не играет вообще никакой. Простых книг не бывает впринципе, мало того они устаревают очень быстро т.к. язык развивается и меняется также быстро. Кроме того qt, msvs и gcc хоть и являются с++ но очень непохожи друг на друга. Дальше, банально учить с++ надо ооочень долго и постоянно, его невозможно выучить для фана и вообще выучить.
Для того что написали "Хочу понимать на базовом уровне. " лучше, быстрее и выгоднее учить просто С т.к. его еще и использовать сможете по назначению в других языках.
Ответ написан
@polar_winter
Плюс за K&R С programming language.
Также Таненбаум Архитектура ЭВМ и другие .
Паттерны проектирования О'Рейли.
Ответ написан
@Gytim
если qt то Шлее, по крайней я мере много нашел.
а для 5 версии у меня как-то плавно на сайт qt.io с инструкциями перешло.

Но если у тебя хороший инглиш то книжек хватаеть.
Ответ написан
@Ariox41
По стандартной библиотеке могу посоветовать "Стандартная библиотека C++. Справочное руководство". Я, правда, читал только первое издание (сейчас актуально второе), но вряд ли она стала сильно хуже. Ну и cppreference.com для изучения стандартной библиотеки тоже полезен.

По многопоточности однозначно стоит почитать "Параллельное программирование на С++ в действии. Практика разработки многопоточных программ" - язык там может и не самый простой, но там хорошо описаны как библиотека поддержки потоков, так и основы модели памяти (в связи с атомарными переменными).

По остальным запросам сложнее - всё сильно зависит от текущего уровня знаний и от цели изучения. Возможно, стоит начать с книг для новичков, где объясняются основы языка (тут много вопросов про такие книги). Но наверняка большая часть изложенной в них информации вам уже знакома, при этом часто в таких книгах приводятся не лучшие способы решения задач. Шлее неплохой выбор для новичка в C++, знакомого с другими ЯП, но он всё же больше о C++ в экосистеме Qt, с точки зрения чистого C++ там хватает недостатков.

Можно попробовать почитать Майерса ("Эффективное использование C++. 50 рекомендаций..." и/или "35 рекомендаций", не стоит начинать с последних книг). Они могут оказаться слишком сложными, но отвечают на большую часть ваших запросов (или хотя бы станет понятно, куда копать дальше и нужно ли оно вам). Там некоторые вещи однозначно будут непонятны, но при первом прочтении их можно просто пропустить - главы слабо связаны между собой. Меня в своё время книги Майерса мотивировали изучать C++ всерьёз (до этого выбирал между C++ и Java), на тот момент я знал C++ на уровне C с классами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@chromimon
Обучать вас С++ вообще не является целью ВУЗа.
Язык можно прекрасно изучить или ПТУ или в школе или вообще самому.
ВУЗ дает более общие знания, чем банальный язык программирования.
Ответ написан
@assembled
Лучше начать с изучения Си, по книге Кернигана и Ричи "Язык программирования Си", там все доступно и понятно объясняется, и стандарт K&R работает на большинстве компиляторов. Си хоть и примитивнее, но проще в освоении. Потом уже можно браться за изучение C++. По моему мнению, C++ ужасный, раздутый, в нем много лишнего; но сегодня без него никуда, очень много приложений написано на нем.
И не переносят ничего из C++ в другие языки, это C++ все впитывает в себя как губка, все что нужно и ненужно.
Я бы не стал пробовать на C++ другие парадигмы кроме ООП, все будет ужасно и непонятно. Для каждой парадигмы есть свои, более подходящие языки, например:
- функциональное: Lisp, Haskell, Erlang, J ( для мазохистов, он кстати относится еще и к векторному программированию ) ;
- логическое: Prolog;
- ООП кроме C++: C#, Java, Python, Ruby и еще много др. языков;
- для понимания архитектуры можно изучить ассемблер.
Для понимания основ компиляции лучше начать с книги "Давайте создадим компилятор" ( имя автора непомню ), потом уже можно браться за более серьезные книги.
Ответ написан
Комментировать
32bit_me
@32bit_me
Программист, встраиваемые системы
Могу посоветовать ещё курсы на Stepik.org
Ответ написан
Комментировать
@SingularityNRN
По поводу компиляции, лексического/синтаксического анализа могу посоветовать "Компиляторы: принципы, технологии и инструменты", её ещё называют книгой дракона. Сам учусь в вузе и при написание курсовой работы активно учился по этой книге, помогла в кратчайшие сроки (~1 месяц) освоить основы и подготовиться к экзамену. Поищите что-то из более свежих изданий (иначе будете "тупить" в местах неточного перевода).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы