Green-sell.info

Новые технологии
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование с нуля на c книга

Литература по С++

Когда я учился такой книги, к сожалению, не было. Книга толстая, но читать ее интересно. Автор не является членом комитета стандартизации языка, а преподает в ВУЗе, поэтому написал не справочник, а учебник. Это лучший учебник по С++, который я видел. Прата собрал весь свой педагогический опыт и сделал упор именно на те аспекты, с которыми у студентов возникают проблемы (как ни странно, но у моих студентов те же самые проблемы, поэтому я рекомендую им эту книгу). Книга новая и в ней описывается новый стандарт. Специально под фичи С++11 выделено всего 50 страниц, но по ходу всей книги делаются небольшие отступления на эту тему.

Хорошая книга от автора языка. Текст книги сухой, хотя в ней есть примеры, советы по поводу «хорошего кода» и даже упражнения. Лично я, использую ее в качестве справочника — как учебник книга вряд ли может сравниться с произведением Прата.

Рецензия от другого, уважаемого мной программиста:

Бьерн Страуструп — это удивительный человек, сочетающий в себе несочетаемые вещи. Во-первых, это человек, придумавший один из самых гениальных языков современности. Во-вторых, это человек, дающий ужасающие рекомендации по программированию на собственном языке.

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

У меня сложилось впечатление, что книга писалась в жутко укуренном состоянии. Совершенно никакой последовательности мысли. Напоминает письмо дяди Федора из Простоквашино. Читается тяжело и муторно, насквозь пронизана бессмысленными и никому не нужными лирическими отступлениями.

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

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

Две книги Скотта Мейерса для углубленного изучения С++. Выполнены в виде сборников правил типа: «Никогда не вызывайте виртуальные функции в конструкторе или деструкторе». Правила касаются понимания концепций объектно-ориентированного программирования, вопросов управления памятью, обработки ошибок и эффективности кода. К правилами прилагается исчерпывающее объяснение. В очень небольшой части материал книг пересекается, но в целом, они дополняют друг друга. Начать изучение стоит с книги «35 рекомендаций» — она попроще.

Отзыв от уважаемого мной программиста:

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

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

Книга рассказывает об основных паттернах проектирования с упором на их реализацию. Особый восторг вызывают фирменные метапрограммные рецепты господина Александреску.

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

Отзыв от уважаемого мной программиста:

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

Остается добавить, что само название, «101 правило и рекомендация», это не просто бойкое маркетинговое название, выдуманное молодым маркетологом-энтузиастом. Книга действительно представляет собой сто одну коротенькую рекомендацию по программированию.

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

Краткое содержание книги прекрасно описано в первой главе, не буду дублировать, перечислю лишь то, что привлекло внимание.

Первая часть посвящена языку С++, ее можно рассматривать как очень краткое, но глубокое введение в язык.
— во второй главе приведено очень поверхностное изложение тонкостей С++, а также множество коварных фрагментов кода, на которых можно проверить знаете ли вы язык в достаточном объеме чтобы читать дальше или нет.
— третья глава посвящена шаблонам (templates). Если вы до этого не сталкивались с ними — то по приведенному материалу сможете разобраться. Все, что там описано работает, но стоит учитывать, что книга писалась в 90х годах, сейчас возможности шаблонов гораздо шире.
— глава 4 посвящена обработке исключений, написана в том же стиле, что и третья. Можно использовать как полноценный учебник.

Во второй части книги рассказывается про умные указатели и итераторы. Очень подробно, про всякие разные. Поразительно, что по этой теме написано так много… Например, про умные указатели писал в своих книгах Майерс, но совсем с другой стороны. Наиболее понравилась глава 7 про «грани и другие мудрые указатели» и глава 9 «транзакции и гениальные указатели».

В части 3 речь идет о двойной диспетчеризации, производящих функциях и, опять же, умных (на этот раз «невидимых») указателях. Материал местами отдает академизмом, но все равно интересно.

В четвертой части речь идет о памяти — перегрузке операторов new и delete, при этом описывается несколько алгоритмов, которые могут улучшить работу с памятью в ваших программах, в том числе уплотнения памяти и сборки мусора. Мое личное мнение — все это интересно, но реализовать качественно эти алгоритмы слишком сложно и не совсем очевидны случаи когда стоит это делать. Так, например, недавно я публиковал аннотацию на доклад по похожей теме: https://vk.com/wall-105242702_701, в котором нечто подобное (не все) реализовано в malloc. Вероятно, в тех редких случаях, когда вас не устраивает стандартный malloc — можно использовать другую реализацию.

Резюме: книга интересная. Первая глава однозначно имеет практическую направленность. Остальная часть книги интересна, полезна для кругозора и местами на практике (например раздел по двойной диспетчеризации).

Многие ребята, занимающиеся промышленной разработкой на С++ сообщили мне, что не читали эти книги, но хотели бы (времени нет). Нужно ли вам читать их или вы уже знаете STL? — выяснить это я предлагаю так:

  1. попробуйте пройти короткие (6-7 вопросов) тесты на темы std::vector и std::list. Эти тесты касаются мизерной и самой простой части содержимого книг.
  2. ответьте сами себе в рамках такого опросника:
    1. есть у вас ссылка на элемент vector/list/deque — вы делаете вставку нового элемента в контейнер. Останется ли валидной ссылка?
    2. что изменится если вместо ссылке в предыдущем вопросе использовать итератор?
    3. какие есть типы итераторов? Что такое адаптеры итераторов и как ими пользоваться?
    4. знаете ли вы как удалить элементы с определенным значением из вектора/списка/ассоциативного контейнера?
    5. что изменится если нужно удалить элементы, удовлетворяющие определенному условию? (особенно std::map/std::set )?
    6. знаете ли вы, какие возможности дает istreambuf_iterator?
    7. что делать, если нужно отсортировать вектор не полностью, а только его часть? — что умеет std::nth_element ? А как быть с std::list?
    8. чем map::operator[] отличается от map::insert ? Что выбрать для вставки элемента?
    9. знаете ли вы о том, какие функции есть в STL для работы с отсортированными векторами и пирамидами? Есть ли смысл строить на такой структуре данных множество?
    10. что делают фукнция std::replace_copy_if , std::remove_copy_if , std::unique , std::random_shuffle ? — это касается не зазубривания, а того, будете ли вы писать свой велосипед или хотя бы попробуете найти готовую функцию для перемешивания массива;
    11. как можно использовать std::copy и std::copy_backward ? — Можно ли копировать элементы между контейнерами разных типов? Использовать их с файловыми итераторами? Можно ли применять их для копирования элементов внутри одного и того же контейнера ?

    Книга Аммерааля, откровенного говоря, очень скучная, почти как справочник. Читать ее стоит по диагонали, однако, я выбрал для вас наиболее интересные (с моей точки зрения) моменты:
    1. Из первой главы можно узнать зачем вообще нужны итераторы и как их не стоит использовать. Хорошо написано про категории итераторов. Если вы не знаете что такое Erase–remove idiom — то эту главу точно нужно просмотреть. Тут же можно прочитать про ряд полезных алгоритмов: sort, find, copy, merge, replace_reverse, find_if, remove_if — однако эта часть очень скучна, хотя, полезно знать что такие алгоритмы вообще существуют (ну чтобы не писать велосипеды).

    2. Во второй главе описаны ассоциативные контейнеры и ряд алгоритмов. Если вы не знаете что такое set/map — то можно почитать. В третьей главе подробно описываются vector (и vector ), list и deque, стоит заглянуть если вы не знаете как может быть реализован deque внутри (тут перекликается с одним из советов Маерса — не использовать deque вместо вектора без особой необходимости, хоть он и эффективнее). Если вы не используете в своей работе операции splice, remove и merge для std::list — то также почитайте.

    3. Вы слышали про set_intersection/set_union? — если нет, посмотрите примеры к четвертой главе (из них все понятно, текст читать не стоит). Если не знаете что такое адаптеры контейнеров (stack, queue, priority_queue) — загляните в пятую главу. Из полезного в шестой главе — адаптеры итераторов (inserter) и std::transform (незаслуженно забытый студентами).

    4. В седьмой главе описаны алгоритмы, опять же как в справочнике, но с хорошими примерами. Нет смысла всех их перечислять, но заглянуть туда стоит если вы не слышали про: adjacent_find, mismatch, copy (им можно хитро пользоваться, а также есть copy_backward), generate, random_shuffle, partition (и stable_partition). А знали ли вы, что STL есть генератор перестановок, операции с пирамидами, а также ряд операций, позволяющих работать с массивами (отсортированными) как со множествами? — знать детали всех этих функций не обязательно (для этого есть справочник), а вот знать что такое вообще существует — нужно.

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

    Итог: эти две книги не являются учебниками по STL, чтобы научиться им пользоваться — надо ставить задачу и писать код. Книги же помогут вам набить меньше шишек. Читать лучше сначала Аммерааля, а потом уже Мейерса, т.к., несмотря на то, что вторую книгу читать проще, ориентирована она на людей, уже знакомых с STL — упор в ней больше делается на тонкости.

    Лучшие книги о языке программирования C++

    Одним из самых популярных языков программирования является С++. Множество разработчиков выбирают его в качестве главного языка, но также часто он становиться и дополнительным инструментом разработки программного обеспечения.

    Что нужно новичку, чтобы изучить язык С++? Прежде всего понадобится настойчивость и терпение, только эти качества помогут начинающему пройти путь обучения до конца. А максимально быстро добиться результата помогут качественные учебники, хорошие учителя, а также наличие компилятора и текстового редактора.

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

    Если есть готовность учиться и твердое намерение стать программистом С++, то нижеприведенные книги будут крайне полезны.

    Программирование: принципы и практика использования C++

    Автор: Бьярне Стауструп

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

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

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

    Учебник Страуструпа по праву считают обязательным для изучения начинающими программистами С++. Книга уже неоднократно переиздавалась и пользуются неизменной популярностью. При первом прочтении следует внимательно ознакомиться с нулевой главой, она содержит рекомендуемый порядок изучения, соблюдение которого сделает учебу максимально эффективной.

    Философия C++

    Автор: Брюс Эккель

    Помимо практического овладения навыками программирования С++, важно понять суть этого языка, его философию. В основательном учебнике Брюса Эккеля разбираются вопросы, часто возникающие в процессе написания программ, а также даются примеры их решения.

    Книга развивает у обучающегося специфический образ мысли, помогающий ему в разработке программ, способствует пониманию язык С++ на глубинном уровне.

    Учебник рекомендован для всех, кто изучает С++, и имеет продуманную структуру. Материал подается поэтапно — от простого к сложному. В книге много иллюстраций и схем, которые помогают в усвоении прочитанного. В каждой главе даются подробные объяснения.

    Поскольку С++ является основным при разработке коммерческих программ и имеет существенное сходства с Java, то рекомендуется обратить внимание и на другой учебник Эккеля — «Философия Java», он поможет в изучении этого языка.

    Второй том «Философии С++» посвящен практическим занятиям. В книге разбирается много примеров обработки исключений, изучаются библиотеки и различные паттерны проектирования.

    C++: базовый курс

    Автор: Герберт Шилдт

    Книга написана признанным экспертом, Гербертом Шилдтом. У автора большой опыт в области создания качественных учебников и пособий по программированию на С, С++, С# и Java. Многие книги Шилдта стали бестселлерами и переведены на разные языки. Одним из самых известных его трудов является учебник «Освой С++ за 21 день».

    Учебник «С++: базовый курс» содержит массу информации по программированию на С++. В книге даются как знания об элементарных понятиях, так и более продвинутые.

    Автор не скупится и делится своим богатым опытом программирования. На страницах книги представлены рекомендации и советы о том, как можно существенно повысить продуктивность работы. Учебник снабжен множеством примеров из практики программирования. После внимательного изучения «С++: базовый курс» у обучающегося сложится полное представление о языке С++, его особенностях, достоинствах и недостатках.

    Язык программирования C++. Базовый курс

    Авторы: Стенли Липпман, Жози Лажойе, Барбара Э. Му

    Книга написана специалистами с солидным опытом в сфере разработки программных решений. Стенли Липпман работает в Walt Disney и занимается программирование в области трехмерной графики. Жози Лажойе является сотрудником IBM и совершенствует ядро С++, а Барбара Э. Му — опытный разработчик, которая сотрудничала с самим Страуструпом.

    Книга является типичным учебником с методичным изложением материала. Людям с совсем нулевыми знаниями в области программирования «C++ для начинающих» вряд ли подойдет, для усвоения информации потребуется некоторый опыт в программировании на других языках.

    Тем не менее учебник полон качественной информации, при изучении которой обучающийся приобретет знания и навыки в области С++. Главной задачей авторов учебника была демонстрация возможностей языка С++.

    Авторы на свое усмотрение выделили некоторые важные, по их мнению, темы и сделали их детальный разбор. Иные же стороны языка программирования С++ даются в виде задач. Главы сопровождаются емкими резюме и списком новых терминов, что помогает эффективному усвоению материала.

    Читатель знакомый с азами программирования сможет быстро освоить информацию из книги и начать полноценно работать с языком.

    Язык программирования C++

    Автор: Стивен Прата

    Фундаментальный труд Стивена Прата, в котором рассматриваются навыки обектно-ориентированного, обобщенного и процедурного программирование. Объем знаний, представленный в книге, колоссален, недаром в нем 1450 страниц.

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

    Отличительная особенность учебника заключается в легкости изложения и восприятия информации, сказывается богатый опыт преподавания автора в университете. Учебник подойдет людям, обучающимся в университетах на IT, а также тем, кто готов самостоятельно изучить язык С++.

    При изучении программирования на С++ или других языках, следует знать, что лучше пользоваться учебниками, написанными на языке оригинала. Перевод часто выполняется людьми далекими от области IT, поэтому в тексте возможны фактические ошибки и неточности.

    Исчерпывающий список книг для знакомства с C++

      Книги, 10 марта 2018 в 21:30

    C++ — достаточно сложный для изучения язык. Но он до сих пор держит лидирующие позиции по использованию в программных проектах, поскольку имеет огромное количество функций, обладает довольно высокой производительностью и постоянно улучшается. Если вы решили изучать именно его, то добро пожаловать в нашу подборку, которая содержит материалы, позволяющие научиться программировать на C++ как новичкам, так и программистам, ранее изучавшим другие языки.

    Fundamentals of Programming C++

    Книга содержит огромное количество материала по C++ и явно стремится осветить все основные аспекты языка. В ней вы найдете информацию как про базовые элементы C++, так и про использование библиотеки STL. Автор постоянно обновляет книгу, благодаря чему в ней представлена актуальная версия языка. Множество примеров, как кода, так и работы программы, позволят более эффективно освоить пройденный материал.

    C++ Annotations

    Книга рассчитана в первую очередь на тех, что уже знает язык Си или Си-подобный язык, например, Java. Поэтому она не рассказывает об общих моментах, которые одинаковы или, по крайней мере, очень похожи в таких языках, а сразу преподносит материал, присущий только языку C++. Поэтому если вы изучаете или уже изучили Си или Java, то эта книга станет вашим подспорьем в изучении C++. А если нет, то предлагаем вам посмотреть на наши подборки замечательных книг по Си и Java.

    C++ Succinctly

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

    Программирование. Принципы и практика с использованием C++

    Книга написана создателем языка C++ — Бьерном Страуструпом. Материал ориентирован в первую очередь на тех, кто не был знаком с программированием до прочтения этой книги. Она задумана в качестве введения в искусство программирования, а язык C++ играет скорее иллюстративную роль. Здесь не удастся найти информацию обо всех возможностях данного языка программирования, зато можно получить полезные советы и рекомендации для более эффективной работы с C++ от человека, который имеет бесценный опыт в программировании и огромный вес в сообществе программистов.

    Язык программирования C++. Лекции и упражнения

    Стивен Прата известен каждому программисту, знакомому с языком C++. Он стремился вложить свой преподавательский опыт в эту книгу. В результате получился монументальный труд, который дружественно относится к читателю и понятным языком поясняет фундаментальные основы данного языка программирования. Однозначно рекомендуется к прочтению.

    The Rook’s Guide to C++

    Данный учебник является трудом автора и его 25 студентов, большинство из которых — новички в C++. Большая часть книги была написана совместными усилиями примерно за 36 часов. Сам автор признается, что будь у него бесконечное количество времени, он бы отполировал книгу до блеска. Все это сделано с целью удешевления производства книги и, как следствие, выпуска ее в свободном доступе для всех желающих. В ней могут быть ошибки, но в целом в книге представлен достаточно неплохой материал по языку C++.

    Learn C++

    В нашу подборку книг затесался сайт. Вы думаете, это какая-то ошибка? Как бы не так! Он здесь совсем не случайно. Это онлайн-учебник по всему С++. Его несомненное преимущество в том, что каждая глава богато иллюстрирована кодом, так что материал будет легче усвоить. Все расписано достаточно подробно, но самое главное — материал постоянно дополняется в соответствии с новыми стандартами C++.

    Изучаем C++ через программирование игр

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

    Объектно-ориентированное программирование в С++

    Книга Роберта Лафоре из серии «Классика Computer Science». В ней очень грамотно и полно представлено понятие объектно-ориентированного программирования в C++. Кроме теории, книга предлагает читателю сделать около 100 различных упражнений, которые отточат навык владения основами ООП. Отлично подходит для начинающих программистов.

    Structured Programming with C++

    Книга, как понятно из названия, научит вас основам структурного программирования. В первую очередь, она стремится донести до читателя, что такое «думать как программист», а уже во вторую — обучить вас языку C++. Материал представлен в удобочитаемой форме. Как и во многих книгах, здесь есть материалы для самопроверки в каждой главе и ответы в конце книги. Автор подчеркивает, что книга фокусируется именно на решении типовых проблем и задач, возникающих при написании программы.

    Software Design Using C++

    Еще одна онлайн-книга, которая дает материал в соответствии с тремя курсами, которые обычно в американских университетах называются CS 1, CS 2 и «Структуры данных». Новичкам стоит начать именно с изучения материала для курса CS 1, поскольку в нем даются основы программирования на C++. Когда вы освоите данный курс, то можете перейти на следующую ступень и изучить CS 2, а затем уже и структуры данных. Кстати, советуем ознакомиться и с нашим материалом по структурам данных.

    Как программировать на C++

    Харви и Пол Дейтелы в своей книге решили отойти от привычного порядка введения в C++ и уже с третьей главы знакомят читателя с основами ООП, тем самым не освещая должным образом структурное и процедурное программирование. Большое внимание уделяется объектно-ориентированному проектированию программных систем с помощью графического языка UML2. Данный учебник является одним из самых популярных в мире по C++.

    Язык программирования С++. Cтандарт C++11. Краткий курс

    Книга представляет собой быстрый (примерно 180 страниц и 14 глав) обзор возможностей С++ и его стандартной библиотеки (стандарт С++11) на достаточно высоком уровне для программистов, которые уже знакомы с языком, или, по крайней мере, имеют значительный опыт в программировании. Эта книга — расширенная версия материала глав 2-5 из четвертого издания «Языка программирования С++».

    Язык программирования C++. Базовый курс

    Тысяча страниц очень подробного введения в C++, которое детально покрывает буквально все аспекты языка в доступном формате. С самого начала книги читателя знакомят со стандартной библиотекой C++, ее самыми популярными функциями и средствами, что позволяет в скором времени приступить к написанию программ, даже если не были изучены некоторые нюансы языка. Пятое издание (выпущено 16 августа 2012-ого) обновлено для С++11.

    How to Think Like a Computer Scientist

    Цели этой книги — научить вас использовать язык C++ и мыслить, как исследователь. Она делает акцент на использовании языка C++ как удобного инструмента для научных вычислений. Для знакомства с этой книгой желательна хотя бы математичекая подготовка. Вы научитесь четко формулировать проблему и затем представлять себе ее решение. И только после этого писать код и проводить тесты.

    An Introduction to GCC

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

    Эффективное программирование на C++. Практическое программирование на примерах

    Содержит в себе все то же самое, что и «Учебник для начинающих: С++», но короче в 4 раза. В основном это из-за того, что автор не пытается ввести читателя в программирование, а сразу учит С++ тех, кто пришел с других языков. Может быть немного сложна для понимания, но тем, кто сможет осилить курс, это еще и здорово сократит время изучения.

    Упражнения

    Раздел упражнений расположен на официальном сайте создателя языка, Бьерна Страуструпа. Его не стали выпускать в печатном виде, поскольку раздел постоянно обновляется. Документ содержит множество упражнений различных уровней. Данный показатель указывается рядом с номером упражнения. Например, уровень (*1) означает, что задачу вполне реально решить за 10 минут, (*2) — за час, а на (*3) вы можете потратить целый день. Конечно, эти показатели не точные и целиком зависят только от вашего опыта, так что дерзайте! Чем больше задач вы решите, как легких, так и сложных, тем больше вы освоите инструменты несомненно мощного языка C++.

    Open Data Structures

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

    Data Structures and Algorithm Analysis

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

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

    C / C++

    Русский

    Параллельное программирование на С++ в действии. Практика разработки многопоточных программ. Энтони Уильямс

    В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. .

      Программирование на С для начинающих. М. МакГрат

      С — это компактный компьютерный язык программирования общего назначения, созданный .

      Алгоритмы и программы. Язык С++. Е. Конова, Г. Поллак

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

      Expert C Programming: Deep Secrets. P. Linden

      C programming is a craft that takes years to perfect. .

      Программирование на С для начинающих. 3-е изд. Грег Перри, Дин Миллер

      Простое и понятное руководство по программированию на С поможет быстро .

      Программирование: учебное пособие. Л.А. Надейкина

      В Учебном пособии рассматривается на базе языка С++ одна из .

      Введение в язык Си++. А.В.Столяров

      Краткое (объём четвёртого издания — 136 страниц) введение в язык .

      Объектно-ориентированное программирование в С++. Р. Лафоре

      Основная задача этой книги — научить вас создавать программы на .

      Введение в C++. 4-ое издание. А. В. Столяров

      Краткое введение в язык Си++. Содержание построено по принципу плавного .

      Объектно-ориентированное программирование на C++. Пол Айра

      Если вы хотите писать качественные приложения, с хорошей архитектурой и .

      Язык программирования С. Брайан Керниган, Деннис Ритчи

      Книга по программированию от авторов языка C.
      В своё .

      Метапрограммирование шаблонов C++ в задачах математической физики. М.М. Краснов

      Рассматривается применение метапрограммирования шаблонов языка C++ для упрощения записи алгоритмов .

      English

      The C programming language. 2 ed. B. W. Kernighan, D. M. Ritchie

      The computing world has undergone a revolution since the publication .

      Test Driven Development for Embedded C. J. W. Grenning

      I was first exposed to Test-Driven Development at the first .

      C Programming in Linux. David Haskins

      So where do we start? A sensible place is “at .

      Structured Programming with C++. Kjell Bäckman

      The purpose of the course Structured Programming with C/C++ is .

      Understanding and Using C Pointers. R. M. Reese

      Numerous books have been written about C. They usually offer .

      Programming in C. S. G. Kochan

      The C programming langguage was pioneered by Dennis Ritchie at .

      API Design for C++. Martin Reddy

      API Design for C++ provides a comprehensive discussion of Application .

      The C++ Standard Library. Nicolai M. Josuttis

      The Best-Selling C++ Resource Now Updated for C++11
      The .

      C++ Templates. David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor

      Templates are among the most powerful features of C++, but .

      Effective Modern C++. Scott Meyers

      Topics include:
      The pros and cons of braced initialization, .

      Objective-C for Absolute Beginners. Gary Bennett, Brad Lees, Mitchell Fisher

      Learn Objective-C and its latest release, and learn how to .

      Optimized C++. Kurt Guntheroth

      This book is here to help you get your job .

      ProgBook — книги и учебники по программированию

      Книги по языкам программирования C и C++

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

      В книге «Параллельное программирование с использованием OpenMP» содержится только необходимая информация о параллельном программировании, которая направлена на создание производительных современных систем. Данная книга может использоваться в процессе подготовки специалистов в области программирования и информационных технологий. Автор книги М. П. Левин разработал собственную методику и изложил её в доступном виде для аспирантов и студентов высших учебных заведений аналогичного направления.

      Язык программирования C++. Лекции и упражнения — Стивен Прата

      Основной бедой значительной части программистов, называющих себя специалистами по Си++, является то, что на самом деле они пишут на классическом Си с небольшими элементами объектного программирования. При таком подходе вся потенциальная мощь этого языка остаётся совершенно невостребованной. Стивен Прата, один из трёх авторов учебника «Язык Си», признанного лучшим учебным пособием по этому языку, программист и преподаватель программирования, составил этот учебник так, чтобы помочь читателю избежать подобных ошибок.

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

      Так же, как и «Язык Си», новая книга Стивена Праты написана дружелюбным и понятным языком, не пугающим читателя и точно так же построена по схеме «небольшое лирическое отступление»-«теория вопроса»-«живой пример реализации»-«упражнение для самопроверки». Помимо объяснения собственно синтаксиса языка и его отличий от Си книга содержит сотни примеров программ, имеющих практическое применение, а также обучает использованию библиотеки шаблонов STL, наиболее полно использующей возможности Си++. Самоучитель по программированию «Язык программирования C++. Лекции и упражнения» Стивена Праты предназначен как студентам технических специальностей, обучающимся объектно-ориентированному программированию «с нуля», так и профессиональным программистам, желающим ознакомиться с новым ISO стандартом «Си++ 2011».

      Borland C++ Builder. Библиотека программиста — Мэтт Теллес

      Компанией Borland выпущен продукт Borland C++ Builder для быстрого создания приложений на C++. Эта интегрированная среда разработки сочетает в себе гибкость и мощность языка C++ с удобством Visual Basic. Данная книга – это отличная возможность освоить C++ Builder в полной мере за минимальное время. С изучением ее материалов результативность вашей работы существенно повысится.

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

      Узнаете об использовании элементов управления ActiveX и VCL. А сложные приложения на C++ станут намного проще с Borlnd C++ Builder. Книга «Borland C++ Builder. Библиотека программиста» поможет выйти на качественно новый уровень разработок приложений. Автор Мэтт Теллес.

      C++: базовый курс — Герберт Шилдт

      В первых главах даются базовые представления о структуре языка – рассматриваются типы данных, переменные, операторы, функции, объекты. За ними очерчиваются формы более сложных элементов объектно-ориентированного программирования — классов. В последующих частях книги объясняются механизмы обработки исключений, шаблоны, концепция пространства имен, способы реализации динамической идентификации типов, структура стандартной библиотеки шаблонов STL, приводится справочная информация по ключевым словам среды .NET.

      Герберт Шилдт, автор всемирно известных бестселлеров по программированию на Java, C, и C#, в своей книге «C++: базовый курс» дает исчерпывающую информацию по всем основным элементам программирования на C++, которая будет полезна и новичкам, и опытным программистам.

      Программирование шахмат и других логических игр — Евгений Корнилов

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

      К книге Евгения Корнилова «Программирование шахмат и других логических игр» прилагается компакт-диск с наиболее известными, свободными кодами шахматных программ и текстами программ самого автора.

      Особенности объектно-ориентированного программирования на C++/CLI, C# и Java — Медведев В. И.

      В книге описаны основы синтаксиса и методика разработки приложений на нескольких объектно-ориентированных языках программирования: C++/CLI, C# и Java (J#). Особенностью изложенного в книге материала является параллельное сравнивание на конкретных примерах схожих языковых конструкций. Добавочно каждая из программ для более наглядного понимания взаимосвязи между объектами поясняется UML диаграммами.

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

      Книга Медведева В. И. «Особенности объектно-ориентированного программирования на C++/CLI, C# и Java» будет полезна для изучения преподавателям и студентам профильных ВУЗов, а также профессионалам, имеющих опыт программирования на C++ и желающих освоить разработку на других языках.

      Visual C++ 2010. Полный курс — Айвор Хортон

      Этот учебник C++ может использоваться как преподавателями учебных заведений, так и для самостоятельного изучения языка программирования. Он разделён на несколько частей, посвящённых собственно основам языка и программирования в целом, особенностям среды Visual C++, процессу отладки кода, особенностям программирования под Windows. Каждый из рассматриваемых вопросов имеет практические приложения, часть из которых читателю предлагается выполнить самостоятельно. Во многом «Visual C++ 2010. Полный курс» Хортона напоминает классические университетские учебники, поэтому он хорошо подойдёт приверженцам системного усвоения знаний.

      Программирование для Windows 95. Том II — Ч. Петзолд

      В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.

      Программирование для Windows 95. Том I — Ч. Петзолд

      В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.

      Практикум по программированию на С++ — Е. Л. Романов

      «Практикум по программированию на С++» — это практический курс, направленный на обучение читателя программированию на C и C++. Практикум содержит почти 200 программных решений и 300 тестовых заданий по более чем 20 темам — от самых простейших вычислений, до обработки двоичных файлов. Отдельной главой в книге выделен материал, посвященный развитию у читателя навыков «чтения» и анализа готовых программных решений, увеличению «словарного запаса» программиста.

      «Практикум по программированию на С++», составленный Е.Л. Романовым, рекомендуется студентам, обучающимся на факультетах информатики, а также всем тем, кто желает самостоятельно изучать язык C и технологии программирования на этом языке. Также, книга будет полезна преподавателям — в практикуме содержатся лабораторные работы, а материал его вполне можно разбить на 2-3 семестра.

      Читать еще:  Структурное и модульное программирование
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector