|
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
|
|
| 12.08.2015, 16:40 | |
|
Ответы с готовыми решениями:
36
На вкладке Мой мир, на портале mail.ru идет постоянная загрузка страницы - Мой Мир, в чем дело?
|
| 12.08.2015, 20:56 | ||
Сообщение было отмечено gledor как решение
РешениеВыбросьте "задачники". Найдите проект, который вам интересен (например, ваш же старый проект на Basic). Сделайте Remake. Не пытайтесь добиться совершенства на первой же итерации, будет нужда - переделаете позднее. Не пытайтесь ухватиться "сразу за все" - используйте необходимый минимум. Не "оптимизируйте" ничего, пока не заработает. И не бойтесь переписывать уже работаюший код (конечно, backup, version control).
1
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||
| 12.08.2015, 21:51 | ||||
Сообщение было отмечено gledor как решение
РешениеРаздражительность обусловлена боязнью самому себе (или окружающим) признаться в собственном бессилии перед задачей. Это нормально, люди вообще не любят признавать, что ошибаются или, что не могут чего-то понять. Тут важно не бороться с этим (хотя чуть самокритики никогда не помешает), а не культивировать это. Грубо говоря, не пропускать это глубоко через себя. Не получается - отвлекись, получится позднее. Конкретно с твоим опытом я предложил бы для начала почитать вот эту книжку: Эндрю Кёниг, Барбара Му, - "Эффективное программирование на С++" И еще вот эту: Стэнли Б. Липпман, - "Основы программирования на C++" По ссылкам обязательно советую прочитать аннотации от автора, особенно к последней книге. Мне кажется он пишет именно о том, что тебе сейчас нужно от литературы. Ну и найти себе интересную задачу конечно же. Не задачу из задачника, а ту, которая действительно будет стоящей, которая захватит.
2
|
||||
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 13.08.2015, 13:09 | ||
Я бы вообще в FAQ крупными красными буквами добавил - категорически не покупайте книг по программированию отечественных авторов.Кстати в плане задачника помнится старенькая книжка была, "этюды для программистов" что-ли, довольно толковая.
0
|
||
|
Ушел с форума
|
||
| 13.08.2015, 13:24 | ||
|
Ощущения были такими же: "ну что за ерунда, почему опять не компилирует ?!?", "а это что еще за фигня ? какой умник такое придумал ?", "ну нафига вот так вот делать, а ?". На ассемблере мой процесс разработки выглядел примерно так: скомпилил -> запустил -> поймал крэш -> сижу, исправляю ошибки -> скомпилил -> запустил -> поймал крэш -> сижу, исправляю ошибки -> скомпилил -> запустил -> ура, работает ! Когда я стал использовать C и C++, процесс стал таким: не могу скомпилить -> исправляю ошибки -> не могу скомпилить -> исправляю ошибки -> не могу скомпилить -> исправляю ошибки -> наконец-то скомпилил -> запустил -> ура, работает ! Потом я понял вдруг: но ведь это же круто, что вся "ересь" отлавливается еще задолго до того, как код будет запущен ! Потом мне попалась парочка увлекательных книжек, которые я до сих пор считаю лучшими: "Imperfect C++" и "С++ для профессионалов". ![]() Привыкание к новым средствам разработки - оно всегда такое, тяжелое, и чем старше ты становишься, тем больше превращаешься в ворчливого, мелочного и инертного консерватора, цепляющегося за свои достижения двадцатилетней давности и все меньше и меньше способного двигаться вместе с прогрессом и постигать новое. Не надо быть таким ! Вот очень хорошо, я считаю, DrOffset написал (#19), ну прям в рамку поставить и перечитывать в минуты уныния ! Друг мой, как мысли черные к тебе придут, откупори шампанского бутылку, иль перечти "Женитьбу Фигаро".
2
|
||
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 13.08.2015, 15:31 | ||
Но как-то уж с трудом его думаю можно назвать отечественным
0
|
||
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 13.08.2015, 15:40 | ||
|
0
|
||
| 14.08.2015, 19:14 | |||
А так - то же структурно-процедурное кодирование, обернутое в сахар ООП, который здесь вдобавок необязателен.
0
|
|||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 14.08.2015, 19:36 | |
|
Ну, как известно, язык определяет мышление, поэтому при смене языков его приходится менять, а кому приятно, когда ему пытаются изменить мышление.
Очень важно и эстетическое воприятие языка. С этой точки зрения С++ очень эклектичен и представляет собой причудливую смесь красивого и умного, привнесенного Страуструпом, и безобразного и дурацкого, унаследованного от Си. Вообще-то, мне кажется, что не следует учить язык, который не любишь. Да это и невозможно, по моему мнению.
0
|
|
|
200 / 200 / 78
Регистрация: 10.07.2012
Сообщений: 409
|
||
| 14.08.2015, 19:51 | ||
|
знание ассемблера позволяет лучше понимать C/C++ то есть, не обязательно учить именно в таком порядке - можно и в обратном когда в C++ при отладке приходится спускаться на более низкие уровни абстракции - знание ассемблера очень выручает то же самое при оптимизации. можно даже не писать ассемблерные вставки, но менять C++ код и смотреть что в результате получается на уровне ассемблера
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|
| 14.08.2015, 20:06 | |
|
0
|
|
|
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221
|
|
| 19.08.2015, 16:12 [ТС] | |
|
Спасибо большое за ответы!
_Ivana, да,понимаете, такое ощущение только из-за нового синтаксиса, то есть структура написания мне понятна, меня иногда просто глаза к небу подымаются от некоторых вещей) Например, самый простейший пример, это инкремент\декремент. В басике их вовсе нет. И мне пришлось вдумчиво читать про их использование раз 5, чтобы разобраться в постфиксе и префиксе. Да, это очень удобно на практике (использование ин\де - крементов), но рука до сих пор тянется писать i = i + 1 и таких примеров много. Например, в том же басике, когда я пишу функцию, мне не надо писать тип возвращаемого значения перед именем функции. Поэтому когда я вижу тип данных,у меня сразу ассоциация, что это глобальная переменная, и только спустя секунд 10 до меня доходит, что это-таки функция. Помимо этого, есть другие различия. Например, в С++ переменные объявляются, как [тип данных] имя. А в Basic, имя [тип данных]. То есть совершенно наоборот. Я не говорю, что где-то хуже,а где-то лучше. Просто это совершенно разные в понятии синтаксиса языки, а у меня большая скорость и инерция со старого опыта. Ну, то есть случаются небольшие казусы, что просто путаю по аналогии с тем, что мне известно лучше всего, и только))) Впрочем, сейчас походу придется открывать тему с вопросом по fstream. Никак не могу красиво решить задачу, с быстрым алгоритмом. P.S. С++ мне кстати, очень понравился. Я когда увидел несколько программ, я был в восторге,как ребенок))) Потому и возникло желание изучить язык. До сих пор аж "горит". Правда, иногда "колется")))
0
|
|
|
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
|
||
| 19.08.2015, 21:34 | ||
|
У меня у самого, когда долго пишешь на одном языке, а потом начинаешь писать / читать программы на другом языке, происходит как бы "акклиматизация": по инерции мыслишь паттернами предыдущего языка. Ясно дело, что пока вы будете учить язык, ваши решения не будут самыми элегантными. Вначале решайте задачу хоть как-нибудь. Зетем, когда узнаете больше фич, можете переписать. Правда, такой подход годится для любого языка.
0
|
||
| 19.08.2015, 21:34 | |
|
Помогаю со студенческими работами здесь
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|