Skip to main content
GameDev.net gamedev.net
🔒 Locked

Is it impossible to become a programmer?

Started by CordFly Apr 3, 2008 at 1:45 AM 23 replies 6k views
Original Post
CordFly
CordFly
I have made several attempts over the years to learn programming. After months and months of studying and practicing, I find that I still cannot design and write a useful practical program. So, I get discouraged, and move on to new hobbies. However... I keep coming back to try again... and I think I know why. My dream- since childhood, is to become a computer programmer, and more specifically, programmer of video games. But for some reason, I cannot seem to grasp the field. Many people say 'programming isn't hard', that 'anyone can do it'... Well obviously... I can't. Has anyone else had similar experience, or know of a way to help me?
Possumdude0
Possumdude0
First tell us a few things. How did you try to learn programming? What kind of games have you tried to make or tried to learn how to make? What problems did you run into? What has stumped you about programming in the past?

We need information before we can help you, we aren't mind readers.
Poor little kittens, they've lost their mittens!And now you all must die!Mew mew mew, mew mew mew mew!And now you all must die!-Pete Abrams
ahayweh
ahayweh
Very few things in life are impossible... As far as coding goes , just start small , work slow ( need be ) and above all , be persistent. Set realistic goals for yourself given your experience and background. And you will be amazed at what you can accomplish.
jbadams
jbadams
Quote:
Original post by CordFly
So, I get discouraged, and move on to new hobbies.
There's your problem, you have to stick at it if you want to get anywhere. Anyone can learn to program. Some people will have more difficulty than others. Noone will pick it up without at some point facing difficulties and sticking with it rather than giving up.


Quote:
My dream- since childhood, is to become a computer programmer, and more specifically, programmer of video games.
Is your dream to be a programmer who creates videogames, or to create videogames? Depending on the games you wish to create you may be able to do so without programming, or with a simple scripting environment or language rather than fully learning to program. Software packages such as Game Maker, INFORM, 3d Game Studio and many others can allow you to create games using point&click interfaces or scripting rather than having to do all the programming yourself. Even packages such as these require you to stick with them if you want to learn to use them to their full capabilities however.



If you do really want to learn programming you're just going to have to stick with it. Practice as much as you can, read over all the learning materials you have available, and continue trying to build on your knowledge.

Hope that helps. [smile]
- Jason Astle-Adams
CordFly
CordFly
Quote:
Original post by Possumdude0
First tell us a few things. How did you try to learn programming? What kind of games have you tried to make or tried to learn how to make? What problems did you run into? What has stumped you about programming in the past?

We need information before we can help you, we aren't mind readers.



Sorry for not being more specific, but here's the details:

I tried learning through tutorials and books. I've tried going head-on and writing my own programs. I tried to make an adventure game. Problems I ran into: Couldn't design it. So I tried to code it, without pseudo code, and got stuck and lost and eventually gave up. I don't even know how to design.

What has stumped me about programming in past: How do things work behind the code itself? How to make code readable and reusable? And everything related to graphical programming is a complete mystery to me.
Possumdude0
Possumdude0
Quote:
everything related to graphical programming is a complete mystery to me.


If you use C or C++ I'd suggest checking out the Allegro library. It's easy to learn and has functions that make 2D graphics a breeze.

Quote:
Problems I ran into: Couldn't design it. So I tried to code it, without pseudo code, and got stuck and lost and eventually gave up. I don't even know how to design.


Sounds like a major problem you're having is with design. Try looking up some information on that.

Quote:
I tried to make an adventure game.


Start simpler. Make a basic Tetris or Breakout style game. Work your way up to the more complex games.
Poor little kittens, they've lost their mittens!And now you all must die!Mew mew mew, mew mew mew mew!And now you all must die!-Pete Abrams
PQYHW03Rn
PQYHW03Rn
If you don't manage to grasp C++, try C# for a while.
Once you get a hang of it, check out XNA and do something small and funny like a Pong-clone. Don't bother polishing it, just get the basics of it up and running.

Then you can move on back to C++ and check out the Game Creator's DarkGDK, a complete game development kit, including a DirectX 9.0c wrapper.
Rewrite your Pong-clone and move on to a Breakout-clone, before you do something like Space invanders.

The best part of XNA and DarkGDK is that it's completely free and aimed at beginners.

Send me a PM and I'll help you out.
neonic
neonic
Try taking a software engineering course at your local Community college (if they offer it, my local one does.)
Rocksy
Rocksy
Quote:
Original post by neonic
Try taking a software engineering course at your local Community college (if they offer it, my local one does.)


I definitely recommend this too. They're cheap, you can withdraw very late in the period if you hate the course, the books are usually inexpensive, and the classes are small. This is really a HUGE benefit, especially for classes where they teach you basic concepts like software design. You get a ton of one-on-one time and small group projects, and it's just a lot more focused than a huge lecture course from what I've found.

Right now I'm taking a software design and development course at my local college in addition to my regular university courses.. and I actually look forward to my design course every week. There are 6 people in the course and so we feel very comfortable asking questions and going over other topics that relate to our work. It's a great team environment, really, especially when compared to similar university courses with 50+ students per class with one professor and one very nervous TA.
Possumdude0
Possumdude0
I agree with the last two posts as well. Taking a class is much easier. I've found Java to be easier to learn than C++, mostly because I'm in a Java class and I had to teach myself C++.
Poor little kittens, they've lost their mittens!And now you all must die!Mew mew mew, mew mew mew mew!And now you all must die!-Pete Abrams
Stowelly
Stowelly
this article (had to find it in google cache as the propper link seems to be down)
pretty much sums it up http://66.102.9.104/search?q=cache:SHt7f6BhFjIJ:norvig.com/
http://stowelly.co.uk/
ibebrett
ibebrett
Most good programmers I know (I'm not counting people who do it for work, but could care less), and I mean people who think about CS and programming all the time, were programming before they knew what it was.

It comes so naturally to me that it feels like its been there forever. Not that I usually finish large projects. It seems to come naturally to some. I'm sure most people here on GameDev feel like this. For instance when you take a class in something you think, "yup thats what I would have done", "or that theorem confirms what ive been thinking.{

If you don't enjoy programming, maybe its not right for you. Not saying you are unintelligent, Ive met tons of people who don't enjoy it that are very very smart. Its not the only path towards creating games. Also 'equate game making with programming.
kiwibonga
kiwibonga
The majority of my CS classes were basically 3 hours of a professor reading his powerpoint presentations about for loops (which are available on the course website) with an undecipherable chinese/indian accent as the chick on the front row who can't even click a mouse keeps asking the same question worded differently every 3 minutes. My all time favorite class was the one where we learned assembly language with an instruction set for a machine that doesn't actually exist. We would write programs with a pen and paper, and the professor would execute them in his mind.

In a semester, you learn about as much as you would in 2 weeks of googling... The end result after 3 years of horribly difficult math and unbelievably boring lectures is a degree in programming console applications and crappy applets.

The only thing I regret is not dropping out sooner. It completely destroyed any interest I had in programming for about a year. It's only now, 3 years later, that I've decided to start a new project.

So I don't know.. You guys are either masochists, or maybe I just picked the wrong university... But I would never recommend programming classes to anyone unless I really, really wanted them to experience hell :P

I like that link Stowelly posted -- that's perhaps one of the hardest things to get used to... There's a large gap between the moment you start learning and the moment you have a program that other people will be able to use and enjoy for more than 30 seconds. In the meantime, you'll have written dozens of programs than never really led anywhere or were just you "trying things." It's pretty much inevitable.

One game that is remarkably easy to program that was my first "project" was a clone of Dope Wars. It was on a casio calculator, and created quite a sensation at school, if I may say so myself. Those were math classes well spent! If you're looking for a simple first "real" program, I recommend doing that (not on a Casio calculator though, those things suck).
ibebrett
ibebrett
I've never taken a programming class, but I've taken computer science classes such as Computation, Algorithms etc...

Luckily I placed out of the two introductory programming classes you normally have to take, but I have TAd them and they were so horrible I had to basically teach people myself when it came to lab work.

So yeah, it probably comes down to what kind of class and whether your professor is any good
dmatter
dmatter
C++ has never really been a beginners language and it's non-trivial to make graphical games with it really, although the SDL helps.
I'd recommend Python as the language with Pygame as the games API.
stonemetal
stonemetal
I suggest python and pyglet as a starting point but the problem you are having is with design not language details.
Quote:
What has stumped me about programming in past: How do things work behind the code itself?
This is mostly a question of focus. At some point you have to say who cares, the mystical fluffy bunnies take care of it, otherwise you need to enroll in a good electrical engineering program
Quote:
How to make code readable and reusable?
That is easy make it usable first, then modify it so that it applies to a new situation. The first step is trying to not hard code assumptions.
redattack34
redattack34
Quote:
Original post by CordFly
I tried learning through tutorials and books. I've tried going head-on and writing my own programs. I tried to make an adventure game. Problems I ran into: Couldn't design it. So I tried to code it, without pseudo code, and got stuck and lost and eventually gave up. I don't even know how to design.

Sounds like you took on more than you could handle. If you want to learn programming, take it slow. I've been learning programming on and off for 4-5 years now, I still wouldn't say that I'm anything past an amateur. I find that learning how to program well is more of a mindset than an actual skill, at least at the beginning (you need the mindset before you can get the skill easily). This is obviously going to differ for everyone, but I recommend taking physics and/or math courses if you can, even if you don't plan to use them. In my experience, at least, solving physics problems requires a very similar thought process to solving programming problems (and the physics/math knowledge will help in game programming).

Quote:
What has stumped me about programming in past: How do things work behind the code itself?

If you want the basics, look up the Von Neumann architecture. Beyond that, either take some electrical engineering courses, assume that a wizard did it, or just ignore it (this is what I do). I strongly recommend either of the latter two, at least until you get to a level where you're advanced enough that it actually matters.

Quote:
How to make code readable and reusable?

Good formatting can do wonders for code readability (and it makes it easier to write and debug code too).
Here's a link to a good article.

Quote:
And everything related to graphical programming is a complete mystery to me.

This is another instance of "take it slow and set reasonable goals." It's very difficult to do graphics until you have a solid understanding of programming without graphics, though there are libraries like SDL that simplify it hugely. I still recommend learning to program well before you start using SDL, though.

Quote:
So, I get discouraged,

This, right here. Don't do this. Really, the number of programs I've written that had bugs which seemed (at the time, anyway) unsolvable... I've rewritten whole programs because I couldn't find that one compiler error (this was a long time ago, before I figured out that indenting code makes it easier to read and to debug). Really, this comes down to persistence and reasonable goals.
Anon Mike
Anon Mike
Quote:
Original post by Possumdude0
Quote:
I tried to make an adventure game.


Start simpler. Make a basic Tetris or Breakout style game. Work your way up to the more complex games.


A small text only adventure game isn't that bad - especially if the input isn't free-form and you've only got a small menu of options to select from. Although I can easily imagine a beginner having problems. On the graphical side I'd say both Tetris and Breakout are more complex than I would want to do as a very first project.

If you really want to do a graphical game start with Pong. In the beginning don't even have paddles. Just have four walls that the ball bounces off of. Once you've got that then you can take out two walls and put in paddles.
-Mike
Renahzor
Renahzor
Quote:
Original post by kiwibonga
The majority of my CS classes were basically 3 hours of a professor reading his powerpoint presentations about for loops (which are available on the course website) with an undecipherable chinese/indian accent as the chick on the front row who can't even click a mouse keeps asking the same question worded differently every 3 minutes. My all time favorite class was the one where we learned assembly language with an instruction set for a machine that doesn't actually exist. We would write programs with a pen and paper, and the professor would execute them in his mind.


I had the same experience at my university. 2.5 years into a CS/CE degree I swapped majors, and then left the school a while after. The worst part was having the same professor for every CS class, and not really learning anything. the first semester was a complete rehash of everything I taught myself in highschool, and was not allowed to move up because I hadn't taken Calc in highschool. In my later classes everything moved way too slow, and I never absorbed important points because of it.

We spent over half of my third semester class lectures listening about the differences in speed and efficiency of merge sort versus bubble sort methods. Namely, he went over the entire mathematical average and worst case scenarios over the course of about 40 lecture hours. I agree this is an important point, however it didnt justify so much class time and by half way through the class I was completely uninterested. By the end of the second year, I decided I never wanted to work in a programming field.

Now 4 years removed from college, I started to re-teach myself with books and online how to's. Ive gone in with the mindset of doing it as a hobby. Ive found it very easy to learn this time around, and I can move at my own, comfortable pace. I can skip ahead, and learn to use something I dont understand yet, and I can go back and re-learn anything I find useful or necessary to continue. I play with modding other games, as well as tools like GameMaker when im in a designing mood, and do some simple programming when I want to do that. Its all about knowing how you learn and going from there. :)
capo328
capo328
I recommend starting with tic tac toe using ASCII characters. It really isn't too hard and can be done easily without creating objects if that is a bit too advanced. All in all, just keep at it and practice what you learn so that it gets stuck in your mind.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.