Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221

Вливание в мир C++. Психологические нюансы

12.08.2015, 16:40. Показов 2425. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, такая ситуация. На форуме я зарегистрировался впервые, но его посетителем я являюсь давно! Где-то полгода назад у меня появилась мысль, что мне пора остепениться и все-таки найти смелость, выучить C++. До этого, я знал и знаю только Visual Basic и .NET. На Visual Basic'е я программирую с детства (лет с 11-ти) Мой папа до выхода на пенсию был программистом. И в качестве увлекательного занятия, дал мне диск с этим языком и книжку. С тех пор я так на нем и писал свои программы. И писал я на бейсике 11 лет. И когда я захотел переучиться полгода назад на C++, я не мешкая,занялся этим делом. И тут начались первые проблемы.

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

Мне иногда хочется материться и рыдать, когда ты написал 50 строчек кода и в двадцатый раз пытаешься его откомпилировать, а он выдает ошибку за ошибкой. И вот ты смотришь справочник, и делаешь, и снова не компилируется. Идешь на MSDN, копипастом вставляешь, казалось бы, код, который ОБЯЗАН работать, и понимаешь, что он тоже не работает, потому что статья устарела и вместо new надо ставить gcnew. А потом снова компилируешь....То там пропустишь точку с запятой, то здесь не поставишь запятую. В эти моменты хочется все бросить и сдаться.

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

Чем я могу себе помочь, как мне проще влиться и переделать себя?

Толковых учебников я не нашел. Максимум - это программирование консольных приложений под Win 32 без поддержки C++/CLI
Ни MFC ни ATL ни составление DLL. Гугл молчит, как партизан.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2015, 16:40
Ответы с готовыми решениями:

Нюансы обучения: желание учесть все нюансы - корректность кода или overengineering?
Здравствуйте программисты! Ответьте пожалуйста на такой вопрос(объясните) Вот я учу С++ и решаю задачи по учебникам, и постоянно...

На вкладке Мой мир, на портале mail.ru идет постоянная загрузка страницы - Мой Мир, в чем дело?
На вкладке Мой мир, на портале mail.ru идет постоянная загрузка страницы - Мой Мир, в чем проблема? Сама страница открывается быстро, но...

(C) Дана строка предложение. Записать все слова в строке в обратном порядке. Пример: весь мир → мир весь
Дана строка предложение. Записать все слова в строке в обратном порядке. Пример: весь мир → мир весь Добавлено через 15 минут ...

36
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
12.08.2015, 20:56
Лучший ответ Сообщение было отмечено gledor как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от gledor Посмотреть сообщение
над этим задачником просто "рыдаю"
Крамолу скажу.

Выбросьте "задачники". Найдите проект, который вам интересен (например, ваш же старый проект на Basic). Сделайте Remake. Не пытайтесь добиться совершенства на первой же итерации, будет нужда - переделаете позднее. Не пытайтесь ухватиться "сразу за все" - используйте необходимый минимум. Не "оптимизируйте" ничего, пока не заработает. И не бойтесь переписывать уже работаюший код (конечно, backup, version control).
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
12.08.2015, 21:11
C++ не тот язык, который можно мгновенно освоить. Зачем Вам GUI? Он только усложнит изучение самого языка. Как освоитесь в плюсах, тогда и выберете фреймворк для GUI'ни
1
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
12.08.2015, 21:51
Лучший ответ Сообщение было отмечено gledor как решение

Решение

Цитата Сообщение от gledor Посмотреть сообщение
Как вы справлялись с абсолютно ненужной раздражительностью?
Бывают такие моменты, когда что-то в упор не получается. Считаю универсальным способом побороть это - сменить на время занятие. Например пойти почитать книжку или посмотреть фильм. Очень часто бывает так, что в эти моменты приходит "озарение".
Раздражительность обусловлена боязнью самому себе (или окружающим) признаться в собственном бессилии перед задачей. Это нормально, люди вообще не любят признавать, что ошибаются или, что не могут чего-то понять. Тут важно не бороться с этим (хотя чуть самокритики никогда не помешает), а не культивировать это. Грубо говоря, не пропускать это глубоко через себя. Не получается - отвлекись, получится позднее.

Цитата Сообщение от gledor Посмотреть сообщение
А вот с визуальной частью - "трында".
Присоединяюсь в этом вопросе к советам выше. Qt - это хороший способ освоить и С++ и "визуальную часть".

Цитата Сообщение от gledor Посмотреть сообщение
У меня есть купленный задачник по Visual Studio C++ 2010 Культина
Не читал - ничего не могу по ней сказать.
Конкретно с твоим опытом я предложил бы для начала почитать вот эту книжку:
Эндрю Кёниг, Барбара Му, - "Эффективное программирование на С++"
И еще вот эту:
Стэнли Б. Липпман, - "Основы программирования на C++"
По ссылкам обязательно советую прочитать аннотации от автора, особенно к последней книге. Мне кажется он пишет именно о том, что тебе сейчас нужно от литературы. Ну и найти себе интересную задачу конечно же. Не задачу из задачника, а ту, которая действительно будет стоящей, которая захватит.
2
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
13.08.2015, 13:09
Цитата Сообщение от gledor Посмотреть сообщение
У меня есть купленный задачник по Visual Studio C++ 2010 Культина
Не читал, но осуждаю Я бы вообще в FAQ крупными красными буквами добавил - категорически не покупайте книг по программированию отечественных авторов.


Кстати в плане задачника помнится старенькая книжка была, "этюды для программистов" что-ли, довольно толковая.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
13.08.2015, 13:24
Цитата Сообщение от gledor Посмотреть сообщение
Вы люди знающие, наверняка кто-то из вас переучивался. C++ - язык нелёгкий. Как вы справлялись с абсолютно ненужной раздражительностью?
Я пересаживался на C, а потом на C++, с ассемблера под x86.
Ощущения были такими же: "ну что за ерунда, почему опять не компилирует ?!?",
"а это что еще за фигня ? какой умник такое придумал ?", "ну нафига вот
так вот делать, а ?".

На ассемблере мой процесс разработки выглядел примерно так:

скомпилил -> запустил -> поймал крэш -> сижу, исправляю ошибки ->
скомпилил -> запустил -> поймал крэш -> сижу, исправляю ошибки ->
скомпилил -> запустил -> ура, работает !

Когда я стал использовать C и C++, процесс стал таким:

не могу скомпилить -> исправляю ошибки -> не могу скомпилить ->
исправляю ошибки -> не могу скомпилить -> исправляю ошибки ->
наконец-то скомпилил -> запустил -> ура, работает !

Потом я понял вдруг: но ведь это же круто, что вся "ересь"
отлавливается еще задолго до того, как код будет запущен !

Потом мне попалась парочка увлекательных книжек, которые я до сих
пор считаю лучшими: "Imperfect C++" и "С++ для профессионалов".

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

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

Вот очень хорошо, я считаю, DrOffset написал (#19), ну прям в рамку
поставить и перечитывать в минуты уныния !

Друг мой, как мысли черные к тебе придут,
откупори шампанского бутылку,
иль перечти "Женитьбу Фигаро".
2
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.08.2015, 15:30
Цитата Сообщение от Voivoid Посмотреть сообщение
не покупайте книг по программированию отечественных авторов
Прям почти "не читайте до обеда советских газет"

Добавлено через 45 секунд
Voivoid, а Степанов - отечественный автор? )))
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
13.08.2015, 15:31
Цитата Сообщение от gru74ik Посмотреть сообщение
Voivoid, а Степанов - отечественный автор? )))
Хех, коварный вопрос Но как-то уж с трудом его думаю можно назвать отечественным
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.08.2015, 15:32
Voivoid, а Шлее? )))
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
13.08.2015, 15:40
Цитата Сообщение от gru74ik Посмотреть сообщение
а Шлее? )))
Не читал, но судя по оглавлению выглядит как очередная обзорная книжка по базовым возможностям qt, без каких-либо собственных исследований и изысканий. Таких книг вагон.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
13.08.2015, 19:53
Цитата Сообщение от Voivoid Посмотреть сообщение
Таких книг вагон.
На русском - две ))) Шлее одну написал. Саммерфилд и Бланшет другую.
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
14.08.2015, 19:14
Цитата Сообщение от Убежденный Посмотреть сообщение
Я пересаживался на C, а потом на C++, с ассемблера под x86.
Имхо - это лучший способ "научиться программировать на С++".
Цитата Сообщение от gledor Посмотреть сообщение
Такое ощущение, что когда я начинаю в нем что-то делать, то как будто я делаю это в первый раз в жизни. Как будто меня заставили ходить на руках, извините за выражение.
Если бы вы попробовали функциональные языки, желательно поядренее-побескомпромисснее, в которых нет ни переменных, ни циклов, тогда бы я понял такие эмоции и ассоциации А так - то же структурно-процедурное кодирование, обернутое в сахар ООП, который здесь вдобавок необязателен.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
14.08.2015, 19:36
Ну, как известно, язык определяет мышление, поэтому при смене языков его приходится менять, а кому приятно, когда ему пытаются изменить мышление.
Очень важно и эстетическое воприятие языка. С этой точки зрения С++ очень эклектичен и представляет собой причудливую смесь красивого и умного, привнесенного Страуструпом, и безобразного и дурацкого, унаследованного от Си.
Вообще-то, мне кажется, что не следует учить язык, который не любишь. Да это и невозможно, по моему мнению.
0
 Аватар для Vort_
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
14.08.2015, 19:51
Цитата Сообщение от _Ivana Посмотреть сообщение
Я пересаживался на C, а потом на C++, с ассемблера под x86.
Имхо - это лучший способ "научиться программировать на С++".
я бы сказал чуть по-другому:
знание ассемблера позволяет лучше понимать C/C++
то есть, не обязательно учить именно в таком порядке - можно и в обратном

когда в C++ при отладке приходится спускаться на более низкие уровни абстракции - знание ассемблера очень выручает
то же самое при оптимизации. можно даже не писать ассемблерные вставки, но менять C++ код и смотреть что в результате получается на уровне ассемблера
0
 Аватар для smartpointer
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
14.08.2015, 20:06
Цитата Сообщение от Mr.X Посмотреть сообщение
С этой точки зрения С++ очень эклектичен и представляет собой причудливую смесь красивого и умного, привнесенного Страуструпом, и безобразного и дурацкого, унаследованного от Си.
Ну да, написав парсер над C , и назвать это отдельным языком ума много и не надо.
0
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221
19.08.2015, 16:12  [ТС]
Спасибо большое за ответы!
_Ivana, да,понимаете, такое ощущение только из-за нового синтаксиса, то есть структура написания мне понятна, меня иногда просто глаза к небу подымаются от некоторых вещей) Например, самый простейший пример, это инкремент\декремент. В басике их вовсе нет. И мне пришлось вдумчиво читать про их использование раз 5, чтобы разобраться в постфиксе и префиксе. Да, это очень удобно на практике (использование ин\де - крементов), но рука до сих пор тянется писать
i = i + 1 и таких примеров много. Например, в том же басике, когда я пишу функцию, мне не надо писать тип возвращаемого значения перед именем функции. Поэтому когда я вижу тип данных,у меня сразу ассоциация, что это глобальная переменная, и только спустя секунд 10 до меня доходит, что это-таки функция. Помимо этого, есть другие различия. Например, в С++ переменные объявляются, как [тип данных] имя. А в Basic, имя [тип данных]. То есть совершенно наоборот.

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

Ну, то есть случаются небольшие казусы, что просто путаю по аналогии с тем, что мне известно лучше всего, и только)))

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


P.S. С++ мне кстати, очень понравился. Я когда увидел несколько программ, я был в восторге,как ребенок))) Потому и возникло желание изучить язык. До сих пор аж "горит". Правда, иногда "колется")))
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
19.08.2015, 16:49
Цитата Сообщение от gledor Посмотреть сообщение
Правда, иногда "колется"
Частенько еще и по ногам стреляет, приходится бегать по огороду на котором разбросаны грабли.

Привыкните со временем
0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
19.08.2015, 21:34
Цитата Сообщение от gledor Посмотреть сообщение
Помимо этого, есть другие различия. Например, в С++ переменные объявляются, как [тип данных] имя. А в Basic, имя [тип данных]. То есть совершенно наоборот.
После того, как выучте несколько языков, в которых принят и тот, и другой синтаксис, это перестанет вводить в ступор. Включите адекватную подстветку синтаксиса — на первых порах она может стать вашим проводником, поможет разобраться в ньюансах синтаксиса.

У меня у самого, когда долго пишешь на одном языке, а потом начинаешь писать / читать программы на другом языке, происходит как бы "акклиматизация": по инерции мыслишь паттернами предыдущего языка.

Ясно дело, что пока вы будете учить язык, ваши решения не будут самыми элегантными. Вначале решайте задачу хоть как-нибудь. Зетем, когда узнаете больше фич, можете переписать. Правда, такой подход годится для любого языка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2015, 21:34
Помогаю со студенческими работами здесь

Психологические тесты
Всем день добрый! Нужна помощь комьюнити в проектировании структуры БД(MS Access) для программы психологические тесты. Уже несколько...

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

психологические тесты
Здравствуйте уважаемые форучане. Вопрос у меня скорее теоретический, а именно: есть тест типа "вопрос - варианты ответов"...

Психологические загадки
Нашёл в нете.

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


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru