Разное

Книги по программированию c для начинающих – ++ ( ++) , ,

C++ учебник для начинающих

Вступление. О книге и языке C++ 7
Собственно о книге 7
Язык программирования C++ 8
Среда разработки 9
Об авторе 9
Обратная связь 9
Файлы для скачивания 10
Благодарности 10

Глава 1. Простые программы 11
Первая программа 11
Знакомство с переменными 16
Знакомство с функциями 23
Знакомство с оператором цикла 26
Знакомство с условным оператором 30
Знакомство с массивами 32
Задачи для самостоятельного решения 34

Глава 2. Управляющие инструкции 37
Оператор цикла for 37
Оператор цикла do-while 43
Оператор выбора switch 45
Вложенные условные операторы 52
Вложенные операторы цикла 54
Цикл по коллекции 58
Генерирование и перехват исключений 61
Инструкция безусловного перехода 66
Задачи для самостоятельного решения 68

Глава 3. Указатели, массивы и ссылки 70
Знакомство с указателями 70
Массивы и указатели 73

Знакомство со ссылками 77
Динамическое выделение памяти 79
Особенности символьных массивов 83
Двумерные массивы 88
Массивы указателей 95
Задачи для самостоятельного решения 101

Глава 4. Функции 104
Объявление и описание функции 104
Перегрузка функций 109
Значения аргументов по умолчанию 113
Рекурсия 116
Механизмы передачи аргументов функциям 119
Передача указателя аргументом функции 123
Передача массива аргументом функции 125
Передача текста в функцию 132
Указатель как результат функции 135
Ссылка как результат функции 139
Динамический массив как результат функции 142
Указатель на функцию 148
Задачи для самостоятельного решения 154

Глава 5. Классы и объекты 158
Знакомство с классами и объектами 158
Открытые и закрытые члены класса 163
Перегрузка методов 166
Знакомство с конструкторами и деструкторами 172
Принципы перегрузки операторов 180

Знакомство с наследованием 191
Задачи для самостоятельного решения 198
Рекомендации для самостоятельной работы 200

Глава 6. Использование классов и объектов 201
Указатель на объект 201
Создание массива объектов 210
Массив как поле класса 214
Функторы и индексация объектов 219
Конструктор создания копии 223
Наследование и закрытые поля базового класса 228
Виртуальные методы и наследование 231
Множественное наследование 235
Доступ к объектам через переменную базового класса 238
Задачи для самостоятельного решения 242
Рекомендации для самостоятельной работы 243

Глава 7. Обобщенные функции и классы 244
Обобщенные функции 244
Обобщенная функция с несколькими параметрами 249
Перегрузка обобщенной функции 252
Явная специализация обобщенной функции 254
Обобщенные классы 256
Явная специализация обобщенного класса 260
Значения параметров по умолчанию 265
Наследование обобщенных классов 267

Целочисленные обобщенные параметры 273
Рекомендации для самостоятельной работы 284

Глава 8. Разные задачи 286
Знакомство со структурами 286
Обобщенные структуры 290
Работа с комплексными числами 292
Класс для реализации числовых массивов 296
Контейнер для динамического массива 307
Контейнерный класс для реализации множества 314
Ассоциативный контейнер 317
Обработка ошибок 321
Знакомство с многопоточным программированием 323
Рекомендации для самостоятельной работы 329

Глава 9. Математические задачи 330
Метод последовательных приближений 330
Метод половинного деления 334
Метод касательных 339
Интерполяционный полином Лагранжа 342
Интерполяционный полином Ньютона 346
Вычисление интеграла методом Симпсона 351
Вычисление интегралов методом Монте-Карло 353
Решение дифференциального уравнения методом Эйлера 356
Решение дифференциального уравнения методом Рунге — Кутты . 359

Заключительные замечания 362
Заключение. Полезные советы 363
Предметный указатель 364

www.htbook.ru

учебник и практический курс для начинающих:

практический курс

Что это такое?

В свое время (1991-1992 года), выбрав язык Си в качестве основного языка программирования для математических классов, автор столкнулся с проблемой отсутствия нормальных учебников, которые можно было бы рекомендовать школьникам. Это вынудило его написать свой конспект лекций, который можно было бы назвать «Практический курс программирования на Си» — в него вошли те сведения, которые действительно требовались автору на практике. Многолетний опыт преподавания показал, что конспект действительно востребован и широко используется как школьниками, так и выпускниками.

В качестве среды разработки используется бесплатно распространяемая оболочка Dev-C++ с открытым исходным кодом, включающая компилятор GCC.

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

Лицензионное соглашение

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

Без письменного согласия автора ЗАПРЕЩАЕТСЯ:
  1. 1) публикация материалов в любой форме, в том числе размещение материалов на других Web-сайтах;
  2. 2) распространение неполных или измененных материалов;
  3. 3) включение материалов в сборники на любых носителях информации;
  4. 4) получение коммерческой выгоды от продажи или другого использования материалов.

Скачивание материалов означает, что вы приняли условия этого лицензионного соглашения.

Скачать

Конспект распространяется свободно в формате PDF. Для просмотра требуется бесплатный просмотрщик Acrobat Reader. Конспект курса условно разбит на 4 части:

  1. Введение в программирование на языке Си (860 Кб) 29.03.2014
    Изучение основных конструкций языка и приемов написания программ.
  2. Xранение и обработка данных (792 Кб) 21.11.2013
    Язык Си: массивы, матрицы, структуры, символьные строки, структуры, рекурсия.
  3. Разработка программ на языке Си (937 Кб) 01.03.2014
    Приемы проектирования программ, структурное программирование, целочисленные алгоритмы, численные методы, моделирование.
  4. Динамические структуры данных в языке Си (666 Кб) 11.06.2009
    Списки, стеки, деревья, графы.

Презентации

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

Методика

В программе предусмотрено изучение языка Си в 7-11 классах:

7 класс

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

Основная задача — познакомить учащихся с основными конструкциями языка Си: циклами, условными операторами, процедурами. Весьма успешно проходит изучение разделов, связанных с графикой, анимацией.

8 класс

Программа включает следующие разделы (в скобках указана часть конспекта): Массивы (II), Работа с файлами (II), Символьные строки (II), Вращение объектов (III), Моделирование (III)

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

9 класс

Основное внимание уделяется изучению методов разработки программ на языке Си. Учащиеся выполняют индивидуальное задание, в ходе которого учатся строить графики на экране, знакомятся с преобразованиями систем координат, изучают методы решения уравнений, знакомятся с численными методами, учатся правильно оформлять программы (разделы 1-2 части III). Одно из заданий посвящено использованию метода Монте-Карло для вычисления площади сложной фигуры. Из новых разделов изучаются также Матрицы (II), Массивы символьных строк (II). Вводится понятие указателей и изучаются простейшие операции с ними.

10 класс

Изучения языка Си

выходит на более серьезный уровень. Основные темы — Управление памятью (II), Рекурсия (II), Структуры (II). Предусмотрено изучение языка Паскаль в качестве второго языка программирования. С этого момента алгоритмы на теоретических занятиях записываются поочередно на двух языках.

11 класс

Изучаются не столько особенности языков, сколько алгоритмы. Основные разделы — Численные методы (III), Моделирование (III), Динамические структуры данных (IV).

www.kpolyakov.spb.ru

Пять книг по программированию, которые стоит прочесть / Plarium corporate blog / Habr

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

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


Направление: Программирование как профессия


Книга: Э. Хант, Д. Томас. «Программист-прагматик. Путь от подмастерья к мастеру»

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

Языки и технологии изменчивы. Но главное – это не инструмент, а умение с его помощью решать поставленные задачи. Именно это определяет, насколько вы хороший разработчик.

Направление: Архитектура


Книга: Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес. «Приемы объектно-ориентированного проектирования. Паттерны проектирования»

Удивительно полезная книга знаменитой «банды четырех» (Gang of Four). Отличный пример структурированного и продуманного изложения. По сути, книга заложила терминологию, которой пользуются практически все программисты, обсуждая то или иное архитектурное решение.

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

Направление: Языки программирования


Книга: Б. Керниган, Д. Ритчи. «Язык программирования C»

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

Направление: Технологии


Книга: Дж. Рихтер. «CLR via C#»

Практически идеальный учебник по .NET.

Джеффри Рихтер подробно рассказывает о языке C#, а также об устройстве и фундаментальных принципах функционирования .NET-платформы. Традиционный вопрос на наших собеседованиях: «Вы читали Рихтера? Сколько раз?». Вопрос звучит неизменно многие годы, лишь книги меняются. Раньше была «Windows via C/C++», теперь – эта. У Джеффри настоящий талант открывать двери для новичков, создавать правильный и достаточно глубокий фундамент для дальнейшего развития. Эта книга не единственная, но, если вы начинаете знакомство с технологией .NET, начните с нее. Вы не пожалеете!

Направление: Области разработки и другие направления


Книга: Э. Таненбаум, М. ван Стеен. «Распределенные системы. Принципы и парадигмы»

Возможно, это не самая яркая работа Таненбаума (вспомнить хотя бы его «Операционные системы. Разработка и реализация» или спор с Линусом Торвальдсом), но достойная книга для прочтения.

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

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

Приятного чтения!

habr.com

С чего начать изучение C++

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

2002 год

1.8 МБ

0.0

скачиваний: 3034

Электронная книга известного эксперта по языку C++ Стенли Липпмана написана в соавторстве с Жози Лажойе, принимавшем активное участие в разработке международного стандарта C++. Несмотря на подзаголовок «Вводный курс» настоящее издание является исчерпывающим руководством для изучения соврем…

2001 год

5.41 МБ

0.0

скачиваний: 3069

Эта книга, в первую очередь, предназначена для тех, кому хотелось бы быстро научиться писать настоящие программы на языке C++. Зачастую новички в C++ пытаются освоить язык чисто механически, даже не попытавшись узнать, как можно эффективно применить его к решению каждодневных проблем. Цель данной кн…

2002 год

4.47 МБ

0.0

скачиваний: 2517

В этой книге описаны все основные средства языка C++ — от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм об…

2010 год

10.54 МБ

9.6

скачиваний: 13810

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

2005 год

3.83 МБ

0.0

скачиваний: 1916

Книга является одним из самых популярных в мире учебников по C++. Характерной ее особенностью является «раннее введение» в классы и объекты, т. е. начала объектно-ориентированного программирования вводятся уже в 3-й главе, без предварительного изложения унаследованных от языка C элементов …

2008 год

18.49 МБ

9.2

скачиваний: 13184

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

2002 год

10.7 МБ

0.0

скачиваний: 2451

Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования (ООП) в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным у…

2004 год

47.88 МБ

8.4

скачиваний: 8645

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

2004 год

4.81 МБ

8.9

скачиваний: 2537

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

2005 год

45.5 МБ

0.0

скачиваний: 1646

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

2013 год

24.2 МБ

0.0

скачиваний: 3286

mexalib.com

Какие книги читать начинающему программисту?

21 Авг. 2016, Книги, 14449 просмотров

У меня есть книга, которую я уже пытаюсь раза с третьего осилить, но всё никак не дойду до последней страницы. Называется она «Человеческий фактор. Успешные проекты и компании«, в простонародье «Peopleware» и является хрестоматией по разработке программного обеспечения наряду с классическим трудом под названием «Мифический человеко-месяц» от Фредерика Брукса. Так вот, там есть интересное выражение, которое гласит следующее:

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

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

Софтостроение специфическая отрасль, где специалисту необходимо обладать рядом навыков и знаний. Возьмём самый простой пример: веб-разработка. Современному веб-разработчику нужно иметь представление о множестве тем: веб-программирование, веб-дизайн, основы безопасности веб-приложений, навыки системного администрирования (чаще всего unix-подобных систем), навыки работы с СУБД, паттерны проектирования веб-приложений, хотя бы поверхностно понимать методологии разработки ПО, их плюсы и минусы, не говоря уже о множестве инструментов, используемых ежедневно (VCS, IDE, ОС, пакетные менеджеры и так далее). Веб-разработчик, не знающий основ безопасности веб-приложений, может ненамеренно оставить серьёзную брешь в системе, которая в будущем обернётся серьёзными финансовыми потерями, а может и вовсе иметь катастрофические последствия. Порой «гугля» очередное решение проблемы, мы не задумываясь копируем код или используем сомнительную библиотеку, даже не заглянув внутрь. Главное работает 🙂 А ведь за всем этим могут скрываться серьёзные проблемы…

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

Список книг:

  • Программист-прагматик. Путь от подмастерья к мастеру
  • Чистый код
  • Джоэл о программировании (Joel on Software)
  • Джоэл. И снова о программировании (More Joel on Software)
  • Программист-фанатик (Passionate Programmer)
  • Человеческий фактор. Успешные проекты и команды (Peopleware)
  • Язык программирования C
  • Код. Тайный язык информатики

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

Программист-прагматик

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

Чистый код

Книга «Чистый код» это своего рода облегченная версия книги «Совершенный код». Последнюю читать куда тяжелее. Одна из основных проблем начинающих программистов это их код. Его невозможно читать 🙂 Он плохо структурирован, перегружен, а переменные и функции чаще всего имеют непонятные названия. Как придать человеческий вид вашему коду и повествует эта книга. Автором является известный «дядюшка Боб», личность категоричная, поэтому читать книгу советую со здравой долей скептицизма и не принимать каждое слово на веру. Но категоричность автора нисколько не уменьшает пользу от книги.

Джоэл о программировании

Если вы ни разу не слышали о Джоэле Спольски, то стоит задуматься, а тем ли делом вы занимаетесь 🙂 Мистер Спольски автор популярного блога «Joel on Software», а также… один из создателей StackOverflow 🙂 Книга является сборником эссе, опубликованных на личном блоге автора. В ней собраны самые популярные темы о программировании. Вот лишь малая часть из них:

  • Какой язык программирования стоит изучать первым
  • Что необходимо знать про UTF-8
  • Зачем программисту понимать алгоритмы и структуры данных
  • Как проводить собеседование с кандидатами на работу

Продолжением «Джоэл о программировании» является «Джоэл. И снова о программировании». Однозначный must read!

P.S. Перевод его блога (к сожалению, не все статьи) на русский язык можно посмотреть тут.

Программист-фанатик

Эта книга была переведена на русский язык совсем недавно, но существует по технологичным меркам давно (~2009 год). Написана программистом для программистов и затрагивает щепетильные для разработчиков темы:

  • Кто такой настоящий программист
  • Что необходимо знать программисту, чтобы всегда быть «на плаву»
  • Почему не стоит бояться конкуренции со стороны программистов-индусов 🙂
  • Как «не перегореть» на работе

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

Человеческий фактор

Эту книгу я рекомендовал на прошедшем Python митапе в Алматы в прошлом году. Она из тех книг, которые перечитывая — узнаёшь новое. С опытом начинаешь по-другому смотреть на, может быть, привычные для себя вещи. «Человеческий фактор» основан на эмпирических исследованиях, проводимых авторами. Цель заключалась в том, чтобы понять почему одни проекты (как и люди) успешны, а другие нет, само собой в нашем с вами общем деле. Читать в первую очередь рекомендую руководителям и менеджерам в сфере IT, разработчикам она тоже будет очень полезна.

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

Свой путь в мир программирования я, можно сказать, начинал с этого легендарного языка. Си является родителем для многих современных высокоуровневых языков, например того же Python. На нём написано множество софта, начиная от встроенного (привет прошивкам микроконтроллеров) заканчивая сложными вычислительными системами, работающими на Земле и в Космосе (ядро Linux, современный Интернет, ПО в медицине и военной промышленности и многое-многое другое). В рейтинге самых популярных языков он до сих пор занимает лидирующие позиции. Книга «Язык программирования C» является бессмертной классикой, а среди её авторов есть создатель Unix (Dennis Ritchie). Прелесть Си в том, что программист полностью контролирует ход выполнения программы: ручной доступ к памяти и работа с указателями, строгая типизация, контроль за размером входных данных и многое другое. За счёт низкого уровня при работе с «железом» компьютера, а следовательно отсутствия дополнительных абстракций (в простонародье «свистелок и перделок»), код выполняется очень быстро. Но за скорость нужно платить. В неумелых руках системы, написанные на Си, подвержены известным уязвимостям: переполнение стэка, переполнение кучи, ошибки форматирования строки и многие другие. Изучив Си, вы начнёте лучше понимать как работает компьютер, а следовательно станете лучшим программистом.

Код. Тайный язык информатики

Почему люди используют десятичную систему исчисления? Как работают триггеры и почему транзистор совершил революцию? В конце концов, как работает современный компьютер? Ответы на все эти вопросы вы найдёте в книге Чарльза Петцгольда «Код. Тайный язык информатики». Текст книги написан в увлекательной манере, с юмором и точно не заставит своего читателя скучать. Но материал по мере чтения становится всё сложнее и сложнее 🙂

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

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

khashtamov.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *