How do you know if you have what it takes?

This may be a weird thread, but I really need some advice from experienced programmers. I'm a few years out of high school and considering life career options. Gaming is a big passion of mine (far beyond 'I like to play video games') and programming was always something I was good at in school and enjoyed. I took it every year and learned Turing, then VB, then Java in my final year. What we learned was pretty rudimentary, but I finished the class with a 100% final grade (and was the only one to do so).

I like programming, I like the constant challenge and the debugging, it suits my brain well. My problem is that I often am discouraged by my inability to figure something out, or do something I feel I should be able to. As an example, I'm on my second attempt at getting through Object Oriented Programming in C++ (the book with the fish cover). I came to the exercise that required a pyramid of *'s, X tall based on user input. I couldn't figure out how to make the program, and even after finding and downloading the code, I couldn't figure the logic on what exactly was going on in the program.

This really bruises my confidence and makes it hard to keep going. I feel like I should be able to not only understand, but make the program myself, but I just can't figure it out. This makes me question whether I really have what it takes to do this as a career. I also would like to get into the video game programming aspect, but my academic math skills aren't the greatest. I did alright in Physics, but when I peruse articles about advanced collision detection and making breakable objects and such, the math is beyond lost on me.

I'd like to go to College for programming and focus on the game development side, but the above factors make me question it. I skipped the above exercise in the book and am continuing on (although oddly much of it feels like a review, since Java is also OO. I know what classes and inheritance are, etc.), but this still gnaws at me.

Has anyone else had a similar feeling or experience? What did you do?
First of all, I'm not an experienced programmer, but I'm in almost literally the exact same position as you. It's as if I made this thread.

Anyway, from my limited knowledge, I'd give you a couple of tips:

1) Learn from multiple books / sources. I've got two massive C++ books, as well as reading online tutorials etc. I can get to chapter X and be thinking like there's no way I'll ever understand this, so I switch to the other book. It doesn't matter how far into that one I am (ie. if you've covered the section in the first book), it's revision and you find neat little things. Anyway, when you get stuck in book 2, switch back to book 1 and there's a chance you'll have a better understand of what's going on. If it's still a problem, continue with the book past that chapter and revisit it later on. I did this with recursion / Fibonacci because it went right over me. Overall though, when the books confuse me it's because of the math - not the language.

2) While coding, if you're trying to do something you can't, break it down a little or leave it for a later date and do something that's still challenging but you think you can tackle right now. I developed an RPG Boardgame a couple of years back, whose rules were in essence 99% pseudo-code. I've been trying to re-create it as a videogame (and for now, text adventure), and I'm surprised at how well I've done so far. If you've got a knack for logic even outside of code, and you take in the limitations of what a speciic C++ feature does (eg. Functions return one value but through referencing can 'return' multiple), you should do fine. Then once you learn the more advanced aspects of the language, revisit your program and upgrade it.


Kind of long winded, sorry about that. But yeah, I myself have a passion for gaming and have actually used your description of it in conversation before. I'm still not sure about college, but only because of my job. I say, if you really want to do this, college is a no brainer. You could even take a math class on the side. Just make sure that when you're programming, either take a break from something that's giving you a problem you can't solve, or break it down into chunks.
closed account (zb0S216C)
I'm not exactly experienced, but I do have at least 3 years of programming under my belt.

I too don't know the logic behind the pyramid exercise, but I find an example such as that irrelevant. I think of this way: When will I ever use the pyramid exercise in a real-world career? Never. It's just an exercise. Like I said, I too can't figure out the logic behind the pyramid exercise, but I write memory managers, algorithms, custom arrays, etc. As you would expect, these are far more complicated the the pyramid.

I don't exactly have a burning passion for game development, but I do have a passion of game engine development, not the game itself.

Wazzak
Just because you like playing games it doesn't mean you have to be good at programming them. Nothing to get your confidence bruised over, though. So maybe another programming area would suit you better, e.g. systems programming?

In fact what about trying out another language? C++ is quite difficult to master.
@WhiteWind: Doing 2 books at once might be kind of handy, I do also have the C++ Primer Plus (4th Ed). Maybe I'll also start doing those exercises and reading through it as well.

@Framework: That's good to hear. I hold myself to really high standards so hitting that bump was a big shot to my confidence, but maybe I need to learn to cut myself a break. That's actually probably a lesson I should be extending to every aspect of my life :P

@Catfish: Well if I'm doing programming I'd prefer it to be where my passion lies. There are a lot of facets to game programming, AI, engine, graphics, etc. I'm not sure where I'd fit yet.

If you mean systems programming as in general application programming, I tend to find that to be really boring. I made a few apps for my math teacher with Java and while designing the input/output/GUI area of it was interesting, the rest of it was really boring to make :P Conversely, when I made my very basic invaders-esque game in VB in grade 10, I had a blast.

I wouldn't want to really spend time on another language, because I know how prevalent C++ is. I've already learned the basics of VB and Java, and am familiar with most concepts of OOP. The only real new thing C++ brings (on a basics level, of course) are pointers. They were initially confusing, but I learned the concepts behind them years ago when I tried learning C++. Their syntax is mostly a mystery, but that's the easy part.

Thanks for the initial comments. I know you probably don't get many threads like this, but I really want to make it through this book to continue on to others and get a head start. It sounds like I'm probably just too hard on myself when it comes to stuff like this, which doesn't surprise me. I'm feeling a little rejuvenated so I think it's time to finish these structure and enumeration exercises and start on functions (which again is something I already understand so I'm mostly just learning syntax and quirks).
Last edited on
Games are generally not that different from normal applications though - of course when you are done the results are much more visible and also, unlike most applications, actually show-able - but in game programming you'd also have to do a lot of work that no one except you will ever see or appreciate too. Actually, that would probably be the portion of work you spend the most time on.
Yeah I'm OK with that, didn't mean to give the impression I wasn't (with the GUI comment). It was more about the puzzle of organizing the information in a presentable fashion that I enjoyed. I find everything is more enjoyable when you're passionate about it, even if the process alone isn't. If I code X to make a game, and that same X to make an office program, I'd enjoy it way more (and the product will probably be that much better) if it's the former.
Topic archived. No new replies allowed.