Coding, Programming, and software engineering.

kacation_man

Newbie
Joined
Dec 28, 2005
Messages
1,277
Reaction score
0
If there are any of you here that have made a career out of coding, Programming, or being a software engineer could you please help me out?

Programing has been something I've wanted to do for some time now because I love being able to type something into a terminal of sorts and get results out of it. I have little to no previous coding skills, the only of such are a few html scrips and one or two lines of Flash action script. While those where short lived, they where sweet, frustrating at times, but when it worked out finally it was sweet.

I am asking for some information about it, or maybe some links to other sources that could help me out more. My problem is this: I am graduating high school in about 4 months, and I have done little to no preparation for education so far ( yeah, not a good choice but it too late now i suppose ). To be a programmer/coder, what kind of "prerequisites" would/do i need? what courses should i take and what other kinds of things should i look into?

Any kind of constructive criticism's would be great! thanks :D
 
1. Browse Wikipedia articles relating to programming.
2. Google search "free tutorial".
3. Start learning one language.

If you are actually interested in the process of designing software :)|), you can also learn Design, UML and maybe RUP.
 
Thank you, while this is good information to know and will be looked into,as for say.. college classes etc.. goes, what kind of classes will i need to look into getting into doing this sort of thing as a career?
 
What sort of programming?

If you are really into programming (and are also good at math), I suggest going to DigiPen (sig) which is where I'm at now.

Otherwise, go to a state school in CompSci, unless you have amazing grades and can go to MIT or something. Also UW-Washington has a good CompSci program.

www.gameinstitute.com has a good C++ series, which is worth looking into if you are willing to pony up some cash as well.
 
I'd suggest diving into it and attempting a full program in your chosen language. It doesn't have to be huge, even something as simple as pacman can be a daunting task to a new programmer.

I say this because I once shared your ambition. Then I tried it and realized what an insane amount of work goes into it. I'm sure I'll always program as a hobby but doing it daily isn't for me.

I'm not saying this to discourage you. I hope you try it and come out loving it and wanting more. But it would be a shame to blow a huge chunk of time and money on an education just to find out you don't like it.
 
no no.. I want to hear all side of it, that way i can kind of balance it. Its something I'd like to do, but im starting to think it might be a better hobby for me then a career path seeing as I'd love to do it, but im not the best as math :p
 
TBH, if you're even having that feeling, and you self-admit you aren't that great as math, then programming may not be good for you :p
 
TBH, if you're even having that feeling, and you self-admit you aren't that great as math, then programming may not be good for you :p
That's just BS, the only maths you'll ever need for programming is Boolean algebra and some other very specific topics.
 
It's not true that math (in the sense of doing neat things with numbers) is absolutely essential to coding. It's also not true that it doesn't help.

The essential skills are problem-solving and abstract thinking.

A surprising amount of the problem-solving involved in coding amounts to asking yourself "How would I do this if I didn't have a computer?", and then telling the computer to do it for you.

The abstract thinking is important for big-picture design of a program or sizable parts of one. Realizing that a zipper, a snap, and a button have a lot in common with each other, and a few things in common with duct tape, screws, and magnets, and even maybe a few things in common with marriage vows and the relationship between a planet and a moon could mean you can write a "find all things attached to each other" function once, and use the same function to find social networks, solar systems, or single pieces of furnature. Better still, when you learn a better algorithm, you just change your one function and doing all those things become faster! (Or even better, when someone else implements it better in a standard library, you download their new version and all those things become faster.)

Abstract thinking can help out with the problem-solving, too, since you'll eventually learn things that are much easier on a computer than in real life. Hash-tables, for instance, are super fast for a computer, but would be ridiculous to work with (usually) without one. Fortunately, the behaviour of hash-tables is easy to understand, so instead of asking "How would I do this?" you ask "How would I do this if I had a black box that magically acted like a hash table?" (Or, "only using the computer for hash-tables." Or, "if Dustin Hoffman were helping me.")
 
Abstract thinking and problem-solving are definite things that you need to be a good programmer. However, like anything else with enough practice they can be learned.

Jump into C++. C++ is the toughest and the dirtest. Just start learning a few things at a time. Make some applications. An application that opens up a file or does math etc... Write the applications using a different method. Once you get decent at C++, move onto a language like Java or C# an easier managed language. That way you'll understand how those languages work, and the ideas behind them will be much clearer than if you had just jumped into them. Java and C# are great for your average programs, where C++ is amazing for memory and speed intensive programs.

Having amazing projects that you did by hand or had a huge part in will mean much more than any degree you can wave in front of there faces. I think Gabe Newell actually said something like this.
 
That's just BS, the only maths you'll ever need for programming is Boolean algebra and some other very specific topics.

We need to back up and define what sort of programming we are talking about.

If it's general business programming, then no.

But we are on a gaming forum, and I was assuming it meant doing games programming, which is a shit load of math (that's what I do, trust me).

*Edit* Also, Cole I'm going to have to disagree with you slightly. Start with straight C and not C++. It's a hell of a lot cleaner, and less complex. Within a matter of a few months you could be a master at C which makes going to C++ a lot easier mainly because there's not a lot of C to learn, and anything you do transfers over to C++.
 
Writing good code anywhere, you'll eventually get a feel for algorithm runtimes. This is usually informal; it makes sense that a piece of code is O(n log n) or O(n^2), and formal justification is almost never needed. The math behind this can be really interesting for some algorithms, but 99% of the time, it's just a matter of learning what patterns take how long and composing them (usually just multiplying them).

Naturally, if you're writing a program that does math, you need to know that math. 3-d programs will need you to be good with vectors and matrices (and maybe quaternions!), because that's the math of that field. Economics software may need linear algebra and some basic multivariable calculus, because that's the kind of math econ uses. The number crunching itself is better left to libraries, but a library function to find the eigenvalues of a matrix won't help you if you don't know why you'd need the eigenvalues or what to do with them.

As far as learning, I'm going to share the following. I don't recommend it, I just want to share it.

The development of programming languages tends to be a process of figuring out what sucks with the way things are and making them better.

I've always wanted to see how effective it would be to actually go through this cycle when teaching programming. Start with unstructured BASIC (i.e. lots of goto's, unstructured C may be better for continuity purposes), and when they see why it sucks, jump to structured C without libraries and a print function magically available, then add libraries when they see it sucks reimplementing the same functions over and over. From there quickly introduce modules, which are basically like making your own library. Stay at this point for a while, since C is important to know pretty well. At some point, let them try to solve in C a problem easily solved with OOP, such as applying a different function depending on "type" to a heterogeneous list. Then shift to C++ when they realize there needs to be a better way to do that sort of thing.
 
Some how i feel as if im in over my head, however the more you guys talk about it the more interested i become. How does one go about doing programing for the first time with this "C" language ( or what ever you like to call it ).

oh, and just to clear up what kind of programming it is im interested in learning.. well, i really would like to learn as much as i can. I'd like to learn multiple languages ( weather the be in a school, or in my free time ). I'd like to know how to code games, web pages, simple applications, advanced applications( or parts of them )..,mods, and do things like compiling a kernel for linux, writing a simple application used to launch other programs, or write custom firmware for something such as a psp or a wireless router. etc...


these are just things Ive always kinda wanted to do, but have really had no idea how to go about doing it, mostly because i should think a lot of it is in programming which i have very very little, to no skill or experience in.
 
Well what you mention will take years and years of experience in a variety of fields.

I really suggest starting with C, there's tons of great tutorials out there. It's a fairly simple language, especially when compared to its "successor" C++. It will get you going with very basic programming concepts.

To help you get into a more programmatic mindset, you could also move to Linux (My CompSci professor recommends OpenSUSE and I have to agree). You will start to learn how to write scripts and such and it's very a programmer orientated OS. If my games weren't DirectX and Windows orientated, I probably would at least Dual-Boot into Linux (but I need all the HDD space for my games on Windows right now)
 
I have an extra set up sitting right next to me thats running ubuntu right now. I eventually plan on putting windows on it come time for a lan party, but I've been playing around with and its pretty cool so far. I plan on getting another PS3 and putting ubuntu on that in the future.

If you could get me started with some links or something that would be great. like.. how does C work? Is there an application in which i write all the info in and compile it some how ( i have no idea how this works. )
 
All you need for C programming is a simple compiler (like lcc, just google it) and notepad... although LCC comes with an IDE so that's good too.

Basic C is simple, but I recommend buying a book about it. It's going to be a lot easier on your than finding all the stuff on the internet and it will have more continuity when you learn. At first you'll probably just copy down what the author threw in as an example but soon enough you'll get a feel for the concepts.

If you can find a book with C++ thrown in, that would be good too, but grasping C will give you a really good understanding of how a computer works. C is the foundation for almost all programming languages today, and it's clean, elegant and very standard.
 
Kacation, I wish you the very best of luck in learning programming.

I attempted to learn programming, got a fair way into it and gave up because I didnt get the oppertunities I needed to take it further. Also, I couldnt find out the kind of information I needed and wanted to learn.

Enjoy yourself, and reach for the stars.
 
thanks ( i think I'll need it ), and I'll go look for a book ( would programing for dummies be a place to start :p ) ?
 
If you're interested in web design (you mentioned knowing a bit of HTML I think), PHP might interest you. It's a scripting language rather than a programming language (the code isn't compiled, just parsed as-is serverside).

http://en.wikipedia.org/wiki/PHP for more info and examples.

Edit: This forum is a good example of a PHP script, actually.
 
I'm a 2nd year CSE student at Univ of Michigan...

feel free to give me a shout if you want to know what the fields like.
 
Actually while you guys are on the topic would it be fine if I asked for help on a project. It would save me time rather than making a new thread.
 
Actually while you guys are on the topic would it be fine if I asked for help on a project. It would save me time rather than making a new thread.

It would probably be better to make a new thread rather than hijacking this guy's, I think.
 
Kacation: You have to understand that not all languages are equal. If you're just going to do calculations and graphs Matlab would be perfect. For a database program VB would be a good choice. For the most part, you can't go wrong with C++ though.

Emporius: We could explain the basics and discuss algorithms, but the project is supposed to be entirely your own work. :p
 
I'd recomend getting a good C++ book to start with. I used C++ A Beginners Guide by Herbert Schildt when I started programming and found it excellent. There is probably better ones though.

If you want to start making games after a while, first create something simple like a text based game. Then move onto 2D graphics and create some games like Pong, Tetris, Breakout. There are some great graphics libraries, I'd recommend SDL. Simple and cross platform.

Programming can be difficult and at times overwhelming but very rewarding and fun.
 
VB is okay. Just not for serious programs. It's fine little toy or utility programes - the GUI equivalent of whipping up a quick Perl script.

Learning to program with VB is a lot like learning to drive with a go-cart.
 
Back
Top