- Why did you want to start programming? (What was your motivation?)
Mainly because I saw a great opportunity to automate big, tedious tasks at work, and reduce error in tasks with shiploads of numbers involved. I managed to save ridiculous amounts of time, which meant I had more time to smoke and drink coffee.
My motivation then changed once I realised programming is tremendously fun, and the desire to "tinker" with things soon took over.
- Why did you choose to begin with the language you begun with? And if applicable, why are you using the language you are using now?
Technically I began with BASIC when I was a wee child, because a family friend was quite adept at it, and I knew no better. This however was nothing more than creating custom DOS menus etc.
My first 'real' foray into programming was with VBA, as it was the easiest way to interact with major programs I use at work; namely ESRI ArcGIS and the MS Office suite. I still use it when the need arises, but I really dislike it now after spending a lot of time with Java. I'd go as far to say that it is a horrible language that should be avoided, particularly by those starting out (Could this be extended to VB?? Anyone else got an opinion? I've never actually worked with VB, just VBA).
I started learning Java as I wanted to begin writing my own programs. I liked the Java syntax; it seemed logical to me. There also appeared to be plenty of resources available to learn it. It was also a very 'welcoming' language for people starting out, compared to something like C for example. I'm still using Java as I have put most of my time into learning the language.
I've since started learning C, just for the hell of it. Although this is more out of interest, and I've yet to do anything functional with it. It is partly because of an interest in electronics and microcontrollers, which I hope to learn more about when I get some time. I'd also like to play around with the Windows API one day. I'm one of those people that likes to learn things purely for the sake of learning, I enjoy it. However, this unfortunately means I know little about much, not much about little.
I've got a couple of books on Python laying around. I've got no intention of learning it yet, but may get around to it one day. Python is the 'language of choice' for the latest version of ArcGIS, so if I end up working with it I will probably pick up the books sooner than later.
- How long ago did you get started? And where are you at now?
(Java) About 2 or 3 years ago I think. I'm proficient enough that I can usually accomplish what I want to, but not without some help along the way (such as API references, forums such as these, and a book or two). As I'm an enthusiast, not a 'real' programmer, I progress slowly.
I'm considering doing a part-time computer science degree by correspondence in the near future, so hopefully I can one day change that 'enthusiast' title.
- What learning methods did you employ personally to help you develop your skills in programming?
Books! Lots of them. Amazon became my best friend, and ate lots of my money. I'd often purchase multiple books on the same subject as there is always more than one way to skin a cat. I also found if I struggled to understand what one author was saying, another author may describe the problem better. Furthermore, I aimed to get a good mix of 'tutorial' books, and 'reference' books.
Second to that, playing around. I believe the best way to learn is by doing. I'd often discover a concept that I wanted to learn more about (networking, graphics, bits & bytes etc.), so would open up the IDE and begin programming. I'd never have a particular goal in mind, I just liked to mess around and see what I could do. As a result I've got lots of little programs stashed away that explore a particular concept, none of which are very complete or spectacular, but I keep them for future reference.
- What advice could you give to other programmers who might be feeling a little lost in what direction to take?
As mentioned I'm an enthusiast, not a programmer, so I don't really feel qualified enough to give any meaningful advice. The only thing I would say is "Nike: Just do it". If you are stuck on a particular problem and can't wrap you head around it, just start programming and playing around. You'll soon discover what you need to, and hopefully enjoy the process along the way. Not everything can be learnt from a reference.
- Is there anything you believe should be a "Rite of Passage" for programmers?
No. But as a newbie, that glorious moment when you first get animated graphics on the screen is very memorable. Start small and work your way up. Rome wasn't built in a day; nor was SimCity 2000.