How to learn

Started by
8 comments, last by blade5 14 years, 8 months ago
Couldn't think of a better title. But I am just curious on the learning methods when reading C++ books. I am right now reading the book "Sams teach yourself C++ in one hour a Day". Its a good book but I am wondering if I am trying to do this wrong. During the chapter I will try the code out, and then after the chaper I do the quiz's and then try out the programming on my own. But I read the whole chapter. My main question is, is this the right way to do it or am I just taking a longer task?
Advertisement
That sounds just fine, just keep at it!

Someone could have the perfect learning / practicing method figured out and only do it for a month, that person will be a lot worse a programmer than a person who had a less than perfect method but kept at it for years.

So yeah, just keep at it, keep learning, keep practicing, you'll get there before you know it (:
You really seems wondering if you are doing the good thing. I just checked your profile and most posts are about this book. I remember reading an old edition of C++ in 21 days book when I was in high school, and I managed to understand most of the sample code, but when trying by myself I wasn't able to do anything at all, far from game programming.

It's hard to learn things when you don't know how you will use them later. In fact, you can't cleanly learn a programming language like C++ without knowing other things first. But you can't cleanly learn these other things without a known language to learn them on. As an example, the C++ book will tells you how to create a classes in every possible way, but won't teach you object-oriented efficient design as would a book or a course specialized for it. Same thing about logical operations, algorithms, datatypes, programmation-oriented mathematics, etc. Most languages share all these things and at some point you see a language as simply an interface to programming your ideas.

Don't disregard your school, even if it seems uninteresting and useless with bad teachers, you will eventually know everything there is to it. Java and C++ are also very much similar since they both are object-oriented languages. It might be slow as hell, but good enough for learning.

Don't stop reading your book though, you will need to learn C++ one day of later anyway and it's not that much harder than any other language when you don't dwell into very specialized stuff. Just be sure to read from different sources, even free online tutorials, about stuff you don't understand perfectly
Ok Thanks yea I wish my school taught C++ but sadly it doesn't so I am teaching myself. I figured getting to know the language a bit first before going into game programming would be smart. thanks for the reply's guys :)
Quote:Original post by blade5
I figured getting to know the language a bit first before going into game programming would be smart.


I like your mindset, so I'll pitch in what I think.

I think the best way to learn C++ would be 1) to have another human guiding you through the process (books and tutorials can only get you so far), and 2) try something beyond the scope of the tutorial.

A tutor is invaluable in what's like a foreign language. You'll need someone who knows the culture, the practice, and the mindset of C++. Where a written tutorial can tell you what you can do, a human can explain why you'd want to use it.

I found the best way to remember new concepts was through experimentation, research, and lots and lots of mistakes. For example, what happens if I say, "int x, y, z; x = 2 * y = 3 + z = 10;"? What if I remove "namespace std;"? Ask questions, and find out. It solidifies your knowledge.
Yea I plan on taking C++ classes on college lucky for me i'm going into my last year of high school so I will actually have a human teaching so I can learn from what I don't understand with what I am learning now.

Funny thing is I do exactly that I mess around by changing what you pretty much said. I like to see if I can do what I think it does hehe :P.
When I'm learning something, I find it very helpful to have a project that I can apply that learning to. Book problems are all very well and good, but because they're intended to stand on their own, they don't show you what can go wrong when you try to combine different concepts together. Try to think of a small project that you could start working on with the knowledge you have already, and start it. Pretty soon you'll find an area where you need more knowledge; then you can go look up what you need to know to keep working on your project. Learning that will get you better-grounded in the language, and will also get you further along in your project.
Jetblade: an open-source 2D platforming game in the style of Metroid and Castlevania, with procedurally-generated levels
When I was trying to learn from a book the technique I used; was creating the programs in the back of the chapter and adding more then what was required using things from the previous chapter.
I can feel your pain on having to teach yourself. Back when I was in high school, their idea of a computer class was keyboarding. I did exactly as you are doing with the book, but what really helped me was taking the examples and then trying to break them. Then I would go back and try figuring out why that broke the example and how I could modify the example to better fit what I wanted to do. It is a real trial and error process but the experience helps a lot (at least it did for me.)

Also, don't just stick with the book itself there is a lot of code samples and tutorials on different aspects. Take a look at these and repeat the process. This also gives you a wider exposure to what is syntax and what is style and puts you in a more open mind to approaching problems.

My final piece of advice to you is, always code, don't stop. I let life get in the way (joined the army went to Iraq a couple of times) and let your skills rust or else it will be back to the basics, and not by choice.

I wish you the best of luck on your endevour and keep at it.
Vis
Yea I have experienced that a couple times awhile ago was I would start programming do some other stuff then had to start over. Hoping that doesn't happen this time :). I like the advice some of you have given I will definitely do those thanks for replying!

This topic is closed to new replies.

Advertisement