• Advertisement
Sign in to follow this  

Noob to programming need advice

This topic is 3310 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
If you love c++ then why wouldn't you stick with it, right!
Anyway, a degree can't hurt, but I'm also experiencing the same thing with my education, it just takes a while and I could have done it way quicker by myself with a few good books and a few forums like this. As far as physics go: some basic knowledge will do for starters, but if you want to dig deeper, there's a lot of good books out there on physics simulation. In maths, it's really vectors and matrices that are important.
So if you want to go at it this way, exercise,read and think a lot about the subject, and build out your portfolio.

Also, an institute always bogs you down with stuff that doesn't really matter (I had some classes that were just stupid over the years) and forces stuff up your throat. I'd quit but my parents think it's better to just finish the damn thing for the piece of paper. Many of my most talented and motivated costudents are also growing frustrated or have already left.
As far as team work goes, all the teamwork I ever did at school always ended horribly: people quit, people don't do anything if they're not motivated, and some people are just that ego-driven that they destroy the whole project by themselves. Most people who I study with are just lousy or not interested at all, only thing occupying them all day is the party in the evening.
lessons were learned of course so I do think such courses have some use,but mostly they're also just a time sink, I think you just have to get really lucky to get a good team and decent results for these modules.. Of course, this is different than in the real industry, where you just have to be motivated or your ass gets thrown out on the streets.

More of a rant than an advice actually, but I did have to get it off of my chest. :)

Share this post


Link to post
Share on other sites
From a recruiters perspective ...

Degree or not degree - at 19 I think you should seriously consider doing one - you are still young and the importance placed on degrees will only increase.

I DO NOT think the degree is useful from the 'getting the paperwork' perspective - but is highly useful from the advanced knowledge you will pick up quickly.

I understand your reluctance to sit through lectures - and for sure there will be some very boring moments - but you might be surprised what enthusiastic and mind expanding interaction with other like minded students and faculty will do for your motivation.

All that being said, I am a very firm believer in self teaching for motivated and intelligent people - I also encourage you to follow your dream.

In short - do both - if you're keen then doubling your workload should not be a problem.

As for the importance of a degree to get work - some employers are myopic in needing such - for some jobs it is just essential - but every employer will look more insistently at results - can you do the work, get results and make profits?

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. Nothing can make me less interested in a subject than sitting through a lecture.


If there were extenuating circumstances that were physically preventing you from attending college, I would be more understanding, but this stance of yours is simply childish. Whether you think lectures are "boring" or not is immaterial to the decision; you need a degree to have any reasonable chance of getting into software development. It's simply illogical to forge ahead without one (and logic is a programmer's best friend [wink]). If you believe you'll learn more on your own time than in class, you're probably right; that's why you supplement class time with self-study.

If you're serious about pursuing software development as a career, start planning for college. A degree will greatly increase your chances of success. Otherwise, start dedicating all your free time to building experience and a portfolio, and keep your fingers crossed.

Share this post


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

  • Advertisement