Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 10
1

Как эффективно изучать программирование?

23.07.2013, 11:53. Показов 5837. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, хотелось бы услышать рекомендации по эффективному изучению языка C++. Изучаю его по книге Дейтелов, пишу и разбираю примеры из книги. Прошёл 7 глав, а дальше уже очень сложно понимать информацию. Осознаю, что теория это хорошо, но не хватает практических навыков.
1) Может нужно учить какие-то алгоритмы или разделы математики? Посоветуйте литературу.
2) Подскажите книгу, где есть базовые задания с решениями.
3) Что может быть полезным на Coursera?
4) Разбор олимпиадных задач.
Расскажите как вы видите изучения программирования. Какую литературу и ресурсы использовать.
Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.07.2013, 11:53
Ответы с готовыми решениями:

Как лучше изучать программирование?
Просто читать и конспектировать или на практике? И где брать легкие задачки по С++? Для...

Файл: Как наиболее эффективно разделить строку?
В файле есть например: James 0.8 0.7 0.75 0.5 0.85 J Как наиболее эффективно разделить эту...

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

Начал изучать программирование, нужно решение задачи
Найдите число и сумму элементов вектора H, для которых ||Hk–B|<A. Собственно вот задача, не...

13
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
23.07.2013, 11:57 2
Цитата Сообщение от guitarman Посмотреть сообщение
4) Разбор олимпиадных задач.
если нужны олимпиадные задачи с разборами посмотри книгу Меньшиков. Олимпиадные задачи по программированию
1
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 10
23.07.2013, 12:10  [ТС] 3
Жаль, что примеры написаны на паскале.
0
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
23.07.2013, 12:14 4
guitarman, посмотрите здесь
0
9 / 8 / 2
Регистрация: 02.05.2012
Сообщений: 92
23.07.2013, 18:38 5
В тему, на этом сайте есть даже небольшая обучалка по С++ и задачи, разбитые по темам

прошу прошения ,не только С++, но и другим языкам
0
138 / 130 / 59
Регистрация: 13.12.2012
Сообщений: 293
23.07.2013, 18:47 6
Цитата Сообщение от guitarman Посмотреть сообщение
по книге Дейтелов
Так там же есть очень много упражнений самых различных уровней сложности
0
0 / 0 / 0
Регистрация: 13.08.2014
Сообщений: 9
18.08.2014, 18:32 7
Цитата Сообщение от Nerock Посмотреть сообщение
В тему, на этом сайте есть даже небольшая обучалка по С++ и задачи, разбитые по темам
прошу прошения ,не только С++, но и другим языкам
Сложно проверить, потому что на сайт ****.com как-то не удалось зайти.
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
18.08.2014, 22:26 8
Цитата Сообщение от guitarman Посмотреть сообщение
Прошёл 7 глав, а дальше уже очень сложно понимать информацию.
Есть такое дело. Поэтому иногда бывает полезно отвлечься, разгрузить мозги, просто поржать, например.

Либо вот ещё способ - посмотреть как ту же тему, на которых ты у Дейтелов "впадаешь в ступор" объясняют другие авторы (например, Липпман или Прата).

Можно попробовать обучение в игровом процессе.

Главное, не впадать в уныние.

Добавлено через 26 минут
Вот ещё кое-что (от создателя С++):
Кликните здесь для просмотра всего текста
Цитата Сообщение от Бьярне Страуструп
1.2. Как изучать C++

Изучая C++, нужно сконцентрироваться на концепциях и не потеряться в
технических деталях. Цель изучения — стать квалифицированным программистом,
который эффективно проектирует и реализует новые разработки, а также умело
поддерживает уже существующие. Для этого важнее понять методологию
проектирования и программирования, чем исчерпывающе изучить все детали языка —
последнее постепенно приходит вместе с опытом.
<...>
C++ поддерживает постепенный подход к обучению. Ваш собственный путь
изучения нового языка программирования зависит от того, что вы уже знаете,
и чему именно хотите научиться. В этом деле нет единого подхода для всех и
каждого. Я предполагаю, что вы изучаете C++, чтобы повысить эффективность в
проектировании программ и их реализации. То есть я полагаю, что вы не только хотите
изучить новый синтаксис, чтобы с ним писать новые программы старыми
методами, но в первую очередь стремитесь научиться новым, более продуктивным
способам построения программных систем. Это надо делать постепенно, так как
приобретение и закрепление новых навыков требует времени и практики. Подумайте,
сколько времени обычно занимает качественное овладение иностранным языком,
или обучение игре на музыкальном инструменте. Конечно, стать
квалифицированным программным архитектором и разработчиком можно быстрее, но не
настолько, как многим хотелось бы.
Отсюда следует, что вы будете использовать C++ (зачастую для построения
реальных систем) еще до того, как овладеете всеми его нюансами. Поддерживая
несколько парадигм программирования (глава 2), C++ обеспечивает возможность
продуктивной работы программистов разной квалификации. Каждый новый стиль
программирования добавляет новый штрих в ваш совокупный инструментарий, но
каждый стиль ценен и сам по себе, так как увеличивает эффективность вашей
работы как программиста. Язык C++ организован таким образом, что вы можете
изучать его концепции последовательно, постепенно наращивая свои возможности.
Это важно, так как ваши возможности будут расти практически пропорционально
затраченным на обучение усилиям.
<...>
Вопрос «Как писать хорошие программы на C++?» практически полностью
аналогичен вопросу « Как писать хорошую английскую прозу?». Здесь есть два совета:
«Знай то, что хочешь сказать» и «Практикуйся. Подражай успешным образцам».
Оба совета походят и для C++, и для английского языка, но обоим из них так
трудно следовать.



1.8. Советы

Ниже дан набор «правил», которые могут пригодиться при изучении C++. По
мере продвижения в этом процессе вы можете переработать их в нечто, более
пригодное для ваших задач и вашего индивидуального стиля программирования.
Перечисленные правила являются упрощенными и не отражают множества деталей. Не
воспринимайте их слишком буквально. Для написания хороших программ
требуются ум, вкус и терпение. Вряд ли эти правила помогут вам с самого начала.
Экспериментируйте!
1. В процессе программирования вы реализуете конкретное представлений
концепций решения некоторой проблемы. Постарайтесь, чтобы структура
программы отражала эти концепции как можно более непосредственно:
• [а] Если вы мыслите об «этом» как о некой общей сущности, сделайте
«это» классом.
• [Ь] Если вы мыслите об «этом» как о конкретном экземпляре сущности,
сделайте «это» объектом класса.
• [с] Если два класса имеют общий интерфейс, оформите его в виде
абстрактного класса.
• [d] Если реализации двух классов имеют что-то общее, вынесите это общее
в базовый класс.
• [е] Если класс является контейнером объектов, сделайте его шаблоном.
• [f] Если функция реализует алгоритм работы с контейнером, сделайте ее
функциональным шаблоном, реализующим алгоритм для работы с
семейством контейнеров.
• [g] Если классы, шаблоны и т.д. логически связаны, поместите их все
в единое пространство имен.
2. Определяя класс (если только это не математический класс вроде матриц или
комплексных чисел, или низкоуровневый тип вроде связного списка):
• [а] Не используйте глобальные данные (применяйте классовые поля
данных).
• [Ь] Не используйте глобальные функции.
• [с] Не делайте поля данных открытыми.
• [d] He используйте дружественные функции, разве что во избежание [а]
и [с].
• [е] Не используйте в классах «поля типа»; применяйте виртуальные
функции.
• [f] He используйте встраиваемые функции, разве что для значительной
оптимизации.
Более конкретные или подробные правила вы найдете в разделе советов в конце
каждой главы. Помните, что это лишь советы, а не непреложные законы. Советами
стоит пользоваться только там, где это разумно. Они не заменяют ум, опыт,
здравый смысл и хороший вкус.
Я считаю советы вроде «не делайте этого никогда» бесполезными. Поэтому
большинство советов формулируются в виде предложений, что желательно делать,
а негативные утверждения не формулируются в виде абсолютных запретов. Я не
знаю ни одного важного элемента языка C++, примеры полезного применения
которого на практике не встречаются. Раздел «Советы» не содержит пояснений.
Вместо этого, каждый совет снабжается ссылкой на соответствующий раздел книги.
В случае негативных советов, указанный раздел содержит позитивную
альтернативу.
1
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
18.08.2014, 22:28 9
gru74ik, думаю ТС ненужны глубокие знания в С++, он СП интересуется
0
sourcerer
18.08.2014, 22:36
  #10

Не по теме:

Цитата Сообщение от dr.curse Посмотреть сообщение
он СП интересуется
Чем-чем?

0
dr.curse
18.08.2014, 22:38
  #11

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Чем-чем?
СП - спортивное программирование

0
101 / 101 / 39
Регистрация: 17.04.2011
Сообщений: 554
18.08.2014, 23:51 12
По математике: Высшая математика, Дискретная, Вычислительная ну и Матан.
Насчет задачника , я бы посоветовал: Абрамян 1000 задач по программированию.
По алгоритмам: Томаса Кормен Алгоритмы построение и анализ.
или Кнута, Кормен по легче,
а так если хочешь научиться программировать, пиши программы.
0
191 / 90 / 33
Регистрация: 04.11.2013
Сообщений: 474
Записей в блоге: 4
19.08.2014, 06:34 13
Эффективного способа нет. Я начинал в 2001 , но некоторые базовые вещи я понял лишь в 2012. Предполагаю, что так и не понял.

Когда я начинал я упустил динамическое выделение памяти и одно связные и двусвязные списки. В ООП нужно понимать, что такое наследование, абстрактный класс, виртуальные функции, операторы. Если не можете сделать задачу, переходите к следующим главам. Вы не знаете теорию, а теорию нужно очень хорошо знать. То, чему вы из 7 глав научились это ерунда. Бросить задачи и читать теорию. Не заморачивацтесь пока что задачами, так как правильно вы их после 7 глав не сделаете. Читайте дальше теорию по книге.
1
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
19.08.2014, 06:43 14
Цитата Сообщение от Alexandr_1982 Посмотреть сообщение
То, чему вы из 7 глав научились это ерунда. Бросить задачи и читать теорию. Не заморачивайтесь пока что задачами, так как правильно вы их после 7 глав не сделаете. Читайте дальше теорию по книге.
Поддерживаю. Максимум - упражнения в конце каждой главы. Тем более, что:
Цитата Сообщение от guitarman Посмотреть сообщение
Изучаю его по книге Дейтелов, пишу и разбираю примеры из книги. Прошёл 7 глав
Это ты только узнал про переменные, циклы, массивы и функции. Чуть-чуть прикоснулся к понятию класса.
Цитата Сообщение от guitarman Посмотреть сообщение
а дальше уже очень сложно понимать информацию.
А дальше, в 8 главе у Дейтелов указатели и ссылки, потом в 9 и 10 более подробно - классы, потом перегрузка операций - без этого точно никак.
0
19.08.2014, 06:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2014, 06:43
Помогаю со студенческими работами здесь

Как лучше начать изучать веб-программирование?
Как лучше начать изучать веб-программирование? Какие книги можно прочитать для новичка, видео? Год...

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

Хочу изучать программирование какой язык программирование выбрать ?
Хочу изучать программирование какой язык (С, С++, С# или Delphi) программирование выбрать ? Цель...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru