My first contact with computers was in the early eighties with Spectrums. I only got my first computer when I was 11.
Ever since that Amstrad 8088, my life has been around computers, most of the time playing games, even though I don't do it anymore. As games get better there is an increasing demand for memory and processing. I spent a lot of time tweaking DOS (the only OS I knew until Windows 95; I was a Microsoft boy till 3 yrs ago) to make new games run fast enough or run at all.
Even though when I was 15, a friend of mine and myself built an app to protect pirated games on a CD from being copied into a HDD and run without having the CD we provided in the CD drive. I only learned how to program properly when I went to Uni for a computer science degree at the age of 18. In my first semester I learned Pascal and made the effort to know everything inside the course book. After so many years of owning a computer I finally knew how to create something with it.
But that was all I did for the next 4 years. I knew the 'how to' but never made the effort to apply it. Occasionally I passed a course or two per year at Uni.
In 2001 my friends were building cool stuff and making lots of money with their programming (before the bubble burst). I was having some doubts about what I should do for a living and, on top of that, I was stuck with this computer science degree (5 years were gone and I only had passed 8 out of 38 courses). Still I decided to make an effort to finish it.
And that was when I really started enjoying it, so much, that I would team up with the lazy students (like I was before) so that I could do their work as well. I also started attending courses that I already had passed before, so that I could get more knowledge and experience out of them.
In 2005 I finished my degree (back then a computer science degree took 5 years), that year I was given the opportunity to teach Distributed Systems using Java for one semester at Uni. I enjoyed doing it but I was too inexperienced.
Afterwards I decided to leave the academic world for the commercial world (which my Master's coordinator wasn't happy about) where I've been ever since.
I had two mentors on my first job which helped me out a lot but still I had to learn loads of new technologies by myself (they didn't know them either).
Apparently, I was sold as an Oracle Consultant but I had no knowledge. :P
So, I buried myself in books (reading is actually one of the things I enjoy most doing). Most people find amazing that I read about 120 books in the last two years.
I learned XP in Uni but only when I started applying it commercially I could see the benefits. I got test infected after working for about a month in a project. I tried to convince my team mates but to no avail. I've seen their tests being commented out quite often… also the build server never built… so they never bothered.
Then I decided to move to a new country in search for an Agile company. I almost found one in the UK. They claimed to do agile and had many practices in place but management never bought into it. I learned a lot there even though I had no mentors. The execs suddenly decided to implement ITIL, and I knew that it was time for me to search for greener pastures.
In the meantime I was battleing with services being just transaction scripts which led me into realizing the importance of a rich domain model. I became rich domain infected! Eric Evans book also helped a lot by showing me the way.
It was by then that Enrique Comba Riepenhausen interviwed me for a job opening and presented me with the challenge of helping him turn the waterfallish company into a more agile one. I love challenges but this felt like Mission Impossible. Anyway, he managed to talk me into it. 3 months down the line I can see we are getting somewhere, specially because he had done a lot (like in an amazing lot) of ground work before.
I would consider myself an apprentice, as I put my white belt so often. My experience makes me feel a begginer sometimes when compared to so many others.
But I think it's the mindset that makes me feel like a journeyman.
It's the attention to detail and the real interest in knowing why things are the way they are, instead of just following recipes.
It's also the knowledge I've been able to aquire by reading and trying new things by myself on my personal time.
I've just started my journey and I would really like to have a mentor that could pair with me and point out more improvements.