Choosing A Language: I didn't have much choice at the time. My family had a Commodore 128D (D for Disk drive, that's right, 5.25" floppies baby!), so I worked in Commodore's BASIC for the first couple years, using the manual that came with the computer as my only guide.
Understanding The Jargon and Tools: I didn't until probably 5 years after I started programming. I first encountered this stuff when I learned C++ (after having been through Commodore BASIC and QBasic) with Visual Studio 6. I know they're pretty much universally derided around here, but I learned with a Teach Yourself C++ In 21 Days book, and it served me pretty well.
This Isn't As Easy As I Thought/The First Big Program: This happened before I really understood the jargon/tools. Probably because of that, actually. I hit this moment when I was writing an RTS in QBasic without using a debugger, with about 2 actual subroutines (using GOSUB/RETURN instead for the rest), running out of 64KB of memory, and actually exceeding the amount of code QBasic would compile. That's the first time I turned to the Internet for advice. Not the web, it wasn't really around then, but AOL 1.0's online directory of content. I found some EMS/XMS code for QBasic, and some mathematical formulas to help, wrote a code minifier, and I was back to the races.
Premature Confidence: This happened after I built my first game in C++/DirectX 7. For a graphic and embarrassing example, see an article on C++ headers I got published on GameDev back in 2000.
I Can Do It Myself: This happened about when I started learning Direct3D 7. I wrote my own point-light code, skeletal animation, and a couple other things. Looking back, it was all a disaster as an end-product, but it was very educational. This also reared its ugly head when I lost my license key to SourceSafe and decided to write my own (actually sold one copy...)
Understanding Computer Science through Mastering a Pragmatic/Academic Domain: These happened at University. It was extremely helpful to me as a programmer to see the fundamental workings of hardware (actually built my own rudimentary CPU on an FPGA) and software (e.g. recursive-descent parsing, data structures, etc).
Being Pragmatic: This happened on and since my last year at University. I started liking C#. I started using PHP for a bunch of stuff, including shell scripting. I became familiar with some server administration and existing tools. I started using existing frameworks to lighten my load (e.g. Bullet physics, jQuery, CakePHP).
Your next step? Millionaire entrepreneur, obviously. Just don't think that being a great programmer makes you a great person to run a company. That part comes separately.
Steps in being a programmer
Another "what language do I use" skipper here, as well.
I went past "premature confidence" years ago and remember it well. I know now how much I can improve. [grin]
Meh. I know what stage I'm on (getting into "understanding"). Yay, school.
Quote: Original post by RattenhirnQuote: Original post by Oberon_Command
I think I skipped the "This isn't as easy as I thought" stage. Is that a bad thing?
So you're stuck at "Premature Confidence"? ;)
I went past "premature confidence" years ago and remember it well. I know now how much I can improve. [grin]
Quote: Original post by polymorphed
Ouch! He handed it to you there, Oberon_Command!
Are you just going to passively take that?
Meh. I know what stage I'm on (getting into "understanding"). Yay, school.
Quote: Original post by laztrezort
I think I still have nightmares in the middle of the night about long lists of poke() commands [grin]
This how my cool C64 games started:
10 POKE 53280,020 POKE 53281,030 PRINT "<two special characters to set the font color and clear the screen>"
Those were the days... :)
there be also a debabelization stage where yous realizes that there is really only 6 or 7 languages maxish
The remaining steps are:
Diversification
Once mastery of the process and techniques, the programmer becomes aware of commonalities and patterns in process between various tools, disciplines and domains which transcend the objective realm. At this state the programmer gains an almost supernatural understanding of things computational, using intuition as much as deduction.
Mentorship
The true path to programmer enlightenment comes with the dissemination of such knowledge and growth through sharing and mentoring the next generation of programmers.
Enlightenment
If the programmer is aware and open minded enough they can become aware of the underlying meta-reality and its musical code like structure. Once only a user of this reality overlay they begin to conduct it, creating, moving, deleting reality much like a child playing with blocks.
Nirvana
The last stop for the programmer, full awareness has its price. Once glimpsed there is no turning back.
Enjoy! :D [ last 2 are just my guesses :) ]
-ddn
Diversification
Once mastery of the process and techniques, the programmer becomes aware of commonalities and patterns in process between various tools, disciplines and domains which transcend the objective realm. At this state the programmer gains an almost supernatural understanding of things computational, using intuition as much as deduction.
Mentorship
The true path to programmer enlightenment comes with the dissemination of such knowledge and growth through sharing and mentoring the next generation of programmers.
Enlightenment
If the programmer is aware and open minded enough they can become aware of the underlying meta-reality and its musical code like structure. Once only a user of this reality overlay they begin to conduct it, creating, moving, deleting reality much like a child playing with blocks.
Nirvana
The last stop for the programmer, full awareness has its price. Once glimpsed there is no turning back.
Enjoy! :D [ last 2 are just my guesses :) ]
-ddn
While that's a pretty good series of steps, I searched this page and I couldn't find the word "communication" anywhere, so I'd say you missed a hugely important aspect of programming.
Communication
Software Development is communication. You are expressing your intent to machine, but more importantly you must clearly communicate with users and clients. Almost no software of any consequence these days is written in isolation. The ability to communicate your ideas to your colleagues and to collaborate is paramount. Most teams would prefer a competent programmer who works well with the rest of the team over a programming guru who doesn't.
Communication
Software Development is communication. You are expressing your intent to machine, but more importantly you must clearly communicate with users and clients. Almost no software of any consequence these days is written in isolation. The ability to communicate your ideas to your colleagues and to collaborate is paramount. Most teams would prefer a competent programmer who works well with the rest of the team over a programming guru who doesn't.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement