I think every software developer starts off their "career" with something like the above code snippet, and wonders what the hell it means.
public static void main!? I remember seeing this code for the first time at the start of Introduction to Computer Science at uni, back in 2004. I didn't even really want to do Computer Science; I was originally doing a Maths major, and I needed something to fill in my elective units, so I thought I may as well put that towards another major. I grew up with computers but never really had any interest in programming, so doing CompSci at university really only happened because I couldn't think of anything else to do at the time.
Looking back at my younger self (and indeed most of the other young people in that first year of CompSci), I’m amazed at how difficult programming seemed. I would struggle for hours just to put together a simple assignment, an assignment which would be about solving some trivial problem. As an example, one early assignment required us to implement a basic "change-giving" algorithm for a vending machine. Given a certain amount of money and an item price inputs, we had to calculate the correct amount and denominations of coins to dispense as change. I worked on this problem for weeks and couldn't find a way for the code to calculate the correct output. So, in a last ditch effort to "solve" the problem before I had to submit the assignment, I used a giant
switch statement for every possible combination of change to dispense. Terrible. Terrible terrible terrible.
Thankfully I got a bit better over time, but by the time I finished the degree I still didn't really think I would cut it as a programmer. The course seemed to teach us all little bits and pieces from many different areas of computer science, but I really had no idea how to put it all together for the real world. I’m not sure how much CS degrees have changed in the last few years, but I would hope they have more focus on real-world applications.
Getting a real programming job, joining the industry, and putting my skills and education to use in actually creating software used by thousands of people every day; this has really been the catalyst in kick-starting my programming career. When you spend most of your day, five days a week, pushing out code for software that actually makes money, that’s what really ignited the flame for me. Since then I've spent a lot of my "off hours" reading tech blogs, learning different technologies, and creating my own side projects. Software development, for me at least, is about constantly learning. I consider myself very lucky to get paid to do something that I genuinely enjoy and am very passionate about.
I’m starting this blog so I can hopefully start to give back to the software community. For years I've read and been inspired by blogs such as Coding Horror and Chase Seibert. I want to start putting my thoughts and experiences out there so that others may stumble across them one day and hopefully find them of interest.