So you want to be a programmer? Well I can help with that.

I was listening to the Tested Oktoberkast again, and ran across Will and the others discussing programming, and how they'd tried it in college but ended up getting frustrated and quitting. They lamented the fact that you had to know so much math and other difficult stuff, and it bummed me out. Then it made me a bit angry. Not because they were wrong (they were), but because I remember thinking the same way three years ago, as I was applying to a university to study computer science. I thought to myself I could never really do it, because I've always sucked at math and you had to know a lot of math and other difficult shit, right? WRONG!

Three years later my indie games development team and I have released six games, five of which were coded in part or fully by me. I've coded up several tools to help me in my daily tasks, both on my desktop computer and mobile devices. I'm fluent in Javascript, Python, Java, C# and a bunch of other languages. Sounds impressive and difficult, right? Well it's not difficult! First off, let's bust some programming myths.

MYTH 1: You have to be REALLY good at math.

Bullshit. True, if you want to be the next John Carmack and code up 3D engines, you have to be fucking awesome at math. If not, it's really not that important. You have to understand the concepts, especially if you want to get into games development, but here's the fun thing: you don't have to do the actual math. That's what we have computers for! True, you have to understand what vectors and quaternions are, but you don't have to know those things NOW. You'll look them up when you need them, and surprisingly you'll be able to learn the concepts really quickly, because you have an immediate and fun application for those skills.

MYTH 2: Learning to program is really hard

Bullshit. Learning to program is easy as piss. The difficult part is learning to THINK like a programmer. This is called algorithmic thinking, and it's a fancy way of saying "you need to know how to break down abstract concepts into simple logical steps a computer can follow". And to be perfectly honest, this is not something everyone can do. I've seen people who just can't bend their brains to this kind of thinking, and it will always trip them up. But if you can do it -- and chances are you can -- the next step is surprisingly simple.

I know programming seems really hard on the surface. Code isn't always easily readable, there's lots of strange terms and words everywhere and the syntax seems crazy. But it's not as bad as all that. Most modern programming languages follow the same general rules, so once you learn one object-oriented language, you can learn the syntax for others pretty quickly. And remembering the thousands of different commands? Don't worry about it: you're not meant to know it all by heart. That's why we have big libraries full of API references. The idea is that you look up precisely how what you need works, and then after a couple of uses, you'll remember it. It's like learning any other language: nobody knows all the words at first without using a dictionary!

MYTH 3: Even if I learn to program, I can't make games

Bullshit. Making games has NEVER been as easy as it is now. Freely distributed tools like Unity and XNA take the tough part -- the engine -- out of your hands and leave you with the fun stuff: coding up your actual game. XNA only supports my favourite language, C#, but you can code games in Unity with a variety of languages, including Javascript, which is the coding equivalent of a kiddie bike with training wheels on, riding a rail.

Of course someone will have to make the 3D models or paint the sprites your game will use, but that's not your problem: you're the coder. And trust me, because many people believe that coding is something only geniuses or madmen can do, people will be tearing your underwear off trying to get you to join their teams.

Here's how to do it:

So now that we know coding is actually something you could realistically probably do, how do you actually go about it? Well, here's how I did it: I went to university. Imagine sad trombones here going "womp womp", right? Don't be too hasty. About 90% of what I've learned is stuff you don't have to worry about unless you actually want to code shit for a living, and possibly not even then. You can learn the important stuff yourself, and really easily.

The Internet is full of guides, manuals, courses, exercises and other tools which will help you learn the actual art of programming. The big tip is not getting discouraged too easily. It will seem daunting at first, but if you pace yourself, you'll get it in no time. If I had to do it all over again, here's how I'd do it:

1. Learn a simple language, like Javascript or Python. They are both extremely easy as far as syntax goes but still allow you to do all kinds of fun stuff. The idea is to use these languages to get used to thinking like a programmer. Taking a task, breaking it down to logical steps and then executing these steps. The net is full of fun guides you can use to learn what methods, arguments, return values and other such things are.

The additional benefit is that both languages are VERY useful. Python is a widely used scripting language, Javascript is used in literally hundreds of thousands of websites AND is one of the languages Unity uses! So you can take what you learn here and start making games!

2. Once you feel comfortable, stretch your wings a bit. Look into a more structured, strongly typed language like Java or C#. The fun thing here is that both are EXTREMELY similar as far as syntax so once you know one, you can learn the other in literally a day. These languages are hugely powerful and extremely useful: Android phones use Java natively, Windows Phone 7 (and anything Windows related, and Unity) uses C#, so you'll have a whole new world ahead of you. C# also gives you a good launching off point to learning Objective-C, which is what Apple devices use, and C++, which is what the gaming world uses.

I wouldn't recommend starting off with either of these languages, as they are a lot more formal than Python or Javascript. Mastering them is essential later on, but if you try to jump into them immediately, chances are you'll get frustrated and walk away.

3. Always do something fun. Programming is a skill like any other. You won't learn it unless you use it, so always be coding. You'll learn the basics really quickly, and after that only your imagination is the limit. Try to think of fun applications you could use yourself. Not only will you constantly learn new things, but you'll keep yourself interested, because what you're doing is fun.

I coded up my first game, a simple text-based hockey manager game, in Java after a couple of months of learning, and I could've done it earlier if I'd believed in myself more. The secret to programming is that you're not supposed to know everything ahead of time. When you come across something you don't know, look it up and learn. Don't get bummed about what you don't know, get excited because you're about to learn something new!

This blog post is long as shit, and I applaud you if you made it all the way to the bottom. I could've condensed this all down to this: if someone tells you that programming is too hard for you, call them a lying piece of shit, because that's what they are. It's a skill you can learn if you apply yourself, and it's a skill you absolutely SHOULD learn. Even if you don't make a profession out of it, you'll find no end of uses for your new skills. If you think playing games is fun, you should try making them. And I really mean that: you really, really should.

On the off chance that someone actually read all the way to the bottom, if you have any questions at all, I'll be happy to answer them. I'm not John Carmack, but I am a guy who learned to program after thinking for most of his life that he couldn't.

69 Comments
70 Comments
  • 70 results
  • 1
  • 2
Posted by soralapio

I was listening to the Tested Oktoberkast again, and ran across Will and the others discussing programming, and how they'd tried it in college but ended up getting frustrated and quitting. They lamented the fact that you had to know so much math and other difficult stuff, and it bummed me out. Then it made me a bit angry. Not because they were wrong (they were), but because I remember thinking the same way three years ago, as I was applying to a university to study computer science. I thought to myself I could never really do it, because I've always sucked at math and you had to know a lot of math and other difficult shit, right? WRONG!

Three years later my indie games development team and I have released six games, five of which were coded in part or fully by me. I've coded up several tools to help me in my daily tasks, both on my desktop computer and mobile devices. I'm fluent in Javascript, Python, Java, C# and a bunch of other languages. Sounds impressive and difficult, right? Well it's not difficult! First off, let's bust some programming myths.

MYTH 1: You have to be REALLY good at math.

Bullshit. True, if you want to be the next John Carmack and code up 3D engines, you have to be fucking awesome at math. If not, it's really not that important. You have to understand the concepts, especially if you want to get into games development, but here's the fun thing: you don't have to do the actual math. That's what we have computers for! True, you have to understand what vectors and quaternions are, but you don't have to know those things NOW. You'll look them up when you need them, and surprisingly you'll be able to learn the concepts really quickly, because you have an immediate and fun application for those skills.

MYTH 2: Learning to program is really hard

Bullshit. Learning to program is easy as piss. The difficult part is learning to THINK like a programmer. This is called algorithmic thinking, and it's a fancy way of saying "you need to know how to break down abstract concepts into simple logical steps a computer can follow". And to be perfectly honest, this is not something everyone can do. I've seen people who just can't bend their brains to this kind of thinking, and it will always trip them up. But if you can do it -- and chances are you can -- the next step is surprisingly simple.

I know programming seems really hard on the surface. Code isn't always easily readable, there's lots of strange terms and words everywhere and the syntax seems crazy. But it's not as bad as all that. Most modern programming languages follow the same general rules, so once you learn one object-oriented language, you can learn the syntax for others pretty quickly. And remembering the thousands of different commands? Don't worry about it: you're not meant to know it all by heart. That's why we have big libraries full of API references. The idea is that you look up precisely how what you need works, and then after a couple of uses, you'll remember it. It's like learning any other language: nobody knows all the words at first without using a dictionary!

MYTH 3: Even if I learn to program, I can't make games

Bullshit. Making games has NEVER been as easy as it is now. Freely distributed tools like Unity and XNA take the tough part -- the engine -- out of your hands and leave you with the fun stuff: coding up your actual game. XNA only supports my favourite language, C#, but you can code games in Unity with a variety of languages, including Javascript, which is the coding equivalent of a kiddie bike with training wheels on, riding a rail.

Of course someone will have to make the 3D models or paint the sprites your game will use, but that's not your problem: you're the coder. And trust me, because many people believe that coding is something only geniuses or madmen can do, people will be tearing your underwear off trying to get you to join their teams.

Here's how to do it:

So now that we know coding is actually something you could realistically probably do, how do you actually go about it? Well, here's how I did it: I went to university. Imagine sad trombones here going "womp womp", right? Don't be too hasty. About 90% of what I've learned is stuff you don't have to worry about unless you actually want to code shit for a living, and possibly not even then. You can learn the important stuff yourself, and really easily.

The Internet is full of guides, manuals, courses, exercises and other tools which will help you learn the actual art of programming. The big tip is not getting discouraged too easily. It will seem daunting at first, but if you pace yourself, you'll get it in no time. If I had to do it all over again, here's how I'd do it:

1. Learn a simple language, like Javascript or Python. They are both extremely easy as far as syntax goes but still allow you to do all kinds of fun stuff. The idea is to use these languages to get used to thinking like a programmer. Taking a task, breaking it down to logical steps and then executing these steps. The net is full of fun guides you can use to learn what methods, arguments, return values and other such things are.

The additional benefit is that both languages are VERY useful. Python is a widely used scripting language, Javascript is used in literally hundreds of thousands of websites AND is one of the languages Unity uses! So you can take what you learn here and start making games!

2. Once you feel comfortable, stretch your wings a bit. Look into a more structured, strongly typed language like Java or C#. The fun thing here is that both are EXTREMELY similar as far as syntax so once you know one, you can learn the other in literally a day. These languages are hugely powerful and extremely useful: Android phones use Java natively, Windows Phone 7 (and anything Windows related, and Unity) uses C#, so you'll have a whole new world ahead of you. C# also gives you a good launching off point to learning Objective-C, which is what Apple devices use, and C++, which is what the gaming world uses.

I wouldn't recommend starting off with either of these languages, as they are a lot more formal than Python or Javascript. Mastering them is essential later on, but if you try to jump into them immediately, chances are you'll get frustrated and walk away.

3. Always do something fun. Programming is a skill like any other. You won't learn it unless you use it, so always be coding. You'll learn the basics really quickly, and after that only your imagination is the limit. Try to think of fun applications you could use yourself. Not only will you constantly learn new things, but you'll keep yourself interested, because what you're doing is fun.

I coded up my first game, a simple text-based hockey manager game, in Java after a couple of months of learning, and I could've done it earlier if I'd believed in myself more. The secret to programming is that you're not supposed to know everything ahead of time. When you come across something you don't know, look it up and learn. Don't get bummed about what you don't know, get excited because you're about to learn something new!

This blog post is long as shit, and I applaud you if you made it all the way to the bottom. I could've condensed this all down to this: if someone tells you that programming is too hard for you, call them a lying piece of shit, because that's what they are. It's a skill you can learn if you apply yourself, and it's a skill you absolutely SHOULD learn. Even if you don't make a profession out of it, you'll find no end of uses for your new skills. If you think playing games is fun, you should try making them. And I really mean that: you really, really should.

On the off chance that someone actually read all the way to the bottom, if you have any questions at all, I'll be happy to answer them. I'm not John Carmack, but I am a guy who learned to program after thinking for most of his life that he couldn't.

Posted by timlump

I am a final year computer engineering student and I approve this message.

I made my first proper real game during the summer called Survival Trail for Android, it has barely sold and it's far from perfect but that's not the point, two years previously it would have been unthinkable. I remember being stumpted by how to compile a simple console program.

I always found it appalling that so many of my class mates (it was 2 years of general engineering first) were so dismissive of programming and found it the hardest exam. Granted if you hate it, you are going to find it next to impossible to learn how to program BUT if you want to then you WILL.

If you have that passion, nothing will stop you. Just try and find a reason to use programming for everything e.g. need to do some complex but repetitive maths for homework? Write a program to do it for you. Eventually you will be able to build layer upon layer onto your knowledge and before you know it you will be producing large complex programs.

Posted by ShockD

Thanks for clearing the things out.

Posted by Buscemi

I've seen this post before. Either I have travelled forward in time and then back here or this is a repost.

Posted by ch3burashka

What's your indie studio, you cocktease? Might as well pimp your shit.

I took a Java course in 12th grade and couldn't bend my mind around "algorithmic thinking". However, that was probably 'cause I was lazy. I'm considering getting deep into some C books and trying my damnedest to succeed this time, probably this winter break.

Only one question: what language should I start with/actually program with? I would like to start implementing ideas ASAP, but I don't want to spend time with useless (or less useful) languages.

PS An older friend of mine told me that "back in his day", his programming class counted towards his "foreign language" credit.

Posted by Mordi

I started off using Game Maker, which includes drag-and-drop and a simplified programming language. I think it's great because as a kid, I was having fun the the drag and drop functions, and I was able to make simple games with it. As time went on, I got a need to do more advanced things, so I learned the written language (GML). A few years ago I started learning C#, and now I can make games using more advanced languages.

Posted by FluxWaveZ

I'm taking an intro. to programming class for my first Cegep semester (we're learning Java) and, to be honest, it's kind of bumming me out. I'm not sure if it's because of my shitty teacher (he is shitty and everything I learned was practically learned from the book and not himself) or what, but I'm finding it to be kind of boring. It's only been a bit more than a month since the semester started, though, and maybe I just need to engage myself more when I need to work on assignments.

Posted by LordXavierBritish

What if I am not algebra enough to program.

Posted by Dagbiker

I like programing, but i dont want to hate it, so i didnt make it my living.

Posted by timlump

@CH3BURASHKA: I would say start with Java. It's incredibly well documented and pretty portable.

Here is the official Java tutorial - http://download.oracle.com/javase/tutorial/

Here is the documentation - http://download.oracle.com/javase/1.5.0/docs/api/

Go through the tutorial at a nice steady pace and when you are done you should know a very nice bit of programming.

Once you know Java, it is simple to hop over to c# and once you get your head round some of the differences in C and C++ you can hop over to them.

Posted by timlump

@FluxWaveZ: It is very rare to get a good teacher. The assignments are how you learn. Work on them and you will be fine, don't expect your teacher to (ironically) teach you anything.

Edited by soralapio

@CH3BURASHKA said:

What's your indie studio, you cocktease? Might as well pimp your shit.

No real studio, we're far too indie (and student) for that, but two of our more recent games can be found at http://typehard.haxor.fi and http://funkenstein.haxor.fi

Edited by soralapio

@timlump said:

@FluxWaveZ: It is very rare to get a good teacher. The assignments are how you learn. Work on them and you will be fine, don't expect your teacher to (ironically) teach you anything.

Precisely. I skipped 95% of my programming lectures, because they consisted of a dude coding at his computer or taking an hour and a half to explain what it means when a method returns something. I did the assignments, I did a bunch of extra work, I learned programming.

In this way I'd say programming is a lot like maths: you don't learn it in the classroom, you learn it by doing.

Posted by FluxWaveZ
@timlump@soralapio: That actually makes me feel better about it. I think I was too stuck on the concept of trying to learn from attending classes, although I've not been learning much there.
Posted by timlump

@FluxWaveZ: Yeah, the only way to learn is through doing.

Anyway the most important thing is where do you look if need more information:

Firstly: Java is one of the best (BY FAR) documented languages and is packed with libraries to do almost anything. Just CTRL-F and browse away here.

Secondly: If you ever have a problem, someone else has had it too, go here to see what they did : StackOverflow

Thirdly: If you want to see what language to learn for a particular task, go to RossetaCode It has lots of different task performed by lots of different languages so it makes it very easy to compare the syntax and see which ones you want to waste your time with.

Posted by BlameGamer

Java is for old programmers working on their retirement. Cool kids use C# or Ruby. MVC3 and Rails is where it's at baby. None of this jBoss horseshit! :D

Posted by groin

@BlameGamer said:

Java is for old programmers working on their retirement. Cool kids use C# or Ruby. MVC3 and Rails is where it's at baby. None of this jBoss horseshit! :D

That might be true for app/web development but the coolest dudes work on system level stuff with C/C++.

Posted by EthanML

I'm a second year CS student and I love programming but I'm always afraid I won't be able to get in to it as a career because of issues such as the maths one, so posts like this are always great to read and inspirational for me. Thank you sir, and well written. I'mma follow you now so keep up the interesting programming blogs ;)

Posted by tourgen

you could just pick up a copy of http://en.wikipedia.org/wiki/The_C_Programming_Language and one of the free C compilers and bam, there you go.  Work thru the book.  It's short.  Then add SDL or Alegro to start moving some sprites around in a window.
 
Not a fan of Python personally.  Kind of a mess of a syntax.
 
But if the goal is to someday make awesome games please listen:  forget programming.  Learn to draw, paint or even model 3D objects.  Learn some music theory.  Learn what makes a great written story and how to pace a story.  Story boarding, board game systems, game theory.  Games are about the art.  with toolkits like Unity or a modding kit the programming is really secondary to what makes an awesome game.

Posted by SSully

I approve of this message as well. While I am not nearly as good as I want to be, I am getting there. I hated math my whole life, and when I decided I wanted to study computer science in college I was terrified. I kept hearing how you needed to be a math whiz and all this shit, and I decided to ignore those comments and try. Well I am acing all of my programming classes and understand everything that is thrown at me. I still have to take math classes though, which are a complete struggle for me. But I am making it through!

Posted by soralapio

@BlameGamer said:

Java is for old programmers working on their retirement. Cool kids use C# or Ruby. MVC3 and Rails is where it's at baby. None of this jBoss horseshit! :D

The nice thing about Java is that as FluxWavez says, it's got amazing documentation, and once you've learned it, you can move to C# in literally a day or two.

@SSully said:

I approve of this message as well. While I am not nearly as good as I want to be, I am getting there. I hated math my whole life, and when I decided I wanted to study computer science in college I was terrified. I kept hearing how you needed to be a math whiz and all this shit, and I decided to ignore those comments and try. Well I am acing all of my programming classes and understand everything that is thrown at me. I still have to take math classes though, which are a complete struggle for me. But I am making it through!

Haha, I'm right there with you. The only classes I need to complete my bachelor's degree (besides actually writing my thesis, which I currently am, about applying agile methods to game development) are my mandatory math classes. I mean they're not that complicated, but ... effort.

Edited by soralapio

@tourgen said:

But if the goal is to someday make awesome games please listen: forget programming. Learn to draw, paint or even model 3D objects. Learn some music theory. Learn what makes a great written story and how to pace a story. Story boarding, board game systems, game theory. Games are about the art. with toolkits like Unity or a modding kit the programming is really secondary to what makes an awesome game.

Well yes, you need to know more than programming, but programming is a great skill to have, even if you want to design games. It helps to understand even a bit of what you're working with. It helps curb the most outrageous requests :)

Of course the reality of indie and individual game design is that everyone wears multiple hats. In our games I design, I write, I storyboard, I do art and I program. But that's not all. You say programming is secondary, but it's also absolutely mandatory. Unless you want to make board games, someone has to program the things. And if you want to make YOUR dream game, chances are it's going to be you.

EDIT: In any case, whether someone agrees or disagrees with me, I'm glad to see discussion on the topic. My intention was to demystify programming and bust the myth that it's something only a literal genius can do.

Posted by Branthog

I think a big part of the problem is that some people want to go into computer science and some want to be programmers, but most institutions just have "computer science". Programming is a tool of the computer scientist, but a computer science and programming are largely completely different professions in the same way that a general practice doctor and a cancer researcher are different professions. So, you end up with people whose ambitions are one or the other being smashed together into a curriculum that doesn't necessarily cater to them.
 
Also, you couldn't be more right about the math aspect. If you're going into computer science, sure, math will probably be much more important. For most programmers, however, it's trivial. Basic algebra will get you almost everything you need. 
 
As for game design? Well, it's an entirely different industry than mine, but my take on it is that programmers are extremely vital. Not secondary. You need a clever and experienced coder if you want to push engines to their limits or make them do things they don't do out of the box. Without solid programmers, you're basically a guy using MS Frontpage to design your website. Only, you know, with a game engine.
 
However, they usually don't have the creative input. If what you really want to do is "make games" and you're not going to be an indie dev, then you want to be an artist of some sort. Or a project manager, I suppose. Of course, everyone else wants to do that stuff, too  . . . so enjoy the over-saturated market if you aim for that. Indie devs can't afford to have twenty guys designing a game and twenty other guys sculpting it into reality, so that's where you'll more often see the programmers also being the designers.

Posted by Lunar_Aura

Great thread. I didn't find Java that easy back in college but I do want to program something non-game related in the future.

@Branthog: Isn't the entire games industry oversaturated?

Posted by Branthog
@Lunar_Aura said:

Great thread. I didn't find Java that easy back in college but I do want to program something non-game related in the future.

@Branthog: Isn't the entire games industry oversaturated?

I completely agree, but I suspect that "guy who draws character models" is far more saturated than "guy who refines rendering engine and creates custom engine extension to make Unreal Engine do some crazy shit". I don't have anything factual to base that statement on. Just a feeling.
Posted by timlump

@Branthog: Well a lot more people fancy themselves as artists than programmers.

The games industry is reasonably oversaturated but I am planning on taking a stab at it. On the plus side in little under a year I will have a computer engineering degree under my belt and should be able to fall back on programming non-game related stuff if my dream plan falls through.

Actually, I would recommend learning general programming rather than game specific programming. It is reasonably straight forward to jump over to game programming from a general programming background but not so easy the other way round as everything you do will be focused around game design.

Posted by drewbert

I learned Processing in school and loved it. If you just want to learn how to program and get things on screen quickly, it's a great place to start. The syntax is really easy and straightforward, and the concepts you learn will help you develop that "algorithmic thinking" soralapio was talking about. The website has a ton of great tutorials and the community is really nice and helpful.

Processing is more of a prototyping language than anything, rather than something you would use to code an actual modern console game. We used it to create weird artistic visualizations and interactive stuff (including some Flash-type games). More examples here.

Processing skills also translate well to Arduino, which uses a Processing-based development environment, in case you want to incorporate circuit boards into your projects.

Staff
Posted by soralapio

@Lunar_Aura said:

Great thread. I didn't find Java that easy back in college but I do want to program something non-game related in the future.

@Branthog: Isn't the entire games industry oversaturated?

Depends on what you want to do. There are "idea guys" up the ass and art dudes are dime to a dozen, but there's still room for highly skilled individuals. But the thing I learned most of all when interviewing industry types for a paper was that it's important to have a good portfolio, but even more important to be a good guy. Your skills can be refined, but if you're a cock nobody wants to work with you.

Posted by Vodun

@Branthog said:

so that's where you'll more often see the programmers also being the designers.

AAAH! THE PAIN! KILL IT WITH FIRE!

Posted by soralapio

@drewbert said:

I learned Processing in school and loved it. If you just want to learn how to program and get things on screen quickly, it's a great place to start. The syntax is really easy and straightforward, and the concepts you learn will help you develop that "algorithmic thinking" soralapio was talking about. The website has a ton of great tutorials and the community is really nice and helpful.

I don't have experience with Processing, but it's as good a choice as any for getting started: learning the right frame of mind and the right thinking patterns aren't language specific, it's a universal skill.

Also it's worth emphasizing the "getting things on screen quickly" bit in your post. When I got started with game development, we tried to make our own game engine in C++ and it was a horrible mistake. You have to code for ages before you get any sort of visible reward for it. Contrast this with XNA or even Unity, where you will have something to show for your work in minutes. It's so much more rewarding.

Posted by Juicebox

I approve.

Posted by Little_Socrates

I'm working through a Javascript course. Unfortunately, I simply don't have the ENDURANCE to code well. After about 45 minutes, I develop a very severe level of tunnel-vision, keeping me from analyzing my program for why it's not working. :(

Posted by soralapio

@Little_Socrates said:

I'm working through a Javascript course. Unfortunately, I simply don't have the ENDURANCE to code well. After about 45 minutes, I develop a very severe level of tunnel-vision, keeping me from analyzing my program for why it's not working. :(

Don't get depressed if your code doesn't compile immediately. Empirical studies have shown that most coders require a bit of a repeat lap after getting bounced by their compiler.

Also, coding is like any other creative work. If you're not feeling it, you're not feeling it and there's no use trying to force it. Your code will be shit. The trick is to find something that focuses you and gets you in the zone. Listen to music, listen to podcasts, grab a drink. I've coded some of my best stuff while lightly buzzed ;)

And of course when you find yourself getting frustrated, step away from the keyboard and play a game, read a book, talk to a loved one or take a walk, then come back to it with renewed vigor.

Posted by timlump

@Little_Socrates: Then take a break and come back.

Posted by Little_Socrates

@soralapio: @timlump:

It's actually not a matter of depression at the code not compiling, it's at how long the break needs to be (about 2 hours) before I can, say, cause data to be assigned and corrected appropriately before repeating my loops. I know that will probably get better with time, but that's far too long to do coding as anything serious. Not that I especially wanted to, though, I just wanted to learn what I could about coding.

Posted by theguy

I took a Saturday morning class at the University here, it was free and taught by the professor of Computer Science. I learned some fundamental algorithms in C and then proceeded to completely stop programming and never use them again. Still if I ever want to find all the primes up to a million.....

Maybe ill get back into it a some point.

Edited by mnzy

I'm not a programmer, I just do it on the side now in college but atleast I just wrote a 1.0 in my course which I would've never believed a few years ago.
Languages to start are a difficult subject.
We had to learn some C in high school and later I had to use it again and even some Haskell. We had to write a fucking C-Compiler in Haskell for learning purposes. That's how stupid teachers can be. But atleast it makes everything easier now.
I have had several teachers on this subject in my life and only one was good. We made a Snake-clone in C and I still like what I made there.

But anyway, this is how I felt later:

Posted by Brodehouse

Hrm.  This is a promising read.

Posted by Trylks

@timlump said:

I am a final year computer engineering student and I approve this message.

I'm a PhD student on AI, and so do I.

All the units that I studied in the grade could be explained in a 9 minute video in youtube if the video is good and combines narration with the visual presentation correctly. Even some courses as a whole could be contained in a single video of 9 minutes.

I never did a game, though, I'm more interested in AI than games, so please tell me when the games are really pushing the boundaries of AI, I'll work for food.

Posted by ShaneDev

When on the Octoberkast did they discuss programming? A rough estimate should be enough for me to find it.

I agree Maths is not a requirement. I was pretty shitty at maths before starting my course but there hasn't been anything really difficult and nothing necessary for programming. I did do some maths for cryptography but that was well taught and I kinda enjoyed it. With myth 2 it's about taking it slow and getting into each part bit by bit. Most importantly it's about understanding each bit before you move on. I've seen this happen to a couple of people where they don't learn the basics and it makes it much harder for them down the road. Once you understand programming making games is an easy step, even if the games aren't mind blowing XNA is a good start.

Once you understand one OO language you can get a better grip on the rest of them. For me personally though lectures and lecturers were vitally important in me getting to grips with programming and the concepts of programming so I disagree with people here on that one but the initial post is a pretty good at dispelling the myths of programming. I initially really didn't like programming but I stuck with it and now I enjoy it even if I am average at it.

Edited by awe_stuck

1. You dont have to be really good at math:

You just have to be able understand arguments and loops -ie advanced algebra.

2. Learning to program isnt hard:

Have you ever tried Basic? Or, Turing. How about HTML.

3. Programming Professionally is hard:

C programming, Java when made visually is not easy sauce. Luckily they have tools such as:

Level editors, Visual Basic.

They also have people to help such as: animators.

Want proof computer science isnt that hard - (generally referred to as programming) its taught in college at intermediate levels.

4. Programming in University can be difficult:

Ever wanna know about racism, join a computer science class. The people you compete on the bell curve all have IQs well above 130, these guys do not go to bars every weekend getting wasted. These are the guys who got 95 in high school math without noticing.

Posted by joey

Yeah Im in 12th grade and I'm learning java in my AP computer science class.

So although my opinion is a little biased, I think Java is a good starting language

Posted by soralapio

@theguy said:

I took a Saturday morning class at the University here, it was free and taught by the professor of Computer Science. I learned some fundamental algorithms in C and then proceeded to completely stop programming and never use them again. Still if I ever want to find all the primes up to a million.....

Yeah, that's precisely the problem. Was that fun? I'd bet not! Something like Javascript or Python, or even straight up Java will get you into programming and doing fun things you can actually use a lot faster than a C algorithm class, which sounds something I wouldn't enjoy and I'm about to get a degree in computer science.

Edited by ChrisTaran

Sure, you don't have to be really good at math, but for me Algebra is complete and utter incomprehensible gibberish. So that kind of instantly disqualifies me.

I have to take a medium level and then advanced math class for my college curriculum. I expect those 2 classes to be my first failing grades (or grade under an 'A') of my entire college career.

Math is quite possibly the most evil and complex thing I have ever encountered in my life. I have no problem with complex logic, but math is all memorization. Can't memorize that formula for the test? Doesn't matter how well you are at logic, you're failing that test.

(Sorry, but math and people who fail to use their turn signals are about the only 2 things on the planet that can send my blood pressure skyrocketing...)

Posted by soralapio

@ChrisTaran said:

Sure, you don't have to be really good at math, but for me Algebra is complete and utter incomprehensible gibberish. So that kind of instantly disqualifies me.

Not really it doesn't. I program a whole bunch including games and such and I can't remember the last time I had to do any significant math. Sure, there's a whole hell of a lot of math going on behind the scenes, but most of it is abstracted to such a point where you basically just have to understand what you're working with. For instance, if you're doing 3D games in Unity or something, you'll need to get familiar with quaternions, which are basically complex numbers used to map co-ordinates in three dimensional space.

Sounds complicated, right? It probably is! But all we need to know is what they do (see above) and the format the relevant methods accept arguments. All the math happens behind the scenes.

I'm TERRIBLE at math and actively dislike doing it. I'm still programming stuff all the time. Give it a shot!

Posted by Mageman

I'd argue that linear algebra also helps a good deal.

Posted by soralapio

@Mageman said:

I'd argue that linear algebra also helps a good deal.

Depends on what you want to do. Sure, if you want to code up a 3D engine, knowing the ins and outs of linear algebra is essential. But you can easily get started by just knowing the core concepts (what a vector actually is etc), because most of the math is hidden from you anyway and all you have to know is -- for instance -- why a 3D character's movement direction and speed are represented by a vector. And anyone can pick that up.

Posted by wh1terav3n

The way that I always describe programming to people is as a logic puzzle. That's all that it is. You have a set amount of words that you have to arrange in logical order to get the desired result. The thing about programming is that you can cheat. You don't know how to do something? I guarantee you that somebody on the internet had the same problem and asked the question, and it was answered, or someone wrote up a guide on how to do it.

As for me, my University taught us programming using C++. After learning that I have the skills to use basically any language. However, I wouldn't recommend it to people trying to learn on their own, as pointers and such can get very confusing without a more structured approach to the language or knowledge from simpler languages. I would start with Visual Basic, or if you want a more advanced language, Java since it is very rigid and strongly typed (which I prefer).

Posted by biospank

Thank you, sir. I still have some hope that I will learn this stuff.

Online
Posted by BlinkyTM

Yeah, I took a programming course. It's not THAT hard, kind of annoying figuring out what formulas (I guess you could call them that?) to use to make the program work. My Professor said I was "Very good" at it. So, I decided to not become a programmer and pursue law/history instead :P

  • 70 results
  • 1
  • 2