Цель заброшена
Автор не отписывался в цели 7 лет 8 месяцев 30 дней
Изучить книгу Объектно-ориентированное программирование в С++ Р. Лафоре
Здравствую друже!
Уже как 3-4 года пытаюсь научиться программировать. В начале было html, css, javascrip, php. Думал освою и буду фрилансить, купаться в деньгах и иметь кучу свободного времени. Собрал на 1 год средств, по моим подсчетам должно было хватить и ушел с работы. Дабы постичь все премудрости веб, и взобраться на Олимп к богам веб технологий.
После прочтения несколько десятков книг, с мыслью что мои знания и умения пригодятся и будут востребованы я вошел на несколько площадок для фриланса и начал свой путь к богатству и независимости... В итоге день и ночь на фрилансе, покупка про аккаунтов, кидалы заказчики и тд и тп. Доход не большой, но был (соответствующий моему уровню на фоне остальных гуру кодеров, с огромными портфолио), время шло. Расходы превышали доходы... "Пацан к успеху шел, не получилось, не фартануло"
Пришлось кинуть это все дело и вернуться на землю с мыслью что веб не мое. После про бывал Java, C, Python. Но по этим языкам не осилил даже и половины книги... Возможно из-за лени или из-за страха повторить провал с веб не помню уже да и не суть...
В апреле этого года я решил вернуться к кодингу, но только в роли С++ девелопера. Почему С++? Наверно потому что где то слышал , что с++ один из сложных и заковыристых языков и я решил побороться с ним, а может потому что в нашем книжном была только книга Лафоре : ) ... Где то к июню я остыл, а в августе понял что покрылся толстым слоем инея, а книжка толстым слоем пыли. Вообщем опять не осилил...
Так вот. Настало время продолжить!
Зачем? Кто то говорит душа лежит к коду, кто то жить не может без технологий, а я же по простой и банальной причине. Деньги. Как известно программисты зарабатываю не плохо... Возможно ты захочешь поспорить, и сказать что junior имеет 300$ - 700$, а это не так уж и много... Я соглашусь с тобой, но прежде попрошу взглянуть на это моими глазами. Мне 24 и работа моя связана с физическим трудом, уровень дохода составляет около 300$ потолок 450$, нет никакого личного развития. Жизнь на паузе, от смены до смены... А время то идет, и совсем не хочется в 30 оставаться на том же уровне...
**********************************************************************************************
Буду рад помощи в нелегком деле, возможно кто то так же как и я осваивает эту книгу. Давай те дружить и углубляться в с++ вместе. Попробуем вместе написать программку, будем делиться актуальной информацией, мыслями и мотивировать друг друга на следующий шаг.
Критерий завершения
Выполнены все упражнения
Личные ресурсы
Время, Книга Р. Лафоре
Экологичность цели
Работа Junior C++ Developer
-
Вспомнить и повторить пройденый материал
ВступлениеГлава 1. Общие сведенияГлава 2. Основы программирования на C++Глава 3. Циклы и ветвленияГлава 4. СтруктурыГлава 5. Функции
-
Глава 6. Объекты и классы
Простой классКлассы и объектыОпределение классаИспользование классаВызов методов классаОбъекты программы и объекты реального мираДетали изделия в качестве объектовКруги в качестве объектовКласс как тип данныхКонструкторыПример со счетчикомГрафический примерОбъекты в качестве аргументов функцийОбъекты в качестве аргументовКонструктор копирования по умолчаниюОбъекты, возвращаемые функциейАргументы и объектыПример карточной игрыСтруктуры и классыКлассы, объекты и памятьСтатические данные классаПрименение статических полей классаПример использования статических полей классаРаздельное объявление и определение полей классасonst и классыКонстантные методыКонстантные объектыЗачем нужны классы?РезюмеВопросыУпражнения
-
Глава 5. Функции
Простые функцииОбъявление функцииВызов функцииОпределение функцииОбычные и библиотечные функцииОтсутствие объявленияПередача аргументов в функциюПередача констант в функциюПередача значений переменных в функциюПередача аргументов по значениюСтруктурные переменные в качестве аргументовИмена переменных внутри прототипа функцииЗначение, возвращаемое функциейОператор returnИсключение ненужных переменныхСтруктурная переменная в качестве возвращаемого значенияСсылки на аргументыПередача по ссылке аргументов стандартных типовУсложненный вариант передачи по ссылкеПередача структурных переменных по ссылкеЗамечание о ссылкахПерегруженные функцииПеременное число аргументов функцииРазличные типы аргументовРекурсияВстраиваемые функцииАргументы по умолчаниюОбласть видимости и класс памятиЛокальные переменныеГлобальные переменныеСтатические локальные переменныеВозвращение значения по ссылкеВызов функции в качестве левого операнда операции присваиванияЗачем нужно возвращение по ссылке?Константные аргументы функцииРезюмеВопросы
Упражнения -
Глава 7. Массивы и строки
Основы массивовОпределение массивовЭлементы массиваДоступ к элементам массиваСреднее арифметическое элементов массиваИнициализация массиваМногомерные массивы
Передача массивов в функцииМассивы структурМассивы как члены классовМассивы объектовМассивы интерваловГраницы массиваДоступ к объектам в массивеМассивы картСтрокиСтроковые переменныеСчитывание нескольких строкКопирование строкКопирование строк более простым способомМассивы строкСтроки как члены классовОпределенные пользователем типы строкСтандартный класс string языка C++Определение объектов класса string и присваивание им значенийВвод/вывод для объектов класса stringПоиск объектов класса stringМодификация объектов класса stringСравнение объектов класса stringДоступ к символам в объектах класса stringДругие методы класса stringРезюмеВопросыУпражнения
-
Глава 8. Перегрузка операций
Перегрузка унарных операцийКлючевое слово operatorАргументы операцииЗначения, возвращаемые операциейВременные безымянные объектыПостфиксные операцииПерегрузка бинарных операцийАрифметические операцииОбъединение строкМножественная перегрузкаОперации сравненияОперации арифметического присваиванияОперация индексации массива ([])Преобразование типовПреобразования основных типов в основные типыПреобразования объектов в основные типы и наоборотПреобразования строк в объекты класса string и наоборотПреобразования объектов классов в объекты других классовПреобразования: когда что использоватьДиаграммы классов UMLОбъединенияНаправленность`Подводные камни` перегрузки операций и преобразования типовИспользование похожих значенийИспользование похожего синтаксисаПоказывайте ограничениеИзбегайте неопределенностиНе все операции могут быть перегруженыКлючевые слова explicit и mutableПредотвращение преобразования типов с помощью explicitИзменение данных объекта, объявленных как const, используя ключевое слово mutableРезюме- Вопросы
- Упражнения
-
Глава 9. Наследование
- Базовый и производный классы
- Определение производного класса
- Обобщение в диаграммах классов в UML
- Доступ к базовому классу
- Результат программы COUNTEN
- Спецификатор доступа protected
- Недостатки использования спецификатора protected
- Неизменность базового класса
- Разнообразие терминов
- Конструкторы производного класса
- Перегрузка функций
- Какой из методов использовать?
- Операция разрешения и перегрузка функций
- Наследование в классе Distance
- Применение программы ENGLEN
- Конструкторы класса DistSign
- Методы класса DistSign
- В поддержку наследования
- Иерархия классов
- Абстрактный базовый класс
- Конструкторы и функции
- Наследование и графика
- Общее и частное наследование
- Комбинации доступа
- Выбор спецификатора доступа
- Уровни наследования
- Множественное наследование
- Методы классов и множественное наследование
- Частное наследование в программе EMPMULT
- Конструкторы при множественном наследовании
- Конструкторы без аргументов
- Конструктор со многими аргументами
- Неопределенность при множественном наследовании
- Включение: классы в классах
- Включение в программе EMPCONT
- Композиция: сложное включение
- Роль наследования при разработке программ
- Резюме
- Вопросы
- Упражнения
-
Глава 10. Указатели
- Адреса и указатели
- Операция получения адреса &
- Переменные указатели
- Недостатки синтаксиса
- Указатели должны иметь значение
- Доступ к переменной по указателю
- Указатель на void
- Указатели и массивы
- Указатели-константы и указатели-переменные
- Указатели и функции
- Передача простой переменной
- Передача массивов
- Сортировка элементов массива
- Расстановка с использованием указателей
- Сортировка методом пузырька
- Указатели на строки
- Указатели на строковые константы
- Строки как аргументы функций
- Копирование строк с использованием указателей
- Библиотека строковых функций
- Модификатор const и указатели
- Массивы указателей на строки
- Управление памятью: операции new и delete
- Операция new
- Операция delete
- Класс String с использованием операции new
- Указатели на объекты
- Ссылки на члены класса
- Другое применение операции new
- Массив указателей на объекты
- Действия программы
- Доступ к методам класса
- Связный список
- Цепочка указателей
- Добавление новых элементов в список
- Получение содержимого списка
- Классы, содержащие сами себя
- Пополнение примера LINKLIST
- Указатели на указатели
- Сортируем указатели
- Тип данных person**
- Сравнение строк
- Пример разбора строки
- Разбор арифметических выражений
- Программа PARSE
- Симулятор: лошадиные скачки
- Разработка лошадиных скачек
- Моделирование хода времени
- Уничтожение массива указателей на объекты
- Функция putch()
- Диаграммы UML
- Диаграмма состояний в UML
- Состояния
- Переходы
- От состояния к состоянию
- Отладка указателей
- Резюме
- Вопросы
- Упражнения
-
Глава 11. Виртуальные функции
- Виртуальные функции
- Доступ к обычным методам через указатели
- Пегрузка оператора присваивания
- Конструктор копирования
- Объектные диаграммы UML
- Эффективное использование памяти классом String
- Указатель this
- Доступ к компонентным данным через указатель this
- Использование this для возврата значений
- Исправленная программа STRIMEM
- Динамическая информация о типах
- Проверка типа класса с помощью dynamic_cast
- Изменение типов указателей с помощью dynamic_cast
- Оператор typeid
- Резюме
- Вопросы
- Упражнения
-
Глава 12. Потоки и файлы
- Потоковые классы
- Преимущества потоков
- Иерархия потоковых классов
- Класс ios
- Класс istream
- Класс ostream
- Классы iostream и _withassign
- Предопределенные потоковые объекты
- Ошибки потоков
- Биты статуса ошибки
- Ввод чисел
- Переизбыток символов
- Ввод при отсутствии данных
- Ввод строк и символов
- Отладка примера с английскими расстояниями
- Потоковый ввод/вывод дисковых файлов
- Форматированный файловый ввод/вывод
- Строки с пробелами
- Ввод/вывод символов
- Двоичный ввод/вывод
- Оператор reinterpret_cast
- Закрытие файлов
- Объектный ввод/вывод
- Совместимость структур данных
- Ввод/вывод множества объектов
- Биты режимов
- Указатели файлов
- Вычисление позиции
- Вычисление сдвига
- Функция tellg()
- Обработка ошибок файлового ввода/вывода
- Реагирование на ошибки
- Анализ ошибок
- Файловый ввод/вывод с помощью методов
- Как объекты записывают и читают сами себя
- Как классы записывают и читают сами себя
- Код типа объекта
- Перегрузка операторов извлечения и вставки
- Перегрузка cout и cin
- Перегрузка << и >> для файлов
- Память как поток
- Аргументы командной строки
- Вывод на печатающее устройство
- Резюме
- Вопросы
- Упражнения
-
Глава 13. Многофайловые программы
- Причины использования многофайловых программ
- Библиотеки классов
- Организация и концептуализация
- Создание многофайловой программы
- Заголовочные файлы
- Директории
- Проекты
- Межфайловое взаимодействие
- Взаимодействие исходных файлов
- Заголовочные файлы
- Пространства имен
- Класс сверхбольших чисел
- Числа как строки
- Описатель класса
- Методы
- Прикладная программа
- Моделирование высотного лифта
- Работа программы ELEV
- Проектирование системы
- Листинг программы ELEV
- Диаграмма состояний для программы ELEV
- Резюме
- Вопросы
- Проекты
-
Глава 14. Шаблоны и исключения
- Шаблоны функций
- Шаблон простой функции
- Шаблоны функций с несколькими аргументами
- Шаблоны классов
- Контекстозависимое имя класса
- Создание класса связных списков с помощью шаблонов
- Хранение пользовательских типов
- UML и шаблоны
- Исключения
- Для чего нужны исключения
- Синтаксис исключений
- Простой пример исключения
- Многократные исключения
- Исключения и класс Distance
- Исключения с аргументами
- Класс bad_alloc
- Размышления об исключениях
- Резюме
- Вопросы
- Упражнения
-
Глава 15. Стандартная библиотека шаблонов (STL)
- Введение в STL
- Контейнеры
- Алгоритмы
- Итераторы
- Возможные проблемы с STL
- Алгоритмы
- Алгоритм find ()
- Алгоритм count ()
- Алгоритм sort()
- Алгоритм search()
- Алгоритм merge()
- Функциональные объекты
- Пользовательские функции вместо функциональных объектов
- Добавление _if к аргументам
- Алгоритм for_each ()
- Алгоритм transform()
- Последовательные контейнеры
- Векторы
- Списки
- Итераторы
- Итераторы как интеллектуальные указатели
- Итераторы в качестве интерфейса
- Соответствие алгоритмов контейнерам
- Работа с итераторами
- Специализированные итераторы
- Адаптеры итераторов
- Потоковые итераторы
- Ассоциативные контейнеры
- Множества и мультимножества
- Отображения и мультиотображения
- Ассоциативный массив
- Хранение пользовательских объектов
- Множество объектов person
- Список объектов класса person
- Функциональные объекты
- Предопределенные функциональные объекты
- Создание собственных функциональных объектов
- Функциональные объекты и поведение контейнеров
- Резюме
- Вопросы
- Упражнения
-
Глава 16. Разработка объектно-ориентированного ПО
- Эволюция процесса создания программного обеспечения
- Процесс просиживания штанов
- Каскадный процесс
- Объектно-ориентированное программирование
- Современные подходы
- Моделирование вариантов использования
- Действующие субъекты
- Варианты использования
- Сценарии
- Диаграммы вариантов использования
- Описания вариантов использования
- От вариантов использования к классам
- Предметная область программирования
- Рукописные формы
- Допущения
- Программа LANDLORD: стадия развития
- Действующие субъекты
- Варианты использования
- Описание вариантов использования
- Сценарии
- Диаграммы действий UML
- От вариантов использования к классам
- Список существительных
- Уточнение списка
- Определение атрибутов
- От глаголов к сообщениям
- Диаграмма классов
- Диаграммы последовательностей
- Написание кода
- Заголовочный файл
- Исходные .cpp файлы
- Вынужденные упрощения
- Взаимодействие с программой
- Заключение
- Резюме
- Вопросы
- Проекты
- 2033
- 13 декабря 2016, 12:25
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением