Technology exponentially grows due to its nature. You create something that can create something. It's like bacteria replicating and mutating almost. O.O' Or new galaxies forming in star nurseries, whichever. When I was in high school every website was in static HTML and had flying toasters plastered all over the place. Most people didn't "need" a computer back then. Then a wondrous discovery was made. That you could profit from these bytes being sent. And so the tech world started to bloom.
When I was working for my first job our websites used the .NET Framework 2.0, which had been just recently upgraded from 1.1. Currently, .NET 4.5.1 is out, which offers tons of new features and new classes and new awesomez to play with. That was only 5 years ago. The last website I worked in we barely managed to upgrade to 3.5 right after 4.0 came out. And this is just one small module in my development world. Sql Server 2012 is out. Windows Azure, Web Pages 2.0, Owin and Katana, and the list goes on and on and on. And it goes for any programming language and for many other fields too. Doctors, good doctors, constantly have to keep up with new practices and procedures. And this is a good thing, definitely. There's still interest to advance these technologies further and further. So how does one keep up with this ever growing world. All I can do is talk about what I do to "try" and keep up. And it is a tough road.
This is the best way to pick up any new technology, and probably the most difficult. If you're in school or at work there is pressure from above to get your work done in probably the quickest way possible. I'll say this, at my past jobs I never once heard "an extra 2 weeks to use the latest and greatest standards? Deal!" If you're at home and let's say want to learn Ruby on Rails, it's up to you to find the time, make an agenda, and do the work. More importantly, the work belongs to you. You're the CEO of whatever you create. I try to create at least 3-4 new projects per year now ranging from websites, web services, mobile apps, desktop applications. And I make sure to use a new technology each time, which is difficult, because it hinders the process and leads to boredom much faster. But in the long run, it's the best approach.
When I first started to work with .NET MVC I began by doing what many other people do, I jumped online and started reading documentation as I followed along with my "Hello World" page. This went on for about a week, and I very quickly lost interest. I didn't know where to go from that example. Do I jump forward 10 pages? Do I skim the entire tutorial and see what sticks? So I created a new Visual Studio project, and started work on a project that I had an idea for earlier that week. A "Road Trip Tracking" website to be exact. I had drawn up notes earlier in the week also so I had a vague idea of what I wanted to create. A blank project and an idea was just the right motivation. I created the models and the view for the home page and Googled along the way. I spent about 2 months on this project. The functionality was complete, however I am no designer so the project sits there lingering until I can find someone to take care of that part. I learned tons about .NET MVC though. Things that I could do easily using web forms took forever it seemed but at the end I could compare these two technologies and list pros and cons and it just opens up the world that much more.
Friends and Co-Workers
I've had hundreds of conversations with my developer friends about possible cool new ideas and the pros and cons of this and that. And since many times we work on different projects there's a broader range of experience that can be shared. Most of my ex coworkers were PHP developers, as where I am a .NET developer and this mix made the conversations that much more interesting. One idea trickles into another and then another and before you know it a totally feasible project is sitting before your eyes. The hard part is actually acting upon said idea of course. Competition always breeds innovation I'd like to think. I once had a contest with my fellow co-workers after just such a conversation to see who could build it in the fastest time. I don't want to say how far I got or to toot my own horn, but I lost, badly.
Books are great if you're starting fresh and have no clue what you're doing. Because they cover a step by step process usually, you don't have to worry about any complicated and unrelated topics. However books do have their downsides. It's slower for one, and picking the "right" book is easier said than done. When I first wanted to dive into .NET MVC I also jumped on Amazon and began looking for a good starting point. Two book purchases later I realized I wasn't getting anywhere fast. 200 pages in, and I was still learning about very low level internals and such. Not a great way to keep motivation up. But having said that it's a good way for beginners to see a project from first "hello world" to last "goodbye" even if that's all the project does.
I have a philosophy that every new project I work on, needs to be able to teach me something that I didn't know before. Currently I'm in the thrones of learning how to implement, develop, and launch and Android game and it's a challenge of course. I could of just as easily decided to build another .net website about some niche topic, maybe automatically generating content so I wouldn't have to touch it, which I have done in the past I must admit. However, 2 years later when I can't figure out how to compile my project I'll only have myself to blame.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.
Stay up to date
Sign up for my FREE newsletter. Get informed of the latest happenings in the programming world.