I wanted to ask the opionion of the people here on what they thought about becomming a self taught programmer. I know there are some high skilled individuals that browse these forums, so I though I would see what they thought. I wouldnt call myself skilled by any means, but I have a rather good capacity for learning the languages.
I read somewhere that one of the biggest hurdles to understanding programming is being able to logically think like a programmer…essentially trying to solve solutions in a backwards fashion. I would like to think I am fairly capable of doing this, as in pretty much most of the programming courses I took throughout school I excelled at all of them.
There are a lot of great tutorials and books, I have seen many of the threads where you guys have suggested some excellent material. What I would like to know though is how feasable you think it is for me to become a good programmer by learning all of the material on my own. I understand there is one critical field I am rather inexperienced with, and that is math. Math is a HUGE portion of what I need to know, and it sucks that I am so far behind. Do you think it is possible to learn the math I need for the profession by just taking the appropriate classes in a college?
Sorry for being long winded, but I guess as I have kind of already stated, I am mostly just interested if you think it is possible to make a real go at becomming a game designer and programmer, without the 4 year degree. I do not plan on trying to get hired by one of the major companies that require the degree. I solely plan on using the money I make from my current profession to transistion into becomming an indie developer.
If you’ve already taken programming courses (in high school I guess?) and are taking some sort of college courses for math (2 year associates degree?) then why not just go all the way and try for the four year degree? You may not need the degree and extra knowledge, but it certainly couldn’t hurt. I would say learning programming, like learning anything, is much harder if you do it completely on your own. It will be easier with other people around who can share their knowledge. That’s pretty much why humans have been teaching each other in schools for thousands of years.
I understand where you are coming from but the whole 4 year degree thing isn’t an option right now. I did some college courses prior to joining the military, but I currently have a rather excellent paying job that I cannot give up for 4 years of study. I am not taking math for an associates, I was more or less going to try and just take all relavent courses I needed for this field, which is quite a lot, I know. I can take the several math and programming courses here and there that are offered, but I just can’t give up the amount of time required for the full degree.
Thanks for your thoughts though, and I do take them seriously. I wish I could drop everything and just attend college again.
Definitely, I did. Though its impossible to say if it would be the same for everyone else.
However I would add one thing. I found it extremely useful to have been around and working with other programmers from an early stage. I learnt stuff from them I would probably have never have learned by myself or quite possibly from any course. From tips and tricks to ways of thinking about programming problems. I’d say that finding some place to hang out with programmers in real-life would be a great boom to your learning. Especially if you are someone who can watch and learn from others.
For me the real key is dedication and a thirst for knowledge. I often read through entire programming forums whenever I come across new ones. I don’t read every post, I just start at the earliest post and speed read through the subject titles looking for stuff that sounds interesting to read. Books can be a good starting point, especially for getting the basics of programming down, or for learning a new API, less so for other stuff.
Don’t worry to much about lacking math skills, mine are pretty bad in many areas. That doesn’t mean you can ignore maths, but be prepared to have to work twice as hard with it. However to me maths != logic and logic is far more important in most programming tasks than maths.
Thanks for the encouragement noisecrime. I already have a rather thourough understand of several languages, and I have often thought about going to some meetup groups or something to hang out with fellow programmers. I live in Austin, which is a very tech centric city these days, so it shouldn’t be hard to find people to learn with.
Also thank you for the advise about math. I mean, I understand it is substantially more important depending on the field you wish to be in, but I know having a good fundamental background in the subject is pretty common practice in the field. I plan on trying to find a way to attend just the math classes I feel I lack knowledge in, as the programming does feel a lot easier to learn on my own.
Ah, that makes more sense. I would agree with noisecrime that you don’t really need that much advanced math; it can be useful sometimes but I honestly haven’t used anything I learned in advanced calculus once in my entire programming life ;). If you want to focus on games, you should learn some basic 3D math, which is mostly matrix theory and geometry/trigonometry. You’ll probably also want to understand the physics of light and sound. And formal logic.
So I think you definitely could learn it all on your own, but just don’t disregard the value of learning from other actual people. If you can find some night classes in programming or something, it will probably help a lot. I’ve learned new languages and things entirely on my own just by reading the documentation, but most of the really important things - the underlying computer science and architectural experience that make me a good developer - were learned in school or on the job from working with more experienced devs.
Great to hear makeshift. I will be looking into going to as many classes as I can attend, and I will try and hook up with people that have a shared interest in wanting to teach or learn more about programming. I am working on a game in C# right now from scratch that I am going to hopefully use as a basis to show other programmers that I have the capacity and willingness to learn. Hopefully then I will garner some respect and people might be interested in throwing around some ideas with me. Look for my finished little demo in a few weeks!
All programmers are self taught programmers. That’s the biggest open secret.
The fact of the matter is it boils down to constantly teaching yourself. It is literally impossible to go to only a college course and learn it only using the materials there. It’s literally impossible. They’ll teach you the fundamentals but you will forget it all in a week or two and be just as clueless.
The only way to be a programmer is literally to just keep doing it. And you never master it or complete this journey. That’s what programming is. And all programmers are ultimately self taught.
To those who might object, I ask you to examine carefully going forwards, exactly who is solving the problem here? Once you know the fundamentals, like loops and so forth, real programming is down to you.
Ultimately, school is a place where you learn. The school has a collection of teachers who have packaged materials and there is a path to follow from start to degree. It’s all there and set up for you, easy to get at and complete.
Schools are based on an model of information scarcity. Limited people have the knowledge, so you have to go to those people. The internet and public libraries have changed this in a big way. Now much of the information you need is out there, somewhere.
So, the question is: Do you have the dedication and the passion for knowledge to gather on your own all those knowledge resources the school has “packaged up”?
You can grab a book on a language and learn how it works. (Though you’re better off with more than one for a variety of information.) You can read about how to program and coding style. You can learn about search algorithms database structure. You can see how others solved problems. You can work through examples and exams. You can also find a lot of this information on web sites. There’s documentation, tutorials, articles, blogs, and forums.
The problem with learning on your own is that you don’t have that preset framework that is supposed to cover “everything you need to know.” You may run into gaps in your knowledge because of this. As long as you’re willing to go out on your own and find the information needed to fill those gaps, you can continue moving forward.
It’s really up to whether you’re willing to take the time and learn. You won’t have that piece of paper that says “degree” on it, so you will have to wow folks with your portfolio to prove that you have what it takes.
Caveat: The one thing that being a self-taught programmer won’t do is give you that special something you can put on your resume. For some companies, it’s degree or go home.
Thanks for the insites Hippo and Socrates. As I stated, I do not, at least at the current moment, intend to try and join any major developers. I plan to fund my own ventures into the indie field and see where that takes me. I do have several books and resources; one of the greatest resources I have been utilizing lately has been the massive amount of info on 3dBuzz. I have been working through that site rather meticulously, on just all of their fundamental stuff, and I have treated it very much like class work. They have a great community too who have even helped answering questions and reviewed the homework I completed even well after the classes have completed.
All in all I think I will be able to learn and collaborate enough to get the feel if this is an industry I should make a real shot for a career in. Unfortunately without that degree though…I know I will never get that job with Naughty Dog haha
Nonesense. A good or rather exemplary game demo (focused around specific aspect e.g. graphics, AI, physics etc) will get you a job, more so than a degree, just as long as you can get it to the right person.
Why? Because it shows what you can do. Whilst a programming degree on its own shows nothing. Obviously though if someone has an equally impressive demo and a programming degree they may trump you
However the reality is that game development itself is not a great career. Though i’ve not worked in actual game companies i’ve worked in multi-media ones and suffered crunch time. In the end these jobs just end up like most others, they sound cool on the outside but the reality is usually different. Now working for yourself that’s an entirely different matter and you never need a degree to get that job, not unless you are a sadist
Ultimately I wouldn’t worry about it yet. Dive into programming, write some games, maybe get some freelance gigs, only then if you still really want to be involved within a game company and find you can’t get in, should you think of getting a degree. Even then a ‘relevant’ degree may be enough.
I’ve got a degree, not one of my employers was ever interested in it, at least not after they saw my demos, or had heard of me through my efforts and the community.
If you want to be a game programmer…start programming games.
There is a really odd attitude the general population has about doing things in their lives. Everyone seems to think you need “permission” to do anything.
Really, all the knowledge is just floating around on the internet or in books (or even just chatting with some other programmers for advice). You don’t need to spend many thousands of dollars and 4 years at school to get a piece of paper saying you are allowed to make games now ~_~
If you are looking for a job as a programmer or if you are looking for contracted work as a programmer, then of course a degree is very important. You might be self-taught and be an exceptional programmer but the person looking to hire you might not be able to fathom that about you in a short time frame especially if you are one among several candidates under consideration
On the other hand if you are solo indie making games out there or if you are one among a group of friends trying to make games, then self-taught is more than good enough as long as you have the aptitude for programming. In other words there has to be some amount of ‘geek’ in you to be a good self taught programmer.