Here are the top five areas that I think will become job requirements for many programmers and web developers.
1. Git or any “Distributed Version Control System”
Obviously you have heard of Git by now if you are using open source software in a professional capacity. Many managers are asking themselves why they should bother switching from SVN to Git? What are the benefits?
In the future we will all have our own copies of repositories. Merging and branching will replace painful reintegrates and the merge hell brought about by a long running feature branch. We will no longer bow down to a centralized master, who exposes our mistakes to our team with every experimental misstep. No longer will the village idiot bring down an entire repository with his careless commits. Version control is a problem that Git solved on SVN’s behalf.
Get Started with Git Today
You need to learn the basics of git now. Being a master isn’t a requirement yet but knowing the basics is going to get your prepared. You need to install git on your computer. You can use RailsInstaller, Cygwin, or run it native on Mac OSX or Linux. Start a new project and let the commits fly. Don’t be afraid to make mistakes. Set up an account onGitHub. Practice push your changes to GitHub. As your work you will have problems to solve. This will prompt you further down the git hole and move you closer towards being a master.
Why do I need Git?
Take a look at the top projects on GitHub. Rails, jQuery, Symfony, CakePHP, Modernizr, CoffeeScript, etc, etc, etc. This is where the herd is headed, so don’t get left behind.
Getting started with node
Install node, and check out some node tutorials. You will need time to wrap your brain around how to node, so keep the node docs handy. Learning node today will make you a top-tier web developer tomorrow.
Why do I need to learn node.js?
Learning Node has two benefits, the first being that the demand for programmers with experience in Node.js will rise due to the sheer maintenance requirements of the Node apps being written by today’s cutting edge developers. Secondly, learning how to program asynchronously will challenge your brain and make you a better developer by learning how to solve problems in a new way.
3. Concurrent Programming Languages
Web Scale is not only an unfunny meme, but a growing reality for many high availability websites. A busy site means a lot of things, mostly racks of hardware, craploads of caching and a fairly complicated infrastructure.Concurrent programming languages today are a a bit esoteric for most people’s web site needs, but on an enterprise level they really start to demonstrate amazing abilities. Concurrent programming languages like Erlang, Clojure andScala allow for parallel processing. As a simplified example, it’s like using 64 guys to lay bricks instead of 1. These languages specialize in dealing with organizing these processes and eliminating some of the pain in developing immutable, multiprocess programs.
Who’s using concurrent programming?
Github wrote it’s backend in Erlang. CouchDB is Erlang. Twitter uses Scala. Ever hear of Call Of Duty? Check out howDemonware uses Erlang to handle millions of connections. Big companies with big demands are investing in these technologies. These jobs are not going to trainees.
Getting Started with NoSQL
You should seriously just try MongoDB right now, in your browser. Then, take a look at every NoSQL product I mentioned. Read about them religiously and try to incorporate one into your next project.
5. Responsive Web Design
HTML5? CSS3? Old news. The biggest idea taking hold in the front end development world is called Responsive Web Design. The key takeaway from this concept is the fact that you shouldn’t be making separate layouts for difference viewport sizes, but rather, you should be laying out your content in such a way that you site will reflow content appropriately. In other words screen size, or rather browser window size should be the main determining factor in your layout, not device detection. This is a huge deviation from the current state of affiars, where mobile sites are being devloped as near seperate entities, and standard websites are hit or miss on a small screen.
Getting started with Responsive Web Design
Buy this book, Responsive Web Design by Ethan Marcotte. Then read this article by Ethan Marcotte on A List Apart. Sitepoint podcast has a great interview with Jeremy Kieth on the subject and the state of affairs or RWD. You might also like this tutorial on responsive web design from Smashing Magazine.
Why do I need to learn responsive web design?
The mobile web growing exponentially. It has a larger market share than any iOS app ever will, and your current visitors will appreciate being able to utilize your site on any device they own without a dramatic shift in usability.
I hope I have given you at least a spark when it comes to picking up one of these new techs. I do this out of love for my fellow developer. It is too easy to get into a comfort zone only to fall behind and ask “Who moved my cheese?” when the opportunities and paychecks start drying up. Spend at least an hour a day messing with something new and unfamiliar. Comfort is death, just ask the sharks who stop swimming.