Is this normal when learning to program?

Started by
26 comments, last by B_Knight 19 years, 5 months ago
I am learning C++ and I have covered topics such as functions, classes, pointers and now references, but I think I might have a problem. When I finish a chapter covering a certain topic I make sure that I understand the concepts in that chapter. I understand the example programs, but I couldnt really set down and write a serious program to implement the new concepts that I have learned. I can sit down and write a small program that does nothing other than demonstrate the concepts, but as far as a real world program, I can't do it yet. Also, when I look at source code for a game or something I feel really overwhelmed and wonder if this is something that I will ever be able to do. I wonder how I will ever remember so many new functions and when to use a pointer, pass by reference, etc etc... Did anyone else face these hurdles when learning C++? Thanks
Advertisement
Its always hard to read someone elses code for the first time and understand what they were thinking when they wrote it.

The best way to learn is to practice, writing programs reading other peoples programs, eventually it starts to make sense. When I first learned about pointers and references I didnt understand it at all. It wasnt until I took a college course on operating systems and had to program a unix shell in C that I really learned how to use them effectively.
"Pfft, Facts! Facts can be used to prove anything!" -- Homer J. Simpson
Im doing an MCAD and i hve the same problem but as my tutor said "in the real working enviroment no ones going to stop you pulling a book of the shelf to look somthing up"

The best way to learn is keep doing it. soon enough you will come across a problem that will cause you to have to delve into the intimate workings of a program, yeah you will pull your hair out and spend hours trying to fix it...... but by the time you get it working you will have a much greater knowledge of it
... and the more you code, the more mistakes you make and the more mistakes you learn from.

For me making mistakes is the best way to learn programming :? with all the complexities of it, it's easy to over look what makes a particular function tick, but as soon as you need to root out a problem you have to roll up you interlectual sleaves and get your hands dirty ... and thats where the best learning happens.
Yep.

But to me it seems easier to learn from examples and sources, not from books and SDK. I'd better like to experiment and juggle with variables, flag and other stuff and see the result it brings, rather than adopting "do as I say" method. I call it "geeting lots of EXP" ;)
I guess you might when your learning, but I dont remember. I've now been programming 4 years and I can do it in my sleep now. I'm making a game and It does seem overwhelming, but I think you just have to break it down. Right now I'll code the menu. Now I'll code the battle engine etc. As for remebering the functions, syntaxes, methods etc, that all comes with time. For now, have MSDN bookmarked and look things up as needed, but as time progresses, you'll find that your memorizing the syntax for functions. It all comes with practice. It is THE best thing you can do while learning to program.
--------------------C++ Home - Check it out!Lol... - Amazing video
This is the hardest part of learning to program. The good news is that it gets better with practice. It really does. The bad news is that there's no magic tutorial that'll give you that particular skill in programming; practice is the ONLY way.

Take baby steps. Take a program from your book, one that you really and truly fully understand _EVERY_ line of, and start modifying it. Start by adding really teeny things, and work your way up. Don't be afraid to back off from a planned modification if you have no idea how to approach it, but write it down and revisit it later.
Absolutely. This is the same problem you will face no matter what you are learning. There are going to be bumps in the road. Like the others said, practice. Write as much code as you can about anything. Get used to commenting your work so you will be able to go back a month later and remember what you were thinking. I would say good luck but only practice can save you now. :)
Steven Bradley .:Personal Journal:. .:WEBPLATES:. .:CGP Beginners Group:. "Time is our most precious resource yet it is the resource we most often waste." ~ Dr. R.M. Powell
It took me a while to learn a few stuff so I edited the code I saw; giving a better understanding of it.
If that doesn’t work look at other tutorials\books and see the difference, when you see the difference it will make more sense. Having trouble with pointers was my main struggle, no one person could explain the use of them to me until I started SDL, but that does not mean that you should skip pointers; I learned how to use them but I didn’t know any purpose.
Thanks for the tips. It is nice to hear that my situation isn't unusual. I just gotta stay focused and keep coding I guess. ;)
I don't think anyone else here really talked about it, but that is the general pattern for all learning ...

First is knowing enough to know that the knowledge exists (knowing there is a topic).

Second is knowing something about the topic.

Third is actually learning the primary information of the topic. (this seems to be the level the book primarily covers)

Fourth is understanding what the topic is used for, where it is applied. (this is probably touched on in the book, by the example, but largely is something you just have to gain through talking with people and attempting to use the topic (usually incorrectly at first)).

Fifth is actually understanding the topic so completely, that you can apply that knowledge to areas not originally intended by the teacher (for example building an atomic bomb using quantum physics).

The goal of school is to give you Second level information about an enormous number of topics, and Third level information about the primary areas of your disipline (aka programming) ... and at least ONE piece of Fourth level knowdlege for each topic ... that way you can begin applying the information in just one way, right away ... and then with experience, you branch out.

This topic is closed to new replies.

Advertisement