I want to be a coder!
January 29, 2005 3:15 AM
Subscribe
I want to learn to code. I used to be a good coder - in 6502 assembler and VAX Fortran in 1988. I know nothing of the architecture of modern computers (OOP? kernal? shell? how one set of code on work on Linux and Windows). I guess I should learn C++ - what's a good resource (book I guess) for learning, writing apps compiling etc on my Win XP machine, and finally getting jobs?
posted by Pericles to education (20 comments total)
1 user marked this as a favorite
As far as learning how to code goes, pick up Kernighan & Ritchie's definitive The C Programming Language.
The basics of OOP are pretty easy - at the heart it's just C's functions combined with C's structures (custom conglomerate data types), although if you really get into OOP it can get pretty amazingly complex (personally I just tend to write C++ that looks awfully like C, which is fine for me but won't be appreciated in any professional development environment where code granularity and reusability are at a premium). Just about any semi-competent reference will work here, in college they threw Deitel & Deitel's C++ How To Program at us, and it wasn't horrible exactly.
Once you're over the hump of writing commandline (console) apps and want to move on to GUI-based stuff, I STRONGLY advise you to totally ignore Microsoft's horrible, horrible, vomit-inducingly bad Microsoft Foundation Classes "API" (and by "API" I mean "unholy soul-destroying lump of shit from the lowest circle of Hell") aka MFC. Instead, tap into Windows at a lower level with Win32 - it's a little less consistent, not as well-documented, etc., but it's a very cute little API without the overhead and with lots of neat tricks for you to keep on discovering. I've never really managed to get bored coding it.
Go to Winprog.org and hit up their tutorials to get started, supplementing your knowledge along the way with MSDN for formal reference.
Outside of that, I really don't have much advice (make sure you familiarize yourself with COM - Windows' Component Object Model, maybe?)- I've always been more into coding OpenGL crap than Windows apps, so my knowledge stops roughly here because that's all I've needed to know in order to code my own little things.
The next step for me beyond that you may already know everything about - a good solid Data Structures & Algorithms course from my college. If you want to learn stuff like Big O Notation, the difference between a merge sort and a bubble sort, and lots of other stuff about classic, important algorithms and the process of formal optimization then I strongly suggest you take one as well.
You'll also find that, once you know C/C++, you more or less know PHP as well, which can be handy for setting up a site using a LAMP stack, or something similar (I prefer BSD and PostgreSQL, myself).
As far as *nix coding goes - I have so little experience, and it was so long ago that anything I have to say would be doing you a disservice. As far as getting a job goes - your best bets are to a) have recently graduated college with a CS degree, b) have recent professional programming experience on your resume, or c) write something really, really cool and show it to someone. Those are about the only methods these days.
Good luck, and have fun.
posted by Ryvar at 4:00 AM on January 29, 2005