5 years away from programming, boy have things changed
After enjoying 6 great years as a full-time software engineer, I decided to take a different path. I then spent the following 5 years doing more graduate school, and a variety of management/investment type positions. I staid relatively close to technology, but was not doing any active development during that time, except for maybe hacking a wordpress theme or plugin – which is not the same as building a software application.
I was not staying up on latest trends like I used to, so really got out of touch with my programming skills.
Once I decided I wanted to do my own thing this time around, I thought it would be relatively easy to get back in the saddle and start off where I left with software development. Turns out, software development skills are something that need continuous attention and time, otherwise you can lose them – just like any other skill.
I’ve already explained how I think my skills are due to this time away (amongst other reasons). So, in this post I want to talk about what went on in the world of software during those 5 years I was away.
For some perspective, when I left active coding was the summer of 2006. I was writing mostly back end server software in J2EE/Java using the Spring Framework, which was just 1 year old at the time. Since returning to development, I have not touched Java code at all (not because I don’t like it, it just hasn’t fit the requirements of what I’m working on), so I won’t be going into what has changed in the Java world during those 5 years since I frankly haven’t looked to see where things are now. Here are the main things I’ve noticed that are drastically different since I left:
To be fair, most of what I developed in my prior life was not web based applications, so I may have an inaccurate point of view, but most people I knew would not have considered using PHP for building out an enterprise type of application. PHP was for side projects or small websites. I rarely ever used PHP, so I would have never imagined I would be using it to build a company with (Yes, I confess, my name is Dan, and I’m using PHP for my startup).
I think this may be largely due to the Ruby on Rails movement, which I completely missed during my 5 years away. RoR v1 was released in December 05, so I guess technically it was around before I left, but not by much, and I had definitely had not heard about it until a year or so later.
I think the RoR push helped PHP grow up some. Now with latest versions of PHP (5.3+) and new frameworks (Lithium is my framework of choice), PHP can be a solid language for many types of applications.
I could have easily put RoR as its own bullet point of what came out while I was away, but since I really have not used it since returning, I decided I could not include it in my list. I’m sure many will say (in fact just yesterday someone did!) that I’m still out of the development scene if I haven’t adopted RoR, so I guess I still have something left to discover.
Places like SourceForge and FreshMeat (now Freecode) were around when I left, but I don’t think they had accomplished what GitHub has in terms of social development. GitHub launched in 2008, so benefited from understanding what social was thanks Facebook and the like. It’s amazing for me to spend time perusing through GitHub and learning from other peoples code so easily. I’ll admit I have not been so freely giving of my code samples as others are. I do use GitHub, but have a private plan so typically have mine locked down. I guess that is a factor of missing out on the social development scene while I was away.
Sites like Reddit and Hacker News have also contributed greatly to the concept of social development. Both launched while I was away, so I am just now getting into that scene (I mostly spend my time reading HN).
The concept of communities has obviously been around for a while, but I used to get most of my deep technology news from sites like TheServerSide.com and a few others I can’t remember, but those had much more of an editorial feel vs. social contribution.
Wait a minute, your telling me that if I leave the development world for 5 years, people are going throw away SQL completely? And on top of that, that I’m going to love it? Your crazy. It’s impossible. Relational Databases and SQL were the 1 constant in this world of software development. It didn’t matter the programming language you used, everyone could some-what standardize at the database level and use SQL to see into that data.
After returning to development, I started hearing of these databases like CouchDB and MongoDB. I realized that I was trying to make MySQL do unstructured stuff (i.e. dump json into a column) and started to play around with MongoDB.
What amazes me is how quickly I was able to just throw away years of thinking like a structure/relational database(not that you don’t think that way with NoSQL, but you get what I’m saying). Everything I learned in graduate school and years on the job out the window, just like that. Just plain crazy to think.
This one I am kicking myself over for missing out on and may do a whole post on later. I could have been at the fore-front of this movement if I were still in the thick of things. I was very involved with mobile development before I left. I had built applications in J2ME (is that even still around), BREW (anyone remember that Qualcomm platform?), and even Wireless Markup Language (WML). Those were the good ol’ days. Our WML app was the top played application on several carriers. It was amazing what little memory and screen sizes we had to work with, and touch screens were a thing of the future.
I had my doubts that mobile would ever become the platform that people thought it could be prior to Apple throwing it’s hat in the ring. The iPhone was released a year after I left the mobile world in 2007, and the rest, as they say, is history.
Now that I’m back to development, I have decided to skip the whole Objective-C/Android Java scene and jump straight to HTML5/Javascript for making mobile applications, which I believe makes sense for the type of apps I’m working on.
Holy Crap, where did JavaScript come from? When I left, JavaScript was something you used for just the very basic of things on the web due to browser compatibility issues. I remember when I first started developing web stuff having to do browser coding in both JavaScript and VBScript so it would work in IE, so we obviously kept our browser scripting to a minimum.
JQuery V1 came out in August 2006, literally the last days of full-time coding for me, so I completely missed out on that whole movement.
And now the thought of being able to write your entire application in Javascript, both server and client is just mind boggling. And now that I’ve gotten up to speed on JavaScript (I use Backbone.js rather extensively clientside), I’m blown away at the power of JavaScript (although not perfect!) and look forward to incorporating NodeJS into any new projects I work on.
Last, but not least, is the crazy notion that everyone should be able to start their own company if they want to. I spent my first career in development between 2000 and 2006, not the most ideal time to think of starting your own company. I just missed the first Internet Bubble and considered myself lucky to find a job in the software world. In fact, while I was part-time at the place I ended up going full-time, they laid off half our development team, and probably the only reason I wasn’t let go as well was because I was at school the day they did the layoffs and management didn’t know how to get a hold of me (I didn’t even own a cell phone in 2000!!), so I showed up the next day and realized half my team was gone and they decided to keep me once they realized I could do the work of the team(not really, but I said I could) that was let go for a lot cheaper since I was just part-time. Things got a little better by time I graduated, so they hired me full-time at that point.
Now that I have a little more knowledge under the belt and the guts (or stupidity) to turn down good C-level opportunities to start my own venture, I’m grateful that things are much easier to start a company. It’s cheaper (I can fund it myself to get started), there is more capital available (even though I’ve chosen to hold off on raising for a bit), and there is so much free stuff to help you build on top off. It really is a great time to be doing a startup.
Even though I learned a lot during my 5 years away, I sure missed out on a lot of things too. The last year I’ve spent getting back up to speed on all things software development related, and now feel like I am back on track and ready to launch this year.
Shameless plug: I’m still in search for my technical soul mate, so anyone out there interested, feel free to contact me.