Learning By Doing vs Learning By Reading

Started by
18 comments, last by agentultra 11 years, 2 months ago

I have reached an impasse, or what I consider an impasse, I am currently reading Beginning C++ Through Game Programming, Third Edition by Michael Dawson, and I can't read more then a few pages before I have to put it down again. It took me about two weeks just to get through Chapter 1 Types, Variables, and Standard I/O: Lost Fortune.

Its not that I'm a bad reader, on the contrary I read Harry Potter and the Deathly Hollows in a Weeknight front to back, but I just can't seem to read this book. So my question is, can I learn programming from reading and doing the example projects, or should I switch to doing my own projects and referencing to the book and the internet when I reach a problem.

This has become a really big problem for me as I'm a very fast learner (I'm Currently taking AP Classes and AICE) and my lack of progress, or what i perceive to be lack of progress, is really frustrating me, and the more frustrated I get the less I want to read the book, and the longer it will ever take for me to master this or any language in general. I would really like some feedback on this issue as I have read some topics on this and still haven't decided by myself.

Advertisement

If it frustrates you so, why are you trying to do it that way?

It doesn’t matter what or how. You can’t learn anything without motivation.

If this method is not motivating for you, find one that is.

It seems to me that you are just trying to go this route because you somehow calculated that this is the best way.

Lesson in life: The best way is always the way most suitable to you. And in your case it is obviously not by reading.

I wanted to give a generalized answer first because it is the most important lesson in life you can ever learn: Learn how to learn.

For your specific task, programming generally is better-learned hands-on. In fact most things are.

And in your case, it’s obvious. Put the book down and start coding.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

I can't really tell you what the right way to learn is. Different people learn in different ways. I, for one, learned the hard way. I started teaching myself C in 7th grade (some 12 or so years ago now) with an incredibly outdated compiler and a reference book nearly as old (http://www.amazon.com/First-Book-Fundamentals-Programming/dp/0314813489). I didn't really read the book through, but rather used the examples and such in the back as a start and referred to the appropriate chapters for explanation/help as needed.

My general thinking is that books and classes are good (assuming you have a good book / good teacher) for learning the syntax rules and such, but I think experience (and discussion) tends to be a better teacher of design skills and what I call an adaptive understanding of the language... that is, the ability to understand not only how things work (not just how you're told to use them) and how to combine them without external direction to achieve a certain goal.

There was a saying we had in college: Those who walk into the engineering building are never quite the same when they walk out.

You may be right about me calculating this approach to learning, only because that was the best solution I found to learning, or attempt to understand c++. My frustration is not with programming or anything like that but with what I myself view as a lack of progress, maybe from someone else's prospective i'm doing totally fine, but i feel like I'm not getting anywhere, that is wear my frustration lies, I am totally motivated to learn, I just don't know what approach to take, and the current one I am following just bores me to death. On the flip side I feel like my not competent enough to approach coding on my own, because I still feel like a totally nub. Maybe I'm over-thinking this but I feel that if I keep doing it that way I am currently doing it I will never get anywhere.

Learning your first language is hard enough without throwing games development into the mix. Best to get a book on C++ first then look at a games development book once you become more confident with C++.

Remember that programming games is hard graft and is certainly not learnt over night - "Rome was not built in one day!". You are a beginner, so why are you expecting to perform miracles? Eh? Be kind to yourself and take your time to experiment from what you learn from your books...and it will eventually become clear.

Languages; C, Java. Platforms: Android, Oculus Go, ZX Spectrum, Megadrive.

Website: Mega-Gen Garage

My first thought went I read your reply is "Well, maybe I should start looking for some general programming." But then I stop and think, I might just end up where I am now, trying to read an book and constantly losing interest probably because Its not the way I learn.

Everyone learns different. I would not say their is any one way to learn programming well, except only thing in common is practice, practice, practice, oh and more practice.

When I first started learning programming everything I read I found a way to put into code and coded something. No matter if it wasn't fancy or if it was stupid and dumb. I coded it and enjoyed it. Now I'm to the point where I can't find myself to code. Not because I don't enjoy it now, I enjoy it more than ever still. It's because I for some reason all of a sudden started to care about how awesome something was coded instead of the project in general.

That is what is important in my opinion. Just code. Don't worry about how fancy or nice the code is. Just code. If you need/want help try your book, Internet, or ask here. Though just code. When your done with a project post it here and ask for a code review or something. So many people here will review your code and give you good suggestions. Then code some more and before you know it you'll be here answering questions for people. You will always be learning programming though. Professionals learn something new or different every project. Just keep coding and learning.

I guess you can say my suggestion is to just code, code, code. Need help look at your book or ask here. Though while beginning coding don't always worry about making it all fancy and nice code. You will never actually do or learn anything then. That's my problem right now.

Wish you best of luck

It sounds like you might learn differently than others, maybe a visual learner.

I recommend that you try reading the headfirst series. Allot of the programming books out right now are written in a way that slows visual learning. The headfirst series has a novel way of dealing with visual learners, it describes everything not only on words but visually as well.

lastly, visual learners do better with video tutorials, try youtube programming tutorials.

Its making the mistake a few times that teaches you to remember to write code for the "key-up" event when you character won't stop moving off the screen.

There are so many different things that can go wrong and right with code, it's hard for a book to show you all that, and it probably won't cover the things that end up being your personal problems later on. Books are great for getting some syntax down, but you need to get into the nitty-gritty of programming with experience.

Technology moves so fast that you don't want to spend 30 or 40 bucks on a book about some SDK that was old new yesterday.

The head first books are pretty nice, if your into having fireside chats with computers and really big close-ups of weirdos.

You may find that "Programming" is madly boring, but programming is madly fun, y'know what I mean?

Stay gold, Pony Boy.

I'm currently 1/2 way through the book.

The way I do it is not to download the example files and type the code out by hand. Create your own and make some extra stuff up as you go along. I've been reading this book for maybe 4 days now and over 1/2 way and made a tone of my own little "games".

I tried to read it at first like yourself but you don't really learn unless you do it.

This works for me but not everyone.

This topic is closed to new replies.

Advertisement