Форум программистов, компьютерный форум CyberForum.ru

Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно - C++

Восстановить пароль Регистрация
 
 
RareScrap
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 84
13.07.2015, 17:58     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #1
Я изучаю C++ уже больше года, но чувствую, что до сил пор не умею им пользоваться. Большая часть сил тратится на такие тривиальный задачи, как создание функций работы с файлами (возвратить N-ную строку из файла, определить количество строк в файле, удалять из строк недопустимые символы). Это очень скучно, а еще и в конечном итоге получается что-то очень баганное и неопрятное. А это заставляет затратить еще какое-то время и силы на приведение кода в порядок. В стандартной библиотеке не могу найти нужных мне элементарных функций, поэтому делаю их сам. Это так скучно и нудно.

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

Скажите, как можно исправить эту проблему? К какой литературе обратиться? Что я делаю не так вообще в процессе программирования? Как можно исключить или хотя бы упростить рутинные задачи?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
13.07.2015, 18:01     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #2
Скотт Мейерс - "эффективное использование c++"
Vite
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 65
13.07.2015, 18:27     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #3
Технические основы прикладного программирования
Лекции читает: Тормасов Александр Геннадьевич

Лекция 1: Обзор задач
Лекция 2: История создания программ
Лекция 3: Оформление текста программ и основные структуры
Лекция 4: Структура данных
Лекция 5: Параллельное программирование и безопасность программного обеспечения
Лекция 6: Техника кодирования и основы криптографии
Лекция 7: Моделирование угроз. Эволюция аппаратного обеспечения
Лекция 8: Параллельное программирование
Лекция 9: Технические аспекты написания параллельных программ
Лекция 10: Объектно ориентированное программирование
Лекция 11: Техническая реализация ООП в языке программирования С++
Лекция 12: Поддержка ООП в различных системах и средах. Технологии виртуализации
Лекция 13: Технология аппаратной виртуализации и виртуальные машины
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
13.07.2015, 18:27     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #4
Цитата Сообщение от RareScrap Посмотреть сообщение
Я изучаю C++ уже больше года, но чувствую, что до сил пор не умею им пользоваться.
Это нормально
Цитата Сообщение от RareScrap Посмотреть сообщение
Большая часть сил тратится на такие тривиальный задачи, как создание функций работы с файлами (возвратить N-ную строку из файла, определить количество строк в файле, удалять из строк недопустимые символы).
Прорешивать такие задачи тоже полезно, дабы закрепить понимание каких-то языковых конструкций или функций из библиотеки. Но если чувствуете, что такие задачки даются легко, то переходите к более сложным. Всегда надо выше планку поднимать, иначе прогресса не будет
Начните изучать STL, почитайте книжки по алгоритмам и структурам данных, их реализовывайте. Решать задачки на этом форуме тоже неплохой вариант. Потихоньку на библиотеку boost можно посматривать. Интереса ради поработать с sfml, curl, например
Что в плане литературы, то хорошая литература здесь:
Литература C++
Не знаю, как программировать эффективно
Скилл прокачивается этот практикой регулярной...ну и естественно чтением литературы и чтением этого форума
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
13.07.2015, 19:11     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #5
Цитата Сообщение от RareScrap Посмотреть сообщение
а еще и в конечном итоге получается что-то очень баганное и неопрятное.
Цитата Сообщение от Raali Посмотреть сообщение
Скотт Мейерс - "эффективное использование c++"
  • Герб Саттер "Решение сложных задач на C++"
  • Дьюхерст "Скользкие места С++"

Добавлено через 2 минуты
Цитата Сообщение от RareScrap Посмотреть сообщение
Как можно исключить или хотя бы упростить рутинные задачи?
Начать думать?
Желательно шире и быстрее...

Добавлено через 3 минуты
Цитата Сообщение от RareScrap Посмотреть сообщение
В стандартной библиотеке не могу найти нужных мне элементарных функций, поэтому делаю их сам. Это так скучно и нудно.
Скучно ждать что кто-то сделает за тебя твою задачу.
Как минимум стоит по интересоваться что предлагают популярные библиотеки Qt, boost ...
Для С++ привычным образом является использовать сторонние библиотеки (под задачу).

Что касается STL она больше рассчитана наверное именно на построение собственных классов т.е как "кирпичи".

Добавлено через 5 минут
Цитата Сообщение от RareScrap Посмотреть сообщение
Большая часть сил тратится на такие тривиальный задачи, как создание функций работы с файлами (возвратить N-ную строку из файла, определить количество строк в файле, удалять из строк недопустимые символы).
Все это решается с помощью STL на раз-два:
  • Джосаттис Н. "Стандартная библиотека C++ справочное руководство", 2-е изд. - 2014
Есть еще такая книжка:
  • Диггинс К. "C++ сборник рецептов" - 2007
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,888
Записей в блоге: 1
Завершенные тесты: 1
13.07.2015, 20:42     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #6
Я бы советовал сперва постичь азы, т.е. изучить литературу по чистому Си, чтобы понять, откуда ноги у Си++ растут. Познакомишься с директивами препроцессора, макросами, битовыми операциями, библиотечными функциями. Тогда только и нужно переходить к Си++, я считаю.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
13.07.2015, 20:42     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #7
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
т.е. изучить литературу по чистому Си
Абсолютно не обязательно, а главное вермязатратно.
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,888
Записей в блоге: 1
Завершенные тесты: 1
13.07.2015, 20:43     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #8
Avazart, зато фундаментально) и мозги вправит
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
13.07.2015, 20:45     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #9
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Avazart, зато фундаментально) и мозги вправит
Фундаментально глупо? Мозги скорее засрет.
Нет смысла тратить время на язык на котором не собираешься писать.
Ferrari F1
Заблокирован
295 / 281 / 61
Регистрация: 27.01.2015
Сообщений: 1,888
Записей в блоге: 1
Завершенные тесты: 1
13.07.2015, 20:49     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #10
Avazart, зря ты так) ибо новички начавши писать сразу без глубоких знаний синтаксиса и лексики си подобных языков допускают всякие глупые ошибки типа
C++
1
2
char* x = "something";
x[2] = 'd';
А все эти тонкости хорошо объясняются в книжках по чистым сям.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
13.07.2015, 20:53     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #11
Все это есть и в книгах по С++.
Но само использование таково в С++, не приветствуется ибо есть std::string
Renji
1533 / 981 / 239
Регистрация: 05.06.2014
Сообщений: 2,951
13.07.2015, 21:00     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #12
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Avazart, зря ты так) ибо новички начавши писать сразу без глубоких знаний синтаксиса и лексики си подобных языков допускают всякие глупые ошибки типа
Во-первых, новичок использующий char* x = "something"; учил не плюсы, а чистый Си. В плюсах используют string, но преподавателям "плюсов" рассказать об этом забыли.
Во-вторых, современные компиляторы это вообще скушают? "something" же const char*, а возможность перекастовать его к char* - темное наследие Си.
DrOffset
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,585
13.07.2015, 21:01     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #13
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
char* x = "something";
В С++-то такое вообще нелегально. Просто существует поблажка от некоторых компиляторов, которая такое допускает. Но предупреждение-то все равно будет.
C++
1
2
char const * x = "something";
x[2] = 'd'; // Oops! Compiler error
ampermetr
16 / 16 / 8
Регистрация: 01.05.2015
Сообщений: 145
13.07.2015, 23:41     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #14
RareScrap, у меня основная проблема в том, что задачи, которые я нахожу для решения или слишком простые, или слишком сложные))
Хорошо понимаю каждую функцию в отдельности, но простейшее их сочетание вызывает полнейший setup (дословно, без транскрипции).
А вообще, для тренировки я беру простейшие линуксовые программы и пихаю в них свои функции. Бесполезные. Главное чтоб эти функции работали и хоть что-то делали.
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
14.07.2015, 00:23     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #15
Цитата Сообщение от ampermetr Посмотреть сообщение
Главное чтоб эти функции работали и хоть что-то делали.
Бардак в голове- и бордак будет в вашей программе.
Как раз полезно не только писать ф-ции, не только писать что бы они работали, а еще и правильно организовывать( т.е так что бы было понятно постороннему человеку)
ampermetr
16 / 16 / 8
Регистрация: 01.05.2015
Сообщений: 145
14.07.2015, 00:38     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #16
Avazart, согласен, бардак в голове - страшная сила. Но для себя я не нашел, пока что способа лучше этого. Хоть какой то опыт, пусть и методом тыка.
Avazart
14.07.2015, 00:41
  #17

Не по теме:

Цитата Сообщение от ampermetr Посмотреть сообщение
Но для себя я не нашел, пока что способа лучше этого.
Какой еще способ?
Читать книги и выполнять задания из них?

rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,224
14.07.2015, 00:50     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно #18
Цитата Сообщение от RareScrap Посмотреть сообщение
Я изучаю C++ уже больше года, но чувствую, что до сил пор не умею им пользоваться
я изучая С++ уже 2 года, и всё в той же попе, что и вы) Мне очень понравилась одна фраза, не помню где прочитал:
- В других языках программирования думают о чём они пишут программу, в С++ больше времени уделяют тому, как они пишут программу.

Архитектурные вопросы - это время + опыт + чреда проб и ошибок
ampermetr
14.07.2015, 00:56
  #19

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2015, 06:13     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно
Еще ссылки по теме:

Как научиться эффективно читать чужой код С++ C++
Как эффективно изучать программирование? C++
C++ Знаю С, написать ничего толкового не могу, нужен совет опытных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ferrari F1
14.07.2015, 06:13     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно
  #20

Не по теме:


Цитата Сообщение от ampermetr Посмотреть сообщение
А вот хочу чтобы пользователь мог создавать объекты, не залазя в код.
Мне бы как новичку пришла идея хранить объекты в векторе (стл) или в другом контейнере, а потом создать консольное приложение с текстовым интерфейсом для отображения возможных операций с этим контейнером (создание, удаление, редактирование, добавление объектов и тп. Тут от цели зависит)

Yandex
Объявления
14.07.2015, 06:13     Не могу сдвинуться с места в изучении C++; Не знаю, как программировать эффективно
Ответ Создать тему
Опции темы

Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru