How old were you when you started programming?
Like James, I'm a bit uncertain about dates with this stuff really but I know that the first computer I owned and did coding on was a Commodore Plus/4. I certainly didn't appreciate how unusual the +4 was at the time. It must have been around 1984 as they discontinued it a year later and I know it was a new machine at the time so that would make me 9-10.
I don't think that was my earliest bit of coding though as I know that at least one of my friends had a new ZX Spectrum and a girl who lived next door to me owned an Acorn Electron. I suppose my earliest memories of coding was basically boring those friends to death and getting into big fights as they wanted to play the games and all I wanted to do was sit there and type in the code listings at the back of the manuals. That will have been 82-83 so 8 -9 years old.
How did you get started in programming?
As I said above, it was all born from a fascination of the fact that rather than stick a tape in the deck and wait for 5 minutes while a game loaded then play the game. I was more interesting in the fact that you could type stuff in and make the computer do stuff that I'd told it to. Obviously, at this stage I think my childish fumblings were fairly rudimentary as, not knowing anyone else interested in programming rather than playing games, I didn't really have any other sources of information on programming available to me so I kind of had to work it all out for myself. I found myself wondering lately how someone like I was at that time would turn out if they had all the information and resources available to them that we have today on the internet, but I suppose that's a whole post in itself.
I do seem to vaguely remember some magazines with code listings in them, but I can't remember any more details than that. What I do know is that the excercise of typing in seemingly endless lines of code and then typing "RUN" only to find that I had a "redimmed array" or other more difficult to track down bugs that were either my mistakes or typos in the mag almost killed off my desire to write code.
A while later I remember a "computer club" in high school where they had BBC Model Bs and I think there was even an old Commodore Pet which I played with, writing rudimentary text adventure games for others to play. Also at that time the teacher who ran the club introduced us to the idea of connected computers as he used a modem with an honest-to-god acoustic coupler to dial up to some "online" BBS service (I forget the name) and download games and programs etc. Cool!
It hung on in there though, through owning an Amstrad CPC464 then an Atari ST. I think I'd pretty much drifted away from the whole programming thing for a while until I got to 6th form college when I decided to do a computing A-Level, it was at this point where, using a DOS emulator on the Atari ST I would spend nights, going right into the early morning working on my course project application. This was probably the point at which I started to really get the buzz of putting in all-nighters to get projects done.
The path as a coder was finally set in motion fully when the course teacher, Tom Threlfall, whom I respected greatly, commented on my report card that I had a "natural affinity with computers and programming".
What was your first language?
Probably the same as James, various flavours of BASIC. Then at 6th form, I dabbled with some C but with only a single textbook and no other sources of information, it frightened the life out of me and I would stay clear of C for some time. After that, it was Turbo Pascal, Turbo C and Microfocus COBOL 97 as they were the mandatory course languages for the first 2 years of my degree. Then while others went to Dephi I went to Borland C++ Builder having decided that C++ would be the best career move.
What languages have you used since you started programming?
- Turbo Pascal
- Turbo C
- Borland C++(With OWL)
- C++ Builder
- MS Visual C++ (Visual Studio 97/6)
- VBA (I know!)
What was your first professional programming gig?
Hmm. During my "year out" before my final year at Uni, I spent some months at a measuring instrument servicing company owned by a friend's father. There I worked alone developing a new inventory management system based on Access and VBA. I managed to integrate this with their non-networked calibration software (the cal app used Access so I had no choice) I then got their machines networked and came up with some new processes to streamline their operation.
I know it sounds corny, but the fact that something I had laboured over for months, sometimes battling against both technical and human obstacles and producing a system which although not perfect, dramatically increased throughput and reduced the company costs and allowed them to provide a much more seamless service for their customers really gave me a buzz. Up until that point everything I had done was abstract, theoretical stuff. But this was a real world system, which made a real quantifiable difference.
If you knew then what you know now, would you have started programming?
This is a tricky one for me. It's kind of what my brain is hardwired to do, it's what I'm damned good at (so I've been told) and given the right project with the right people I can still get that buzz about coding that I had when I was younger. If the question was "would you advise your son to become a programmer" I would say no. Personally, I feel that although technically the industry is heading for some exciting times, IT and software development as a career in the UK has been killed off.
I think despite my reservations, I would still have to say yes, I've met some great people through this job and had some moments of pure joy when I've been part of a team that has managed to pull off the seemingly impossible just in the nick-of-time.
If there is one thing you learned along the way that you would tell new developers, what would it be?
Hmm, one thing? Well I have to say that no one major thing jumps out at me so I suppose to get away from all the other cliched suggestions and hopefully pass on something insightful I'd probably say the following:
The biggest and best thing I ever did was become a contractor, above and beyond the financial and other forms of independence what it has enabled me to do is to keep my enthusiasm for the job as fresh as possible. The very nature of what I do means that every few months or sometimes longer, I find myself at a new place with new challenges and new people.
I know many people, very, very good, highly competent coders who have basically planted themselves in a company for years and years and have basically let themselves fester and rot their careers away to the point where only redundancy can offer them any salvation.
If you stay at one place for too long, you basically end up being the "guy who knows about x" and you end up being the maintainer of legacy apps. I think the worst thing that could happen to a good coder is that they end up at a single place for so long that it's far easier to hang around and wait to retire than to go out and find new challenges. So the advice I would give to a new developer would be to keep moving, it doesn't have to be by leaving a company, but always be trying to work on new things because once you become "maintainer guy" it's very difficult to move.