First I was on that console window, and everything seemed easy because I could break everything down and knew EXACTLY what I was doing to get what I wanted done.

However, that boring text-window got tiring. I decided to move on, but that was the biggest mistake ever.

For over a year now I've been struggling to use classes in C++. I just don't get it. I always get errors, the syntax is too complicated, I don't know what the hell or how they are 100% constructed, I always get confused, I can't just get it "sorted" right. And not only that but things further in to Object Oriented programming are some of the biggest off-putting things I've found in programming as a whole.

I'm given these endless tools that programming languages provide, such as linked lists, binary trees, nodes, etc.

I mean I WANT to learn these things, but they're too complicated ... however, there's nothing lesser to learn.

I just can't fundamentally apply code to do what I want to a substantial amount.

I first wanted to make a snake game - that was head over heels too difficult beyond belief.

So I tried tic-tac-toe ... sat there over six weeks, couldn't manage it in a console window - it was too difficult.

I have a problem getting my head 100% around what I'm doing to implement a real game - I just either blank out, crash, reach the same learning curve, fail, get frustrated, delete everything, try again, fail, try and learn, fail, try and understand how to implement, and once again ... nothing.

It's like my head is locked around programming and mathematics, and it always has been.

All of this, but I just can't learn everything one after another and know how to implement everything perfectly and get exactly what I want done how I want it done.

I can't do that anymore, and I've been in a steep learning curve in C++ for over a year now. I just can't advance, and no amount of tutorials of any kind or any responses or insight from anyone has helped me grasp the harder concepts of the language strong enough for me to exactly see how I can apply things, how the things work, and why I should use them.

I can't advance.... I feel like I've put in well beyond a substantial amount of work and stress in to this hobby, and I've gotten not even anything nearly appreciable out of it - nothing I can feel accomplished about, and I'm terribly sick of this.... I want to improve, but after over a year and not a single step forward you start to question yourself and if you are mentally capable or smart enough to do this thing ... and I just don't think I am.

Edited 4 Years Ago by sheltask

I'm sorry to hear that....

We're supposed to answer questions on this forum, and I didn't see any question in your post. But I can comment.

What baffles me is that you have such an interest for programming that you've persevered for over a year dabbling in it, but at the same time you express immense frustration at it.

First, I don't know what process you have followed to learn C++, but it sounds like you've been doing a lot of brute force and trial and error. This is really the hard way to go about it. You might need more structure. Get a good book on programming in C++ (like C++ Primer Plus or Accelerated C++), and follow it with patience and rigor, read it well, and make sure you understand every concept and test them out. If there is anything along the way that you don't understand, don't skip over it, get to the bottom of it either through googling, testing with some code, or coming back here with questions about it. Building an understanding and skill in programming is like building a house, you can't throw bricks together randomly, you have to build it from strong foundations and going up.

Second, you must be aware that C++ is far from being the only language out there. It certainly is a very important programming language (and dominates in many fields) that any professional programmer will / must eventually learn thoroughly. But C++ is certainly not the easiest language to learn, it is a very powerful language which means it has very complex machinery. There are plenty of "easier" alternatives you might want to consider, like Python or Java/C#.

However, you must understand that there is a limit to how easy a language can be. The reason is simple, programming tasks are often non-trivial and thus, they require fairly flexible (or powerful) tools and quite a bit of programming efforts. There is no such thing as a programming language that will allow you to create really complex things without any efforts or complexity to deal with. But certain programming language can constitute a path of least resistance for certain tasks.

Finally, computer programming simply might not be your thing. Some people "just get it" while others don't. I remember when I was making my first baby steps in programming, I never needed to be explained the basic logic of programming (i.e. storing values in variables, executing one instruction after the other, calling functions, etc.), this all seemed natural or obvious to me, but I have seen others struggle quite a bit to understand just that basic logic. But don't get me wrong, learning to program is not a simple task, it takes many years of hard work regardless of your predispositions to it. But there is a component of how your mind works and how that fits with how a computer or software works. And it's not about being "mentally capable or smart enough", it's about how you think, not how well you think.

Trying to program a snake game if you can't make yourself understand classes is a recipe for disaster. Ditto linked lists and binary trees.

There's a natural progression in C++: "Hello World", print your name, count to 10, count to however high the user wants, functions, arrays, pass-by-reference-versus-value, pointers, structures, classes, linked lists, binary trees,.... Something like that. Others may disagree partially but I imagine not by much. Skip a step and you're going to have problems. It's one of those languages where many people can't learn on their own. They need a class and a good teacher. Part of the teacher's job is to teach in the right order and to make sure the students know the previous step before proceeding.

That said, not everyone has an aptitude for it. That doesn't mean you aren't smart. There are plenty of smart folks who can't grasp it.

What was the best program you have done this far? Of course you have to do some kind of design of the program algorithm first and be able to do the task yourself and able to list all steps of it before teaching the computer to do it.

Are you building your programs one step at time, testing after each function added?

Usually this kind of confusion happens either when people try to code 10 things same time and end with 8 bugs, which is impossible to track as you are not sure that any part of program is bug free.

You might also want to learn one simpler to use language first to become stronger in algorithmic thinking and then dig deeper in secrets of C++ (I of course would recommend Python).

i personally started out with java and i had similar problems such as yours but because of my love for programming i took some advice and switched to python and so far it has been a breeze not that everything about it is that simple but its syntax and structering is so i recommend you take that route and see where that leads you.

when it took me 6 months to figure out how to add basic resources to a win32 project.... and going through 5 compilers just to change window background color, i knew this **** was just to messed up. i'm glad i stopped at just c++ or else i would be spending the rest of my life as an abusive and angry alchoholic.

This article has been dead for over six months. Start a new discussion instead.