In 2009, rock star devs used to pimp jQuery and most web Ninjas were highly skilled at Rails. Then rails became a ghetto and jQuery became a fat wife. But in the year  2015, things have changed. Javascript has been crowned the new emperor of the interwebz after a long exilePHP 6 finally came out, and a collective wave of “meh..” washed over the community. NoSQL finally became a contender and Git made SVN embarrassing to put on a résumé. 2015 also marks the year that the mobile web started to merge with the regular web, and creating a separate mobile site was considered a high crime against accessibility. You must protect yourself with preparation.

Here are the top five areas that I think will become job requirements by 2015 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?

Distribution

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 on GitHub. 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, CakePHPModernizr, CoffeeScript, etc, etc, etc. This is where the herd is headed, so don’t get left behind.

2. Server-side Javascript with node.js

You already know Javascript right? Well it runs on the server side now. In fact, it’s the server. Surely even the coldest, densest rocks have heard the echoes of node.js, which has been embraced by those in the know, including the curmudgeonly Douglas Crockford. (You know, the guy who discovered JSON). Node is the new rails, only twice as hard to understand. Kind of like vim compared to anything else. Node let’s you program i/o in a language that you already use, and solves the problem of multiple concurrent connections quite nicely.  You will laugh at how hard it is to do simple things in Node, and how easy it is to do really hard things.

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 and Scala 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 how Demonware uses Erlang to handle millions of connections. Big companies with big demands are investing in these technologies. These jobs are not going to trainees.

4. NoSQL

You could probably bundle NoSQL in with web scale, considering that’s where the meme started. In fact NoSQL is a fairly diverse set of technologies for dealing with data storage and retrieval, usually across multiple machines. Databases like MongoDB use a javascript syntax instead of horribly complex sql queries, and can scale to insane levels. CouchDB, Redis, Membase, Cassandra and other NoSQL products are exploding onto the marketplace. You are starting to see them listed as “Nice to haves” on your craigslist job ads. I would not argue that these technologies are killing SQL, but they will be bigger players in the future as corporate acceptance of NoSQL becomes the norm.

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.

Summary

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.

  • Pingback: abcphp.com

  • Pingback: Protect your career with these 5 Web Development technologies … | Internet blog

  • Pingback: Protect your career with these 5 Web Development technologies … « Web Development Key

  • http://twitter.com/VinnyVinnix Vincent Cifelli

    #2, I like the idea of server side JS, since I use JS so much already it would be sweet to use it right? My question is why is non-blocking a good idea?

    • Anonymous

      Non blocking is important because it utilizes less overhead than threads, like Apache would use, hence increased scalability.

      From nodejs.org:
      But what about multiple-processor concurrency? Aren’t threads necessary to scale programs to multi-core computers? Processes are necessary to scale to multi-core computers, not memory-sharing threads. The fundamentals of scalable systems are fast networking and non-blocking design—the rest is message passing. In future versions, Node will be able to fork new processes (using the Web Workers API ) which fits well into the current design.

  • http://twitter.com/veepiz_africa Veepiz Africa

    Great article and thanx for sharing…

    • Anonymous

      Thanks for reading

  • Pingback: Protect your career with these 5 Web Development technologies … | Web Development London

  • http://profiles.google.com/bousquet.n Nicolas Bousquet

    I do not agree on the title.

    You could have say “5 cool technologies to learn” or something like that. The thing is even if theses shiny things are cool but nowere ibiguitous. On the contrary they are somewhat not used in pratices. Only a few use them and you can bet in 5 years that focus will change to differents things. Maybe, I really say that, maybe, one of theses will seatle, or one that is not even born yet or you didn’t spoke of. But no more.

    SVN is the most widely used VCS. I jumped on the mercurial bandwagon myself, but really it is not that important. You’ll be able to pick up whatever VCS required for the job (as I have to deal with clear case at work for example. I hate it, but I’am not stupid, I can manage to learn a VCS when I need it).

    Server side js… Would be nice if Rhino was not there for 15 years. Would be nice if it used synchonous IO with thread instead of this non blocking IO stuff as all theses callback make spaghetti code difficult to maintain and debug. There is an actual reason most API use blocking IO despite the fast all platform support low level blocking IO for years. This would be nice too if node.js was not in js. Well not really. Would be nice if JS had real IDE and tools support with refactoring, real completion and it had professionnal feature like packages. Node.js is purelly hype and cool experiments. Nobody use it in the enterprise world and it could disappear totaly unoticed in 2 years.

    • Anonymous

      Thanks for your comments!

  • Pingback: Future Technologies – Web Development « Tech Hub

  • http://booksforgeeks.com/ Dave Smith

    Rails already is a ghetto, a horrid, horrid community. You should perhaps mention that the value of DVCS is for open-source projects. It will never, ever be practical for professional, team-based development no matter how much the fanboys crow about it. In that regard, the emperor has no clothes.

    • Byte Jockey

      Regarding the practicality of DVCS for professional development ( or in manager-marketing speak “the enterprise” ), I have to disagree. It’s in use in several large companies I have dealt with ( I’m a consultant, the horror… ). Are there companies that will stick with things like Microsoft’s TFS? Perforce? You bet. Are there companies that have found value in DVCS? Damn straight.

      Opinions are totally acceptable, and everyone is entitled to express them, however, do not confuse opinion with fact.

  • Brad

    The point of the article is a good one…think about and understand these technologies to *protect your career*…not because they’re cool or in heavy use. These are technologies that represent the next generation of Web applications.

  • Pingback: Cheatsheet: 2011 06.20 ~ 06.30 - gOODiDEA.NET

  • http://twitter.com/sqlhorror Roopesh Shenoy


    You will laugh at how hard it is to do simple things in Node, and how easy it is to do really hard things.”

    1 week of nodeing and I totally agree!