Something went wrong. Try again later

soralapio

This user has not updated recently.

293 19 46 52
Forum Posts Wiki Points Following Followers

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.

64 Comments

70 Comments

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By soralapio

@Jay444111 said:

@soralapio: Is there any books I could buy to help teach me... most internet vids online about programming are convoluted and don't explain crap while anything written down online already acts like you have been programming for ten years... I would like something so beginner that it is almost insulting... yeah... I need something to explain stuff to me that bad.

Well, when I say Internet videos, I don't mean xXxTokeDawg420xXx's Programming Dawghouz, I mean video of actual school lectures. You could do a lot worse than looking at Stanford's "Introduction to Computer Programming" videos. The lecturer is a fun guy and covers a wide array of topics and it's intended for incoming students so it starts at a basic level.

http://academicearth.org/lectures/programming-methodology-intro

Looks like these videos will explain all the core concepts you need to know to learn programming. Most books on the subject are far duller than this :)

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By soralapio

@razorzxz said:

Thanks for the great read. Also question. I am fifteen years of age, what sort of career path should I go if I want to do programming. This particular post really made me re-think my choice, I used to think I would really need math to advance anywhere (and to be fair I'm shit at math) but now I think I could really broaden my horizons. Anyway hopefully you will get back to me on my question.

Start programming. The more you do it, the better you get at it. Even if you go to a university later on to learn the formal side of programming, it doesn't hurt to already be familiar with the practical side. Without knowing where you're from it's hard to say what kind of education might best benefit you, but basically the gist of it is that universities teach the higher level stuff and train you to design whole systems, while technical schools will probably teach you more about the practical side.

Avatar image for jay444111
Jay444111

2638

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Jay444111

@soralapio: Is there any books I could buy to help teach me... most internet vids online about programming are convoluted and don't explain crap while anything written down online already acts like you have been programming for ten years... I would like something so beginner that it is almost insulting... yeah... I need something to explain stuff to me that bad.

Any sugguestions man? I have always wanted to make video games and stuff and would love to know where exactly I can freaking start.

Avatar image for lockwoodx
lockwoodx

2531

Forum Posts

6

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By lockwoodx

Java pissed me off to the point I knew I never wanted to go into any kind of field that required programming.
 
also: fuck math

Avatar image for nickydubz
NickyDubz

380

Forum Posts

8

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By NickyDubz

This is a great post...not to say programming is a walk in the park but in reality its a very easy skill to learn on your own time

Avatar image for trevion
Trevion

21

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Trevion
@Grumbel: I guess as long as your goal is doing things somebody else already figured out, sure, you can just slap existing components together.  I sure as hell wouldn't set out on a career with that as my only goal, though, and I don't think you'd get much respect in the field.  I mean, even in the Rails community, which is about as "slap some components together" as you can get, the people who are respected are the people like DHH and _why who did more than that.
Avatar image for iam3green
iam3green

14368

Forum Posts

350

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By iam3green

well thanks, it kind of gives me some information. 
 
only thing i know is a  little bit of actionscripted 2.0. i don't really like coding from learning that.

Avatar image for grumbel
Grumbel

1010

Forum Posts

12

Wiki Points

0

Followers

Reviews: 99

User Lists: 2

Edited By Grumbel
@Trevion said: 

You probably don't need to know a whole bunch of math (I couldn't tell you squat about quaternions, for instance), but I think you need to be fairly comfortable with understanding and manipulating abstract systems. 

It doesn't hurt to be able to handle abstract systems, but most programming isn't all that abstract really, as you can simply run it to see what happens. Essentially knowing some addition, multiplication and some boolean algebra is all you need for regular day to day programming. Game programming needs some linear algebra in addition, but even there you don't really need the underlying math, just the knowledge how to apply it. The number of times that your average random programmer had to write a formal proof of some algorithm for example is probably pretty close to zero.

That's not to say that math isn't needed for some higher stuff, but a hell of a lot of programming is really just slapping components together to do something interesting, so that knowledge of how a given API works often becomes much more important in day to day work then actual knowledge of the theoretical underpinnings of computation.
Avatar image for razorzxz
razorzxz

218

Forum Posts

85

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By razorzxz

Thanks for the great read. Also question. I am fifteen years of age, what sort of career path should I go if I want to do programming. This particular post really made me re-think my choice, I used to think I would really need math to advance anywhere (and to be fair I'm shit at math) but now I think I could really broaden my horizons. Anyway hopefully you will get back to me on my question.

Avatar image for trevion
Trevion

21

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Trevion

I'm a PL grad student, and I mostly approve of this post.  I think programming well is half algorithmic thinking, and half abstraction.  While you can go a while without creating your own abstractions, at some point you're going to reach the limit of your own ability to keep everything in mind at once.
 
This is why I'm confused by saying that you don't need to be good at math to be good at programming.  You probably don't need to know a whole bunch of math (I couldn't tell you squat about quaternions, for instance), but I think you need to be fairly comfortable with understanding and manipulating abstract systems.  In my experience, that's what most math is about.  It's more obvious if you look at something like algebra, but even when you're dealing with much more concrete subjects (like number theory or probability) what you're really doing is learning how to avoid doing everything from the ground up for each problem.
 
The whole language question is kind of silly.  Pick a tool you find interesting (Processing, Unity, Unreal, idTech, whatever) and use whatever language it uses.  Just remember that a language provides a particular viewpoint on a particular set of problems; just like anything else, the more viewpoints you have, the more understanding of the underlying problem you'll gain.  If you really want to understand game engines, you probably want to learn more than one; similarly, if you really want to understand programming, you probably want more experience than just your off-the-shelf "OO" languages.

Avatar image for awe_stuck
awe_stuck

820

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

Edited By awe_stuck

@Franstone said:

Are there any tutorials that the Giant Bomb crew could use to enable me to favorite this post in Internet Exlporer since I don't care to use the "crash every 5 seconds" Firefox?

Basically commenting on this thread is the only way I'll be able to find it again without opening Firefox or Chrome.

; )

khan academy and google code university has tutuorials on Python. havent dived in yet, but im pretty close

they have written, as well as hands on video, and yep LECTURES (google mmm)

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By soralapio

@Galiant said:

Nice read. I'm actually studying programming at the local university myself, third year, but what I find difficult is anything that has anything to do with networks, for some reason those concepts are more difficult for me to grasp than anything else.

Oh, and I suck at math.

Yeah, once you start getting into it, networking is a nightmare. I was put off by our introduction to networking and security course which consisted of a dude reading through powerpoint after powerpoint of tiny diagrams and pictures depicting TCP/IP stacks and shit. Not for me!

Avatar image for blackmoore
Blackmoore

258

Forum Posts

396

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Blackmoore

Programming is just a collection of tools - the difficulty lies in not using the tools, but the problem to solve and choosing which tool to use.

Avatar image for galiant
galiant

2239

Forum Posts

117

Wiki Points

0

Followers

Reviews: -1

User Lists: 0

Edited By galiant

Nice read. I'm actually studying programming at the local university myself, third year, but what I find difficult is anything that has anything to do with networks, for some reason those concepts are more difficult for me to grasp than anything else.

Oh, and I suck at math.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By soralapio

@awe_stuck said:

math has nothing to do with memorization. ask your teacher if you can have a sheet with the formulas. if he says no, take it up with your principle. i used to almost get perfect marks when i didnt have to memorize formula. math is all about manipulating numbers using logic and creativity

Yep, the point of math isn't and never was rote learning formulas. The idea is application, and doubly so in programming where usually the computer does the math. You just have to know what you want to do at any given time.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited By soralapio

@Kurtdyoung said:

Interesting, I always really wanted to try and learn some coding. Is there a good, free program to like test the codes? It is no fun learning all this stuff but not being able to see right away what exactly you are doing.

Sure, pretty much all of it is free. You can write code in Notepad if you want, then use the programming language's compiler to turn the code into something executable (and get any potential error messages about your code), but the two big game development environments are also free, XNA and Unity.

http://unity3d.com/

http://msdn.microsoft.com/en-us/aa937791

If you want immediate feedback, I recommend getting an IDE, or an integrated development environment. Which one to get depends on the language you will be using. For instance, for C# Microsoft make a free version of their excellent Visual Studio, where you write the code and it immediately highlights any syntax problems, offers auto completion, context sensitive help etc.

Personally I'd get started with Python. They offer a kind of real time programming environment called Idle (get it, Eric Idle as in Monty PYTHON? Eh, eh? It's programming humor!) where you can type in lines of code and get immediate results.

http://www.python.org/

Also, if you have iTunes, various universities offer video of their programming lectures. I used Stanford's excellent iOS programming series to learn Objective-C and I can wholeheartedly recommend their stuff.

Avatar image for awe_stuck
awe_stuck

820

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

Edited By awe_stuck

@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.

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...)

math has nothing to do with memorization. ask your teacher if you can have a sheet with the formulas. if he says no, take it up with your principle. i used to almost get perfect marks when i didnt have to memorize formula. math is all about manipulating numbers using logic and creativity

Avatar image for CastroCasper
CastroCasper

1589

Forum Posts

164

Wiki Points

0

Followers

Reviews: 0

User Lists: 7

Edited By CastroCasper

Interesting, I always really wanted to try and learn some coding. Is there a good, free program to like test the codes? It is no fun learning all this stuff but not being able to see right away what exactly you are doing.

Avatar image for franstone
Franstone

1534

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Franstone

Are there any tutorials that the Giant Bomb crew could use to enable me to favorite this post in Internet Exlporer since I don't care to use the "crash every 5 seconds" Firefox?

Basically commenting on this thread is the only way I'll be able to find it again without opening Firefox or Chrome.

; )

Avatar image for radixnegative2
RadixNegative2

547

Forum Posts

60

Wiki Points

0

Followers

Reviews: 0

User Lists: 3

Edited By RadixNegative2
Avatar image for blinkytm
BlinkyTM

1057

Forum Posts

13

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

Edited 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

Avatar image for biospank
biospank

700

Forum Posts

3

Wiki Points

0

Followers

Reviews: 0

User Lists: 7

Edited By biospank

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

Avatar image for wh1terav3n
wh1terav3n

622

Forum Posts

1611

Wiki Points

0

Followers

Reviews: 2

User Lists: 15

Edited 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).

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.

Avatar image for mageman
Mageman

387

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited By Mageman

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

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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!

Avatar image for christaran
ChrisTaran

2054

Forum Posts

-1

Wiki Points

0

Followers

Reviews: 1

User Lists: 9

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...)

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.

Avatar image for joey
joey

1067

Forum Posts

554

Wiki Points

0

Followers

Reviews: -2

User Lists: 0

Edited 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

Avatar image for awe_stuck
awe_stuck

820

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

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.

Avatar image for shanedev
ShaneDev

1703

Forum Posts

7

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

Edited 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.

Avatar image for trylks
trylks

995

Forum Posts

144

Wiki Points

0

Followers

Reviews: 0

User Lists: 8

Edited 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.

Avatar image for deactivated-5e49e9175da37
deactivated-5e49e9175da37

10812

Forum Posts

782

Wiki Points

0

Followers

Reviews: 0

User Lists: 14

Hrm.  This is a promising read.

Avatar image for mnzy
mnzy

3047

Forum Posts

147

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

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:

Avatar image for theguy
theguy

828

Forum Posts

2

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

Edited 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.

Avatar image for little_socrates
Little_Socrates

5847

Forum Posts

1570

Wiki Points

0

Followers

Reviews: 16

User Lists: 23

Edited 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.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.

Avatar image for little_socrates
Little_Socrates

5847

Forum Posts

1570

Wiki Points

0

Followers

Reviews: 16

User Lists: 23

Edited 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. :(

Avatar image for juicebox
Juicebox

494

Forum Posts

28

Wiki Points

0

Followers

Reviews: 1

User Lists: 0

Edited By Juicebox

I approve.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.

Avatar image for vodun
Vodun

2403

Forum Posts

220

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

Edited 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!

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.

Avatar image for drewbert
drewbert

9000

Forum Posts

4598

Wiki Points

0

Followers

Reviews: 0

User Lists: 7

Edited 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.

Avatar image for branthog
Branthog

5777

Forum Posts

1014

Wiki Points

0

Followers

Reviews: 2

User Lists: 0

Edited 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.
Avatar image for lunar_aura
Lunar_Aura

2824

Forum Posts

17

Wiki Points

0

Followers

Reviews: 0

User Lists: 4

Edited 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?

Avatar image for branthog
Branthog

5777

Forum Posts

1014

Wiki Points

0

Followers

Reviews: 2

User Lists: 0

Edited 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.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

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.

Avatar image for soralapio
soralapio

293

Forum Posts

19

Wiki Points

0

Followers

Reviews: 0

User Lists: 5

Edited 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.