Jump to content
  • Advertisement
Sign in to follow this  
Altaholic

Noob to programming need advice

This topic is 3494 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey, A few months ago I got into programming messing around in Runtime Revolution and have since moved onto tinkering with c++. I didn't realize how addicting this would be, so now I would like to get more serious about programming and make it my career. I was wondering what kind of advice you guys would have for someone getting into the coding world. I am 19 and am not planning to go back to school. I am good at self teaching and am willing to learn whatever is needed. My plan was to get fully proficient in c++ than branch out into other languages. Also do I need to teach myself calculus/physics?? I have a good job as a welder so am not totally screwed if it takes a while to become employable. Any input would be greatly appreciated. Especially from people who succeeded without a degree. Thanks, Greg

Share this post


Link to post
Share on other sites
Advertisement
Your not gonna succeed without a degree. Even then, programming takes years to get good at. For games, there is soo much to learn. I would keep it as a hobby. Maybe eventually you can work on a self-published game or XBLA game. Basically the only chance u have with no degree is an awesome portfolio, and thats gonna take a long time.

Share this post


Link to post
Share on other sites
There is two kinds of people who take up quilting for a hobby. The first are ones who patch up squares and then send them away to a professional binder to do the finishing work. The second kind completes a whole quilt by binding them in a way that works, but doesn't exactly have the same results.

Likewise there are two kinds of people who code for a hobby. The first is code driven. These people create game engines and other libraries for the sake of coding While they usually intend to get past game engine coding, most restart over and over again when they get around to creating content. The second is result driven, people who want to see their applications whole and don't care how "pure" their code is. It's very rare to find someone who can do both, since one is more fun than the other. I personally find coding much more enjoyable than anything else.

Your focus depends entirely on what exactly you want to do with this hobby. If you want to get into the coding, I suggest learning C++, some game simple game physics and get to know DirectX very well. Calculus is a little much, since most game physics are well understood and the formulas are out there on the web. Learn what a control structure is, what a variable is and what data structures are used for and how they relate to C++.

If you want to get into application development, I suggest learning python, read something like How to think like a Computer Scientist. Then when you have a good grasp on how coding works in python, learn more about what a variable is, what a control structure is and what data structures are. These things are in every language. When you have a grasp how coding works, look for whatever tools and libraries that will realize your goals and use them. The idea is not to code into a language, but to structure code that it makes sense regardless of platform.

Either way, a degree is not needed. John Carmack, Bill Gates and Steve Jobs are all college drop outs, and Bill Gates and John Carmack are very good programmers. Don't get me wrong, a degree is very useful, but it is not as mandatory as dpadam450 suggests.

Share this post


Link to post
Share on other sites
My main point of advice is don't lose sight of the forest for the trees. I used to have the hardest time finishing projects because I would get obsessed with refining my program etc. The most important thing is the finished product. Also, I have seen programmers say "don't use python/C#/etc, if you don't code at a lower level you won't understand whats going on." This is simply not true, and they are forgetting something like a list says nothing about its implementation. A list is an abstraction and nothing else. Don't get obsessed with how the pc x86 processor platform etc, works. Its just one possible model of computation.

My main point is do little projects that you can finish. Hack them together until you get something working, then on your next pass refine it. Don't attempt to do it perfectly the whole time, just get something going. Many programmers are control freaks, and are unable to write quick non generalized non perfect code.

Share this post


Link to post
Share on other sites
If you want to practice your programming skills, Project Euler is a site with lots of maths problems that lend themselves to programmable solutions. See how far you can get, when you come up against a problem you then have something tangible to research and learn. I often find that the biggest obstacle in programming is not having an obstacle to overcome!

Share this post


Link to post
Share on other sites
Quote:

I was wondering what kind of advice you guys would have for someone getting into the coding world. I am 19 and am not planning to go back to school. I am good at self teaching and am willing to learn whatever is needed. My plan was to get fully proficient in c++ than branch out into other languages. Also do I need to teach myself calculus/physics?? I have a good job as a welder so am not totally screwed if it takes a while to become employable.

My advice would be to choose a different language than C++, as it is generally a suboptimal choice for beginners. Python is typically the language I'd recommend, as it is direct, powerful and has much less legacy cruft, hidden pitfalls. Not to mention it has a cultural bias more favorable for people like you who are just getting started.

If you elect to go with Python, python.org has everything you'll need, including excellent documentation and getting-started guides for neophytes. It may be be to your advantage to stay away from Python 3.0 right now, however, as much has apparently changed and most of the existing docs reference 2.5 or 2.6 syntax. So you should perhaps stick with those versions or at least be aware that this might cause you grief.

Should you want to ignore my advice and continue with C++, I would recommend you dig up the books "Thinking in C++" and "C++: A Dialog." They're both available online in HTML form, and they're generally considered good introductory material to an otherwise extremely hairy language. Especially for their price.

Of course, of the two sub-optimal choices you've just described making, electing not to return to school and finish a degree is the bigger one. While it is certainly still possible to get a software development (e.g., game development) job without a degree, it's certainly not easy or common any longer -- and you have none of the other advantages that such applicants typically have, such as an extremely long history of hobby programming and a brimming portfolio. You will find it extremely difficult to be seriously considered for entry-level game development jobs without a degree, to the point where it will probably take you just as long (or longer) to become employable this way as if you went to college or something.

You don't need to know calculus or physics necessarily for programming, but they may come in handy depending on what exactly you want to use your programming skills to build.

[Edited by - jpetrie on January 23, 2009 11:42:12 AM]

Share this post


Link to post
Share on other sites
Thanks for all the responses. It seems that a lot of people are recommending python rather than c++. I am really liking c++ but will check python out. Also like I said in my post I have spent a fair amount of time using runtime revolution which is pretty high level, so I have already learned the basics in a more friendly language.

I know choosing not to get a formal education might be a harder way to do things, but I feel very strongly that I will learn a lot more teaching myself. Nothing can make me less interested in a subject than sitting through a lecture. I have some family members with small businesses that have talked to me about making some applications for them. That might help to get something on my resume. I could also do some work on open source projects and some freelance work.

Thanks again for the all the input

-Greg

Share this post


Link to post
Share on other sites
Quote:
Original post by Altaholic
I know choosing not to get a formal education might be a harder way to do things, but I feel very strongly that I will learn a lot more teaching myself.


This is almost never true, and it is such a terrible idea that I am going to have to strongly recommend you reconsider. One of the most important parts of software engineering/computer science is working in a group setting. Learning coding practices that facilitate maintainable and portable code on a group project is the core of a solid CS/SE education and is not something you will pickup easily in a self-taught environment.

Share this post


Link to post
Share on other sites
Quality of college-level CS courses is highly variable. It's true that you don't learn to work in a group by studying on your own. It's also true that you have a fairly good chance of ending up at a college where the CS profs don't really focus on group work much. Like mine. Currently taking a course on user interfaces. This is the... fifth CS course I've taken. This WILL involve doing group work. To the best of my knowledge, there's only one or two other undergraduate courses that emphasize group work at all. None of my earlier classes had group projects. Although, none of my earlier classes had larger-scale projects that would've been suitable for group work anyway.

So, you'd probably learn a lot more on your own, unless you're an incredibly patient person and willing to spend three years learning something that you could otherwise learn in one.

Or you might end up in a much, much better program than I did.

You should still go to uni though. Just learn to program beforehand. Or major in something else, like math.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!