My Coding Journey
Why did I learn to code and how long did it take?
These burning questions answered here!
An Early Start
To kick off this story, a bit about my background: my father taught programming at IBM (Assembly / ASM and COBOL) and worked in the software industry. We had a computer for as far back as I can remember (I was allowed to make cards in Harvard Graphics when I was a little kid, and was taught binary super early on). Knowing how to fix our computer before my parents got home turned out to be an important skill if I wanted to be able to continue to play computer games. I wanted new games to run on the PC that I had, so I learned how to tweak config files to get the best performance and fix issues running games. I always took available computer classes in school and I found the assigned work to be rather too easy, so the teacher got fed up with my playing games and instead got me to learn to program in BASIC (aged 13). I loved writing little programs to entertain my sister, and liked tinkering with computers in general, taking them apart and putting them back together again, that kind of thing.
Tech Support and Sysadmin
My first 'real' job was in tech support for Compaq (the computer manufacturer), and I loved to learn more and more about technology. I completed my MCSE (by reading and studying) and worked my way up from home user support, to business customer, to server and network support. I became a trainer for new employees and the technical lead in my team. The other people in my team didn't know about linux, and one of us had to learn, so I volunteered. I spent time with the old DEC (Digital) Unix guys, who would task me with various things that I had to go off and figure out how to do. At home, I installed linux on one of my old computers at home and back then it was a lot more complicated with a lot of unclear choices. During one install, I chose the wrong refresh rate and literally smoked a CRT monitor (which was kinda cool). At one point I had a Compaq Proliant 6000 rack-mount server (minus the rack) in my spare bedroom, complete with hot-swap SCSI drives and load-balanced NICs, and some routers and switches. (At least coding takes up less floor space.)
I moved into systems administration in my next job. I wasn't a fan of Perl, but liked Python. I did some bash scripting, learned the ins and outs of .profiles and administering linux in an enterprise environment.
Learning Web Development
In my spare time, I liked to read about linux and computers and that sort of thing, and one fateful day I discovered the "view source" option in my browser and fell in love with HTML. I read through other people's code and figured out how it worked, and got to work practing by making lots of really ugly websites (my GeoCities one was particularly laughable) and had a great time. My friend loaned me a book about DHTML and another friend provided me with a copy of PhotoShop and Dreamweaver and I was off to have some fun! I learned CSS and started dabbling with different techniques in JavaScript, like amazing drop-down menus (ha!) by following tutorials. In two of my technical support roles, I created intranet sites for the team to have a way to share information. In my spare time, I built websites for friends and basically anyone who would let me. I built an e-commerce site and storefront that sold clothes and it did quite well with just a bit of marketing. I built it with OSCommerce, this was about 2005. I later discovered WordPress and made a lot of sites with it, and also Drupal. (Regrettably, none of my blogging endeavours led me to be able to work from a beach somewhere exotic.)
Meanwhile, I became disillusioned with the way that the IT industry had changed. I was working in a big company and instead of solving problems, they preferred that we just send a tech onsite with a whole unit replacement. This was not really what I wanted to be doing, as it required virtually no thinking and a lot of looking up part numbers. I decided that making websites was difficult because I didn't know how to design things, so decided to enrol in design school (a short course, but it was really helpful).
After finishing my graphic design course, I found myself with a rather odd skill set and so I decided that freelancing was the way to go. I took a self-employment course. My freelance career was somewhat cut short because I instantly got pregnant and winning new freelance business while taking care of a baby and living in an expensive city were not a good combination.
Consequently, I took some time off and moved to the country. About 4 days after my baby was born, after a few days of being awake a lot at night and so having a lot of time to think, I decided to get over my fear of JavaScript (I could do menus and JQuery things but that was about it) and face it head on. I used MOOCs on Coursera and EdX, and on Udacity and Udemy, Codecademy and Code School. I've been working through the Free Code Camp (Javascript bootcamp) curriculum. Also, seeing as I kind of just put it off for too long, I'm working part-time on my Bachelor of Computer Science (majoring in Software Development) at UNE, I am doing a Java course this semester and just finished up a Python course, and I'm finding the maths classes to be strangely fun.
I don't really see myself as someone who has just taken up coding recently, I've been writing code for a long time and have worked in the software industry for a long time. Having had this time to focus, I'm certainly a lot better now than I was even a year ago. I've been fortunate to be able to have two days of uninterrupted free time every week in which to really work on my craft. I'm past the point of being overwhelmed by choice (that took a while), and I can grasp what most code is doing even if it takes me a while to write it myself. This story is still writing itself and I'm enjoying learning something new every day.