Looking back on this article after nearly a year, I’m struck by how
quickly some of these trends have steamrolled. Of course, mobile
development was expected to be big. But the growth in tablets,
especially in Android tablets, has propelled that market to new heights.
Thanks to mobile devices that receive frequent updates (notably iOS
devices) and the short release cycles of Chrome and Firefox, it has been
possible for HTML5 to rapidly ascend to the top of the pile in many
ways. The Web development world has divided itself into two segments:
- The enterprise market running Java and .NET on the backend and using SOAP for communications
- The consumer market using PHP, Ruby, and Python on the backend with lightweight REST Web services
In fact, I am starting to encounter folks dropping the backend server
layer away significantly, in favor of a REST API and an HTML5 +
JavaScript front end communicating with the API. And thanks to the power
of jQuery and similar tools, the Web now easily matches the
functionality of the desktop in the UI department — something that’s
becoming obvious on more and more Web sites.
Looking ahead to 2013, I really do not think that the items on this
list need to change much. Learning Ruby and Python (and NoSQL databases)
are not mandatory items for your career, but they can certainly open
some doors to alternative career paths. Windows 8 development is not a
must-have either, and it remains to be seen whether Windows 8 picks up
adoption quickly enough to justify making it a priority. But this list
can still serve as a fundamental guide for your 2013 “techs I need to
learn” list.
What skills do you need?
Software development had a few years of relative calm. But now the
rollercoaster is back on track and it’s picking up speed, as HTML5 gains
a foothold and Windows 8 threatens to significantly change the Windows
development landscape. If you want to stay ahead of the curve, you
should consider learning at least a few of these 10 software development
skills.
1: Mobile development
If you don’t think it is worth your time to learn mobile development, think again. According to a recent Gartner report, Android mobile device sales outstripped PC shipments in the third quarter of 2012. Add in the other big-name mobile devices (iPhones, iPads, and even the “dying” RIM devices), and what you see is that mobile devices now dwarf PCs in sales. What does this mean? If you make your living from software that can run only on a PC (which includes Web sites that don’t work or are hard to use on mobile devices), now is the time to learn mobile development.
2: NoSQL
I appreciate a well-designed relational database schema as much as
the next person, but they just are not appropriate for every project.
We’ve been using them even when they aren’t the best tool because the
alternatives haven’t been great. The last few years have seen the
introduction of a wide variety of NoSQL database systems. And now that
major service vendors (like Amazon and Microsoft) support NoSQL as well,
there is no technical limitation on their use. Are they right for every
project? No. Are they going to replace traditional databases? In some
projects, and for some developers, definitely. This is the year to learn
how to use them, as they will only become more prevalent in the year to
follow.
3: Unit testing
We’ve seen unit testing go from being, “Oh, that’s neat” to being a
best practice in the industry. And with the increasing use of dynamic
languages, unit testing is becoming more and more important. A wide
variety of tools and frameworks are available for unit testing. If you
do not know how to do it, now is the time to learn. This is the year
where it goes from “resume enhancement” to “resume requirement.”
4: Python or Ruby
Not every project is a good fit for a dynamic language, but a lot of
projects are better done in them. PHP has been a winner in the industry
for some time, but Python and Ruby are now being taken seriously as
well. Strong arguments can be made for Ruby + Rails (or Ruby + Sinatra)
or Python + Django as excellent platforms for Web development, and
Python has long been a favorite for “utility” work. Learning Python or
Ruby in addition to your existing skill set gives you a useful
alternative and a better way to get certain projects done.
5: HTML5
HTML5 is quickly pulling away from the station. The release of IE 10
made the full power of HTML5 available to most users (those not stuck
with IE 6 or IE 8). Learning HTML5 now positions you to be on
the forefront of the next generation of applications. Oh, and most
mobile devices already have excellent support for it, so it is a great
way to get into mobile development too. And don’t forget: HTML5 is one
route for UI definitions in Windows 8.
6: Windows 8
Windows 8 may be getting off to a slow start, but being the top dog in an app store is often based on being the first dog in the race. The first mover advantage is huge. It is better to be in the Windows Store now than to take a wait-and-see approach. Even if Windows 8 sales disappoint, it’s better to be the only fish in a small pond than a fish of any size in a big pond, as recent app sales numbers have shown.
7: RESTful Web services
While I personally prefer the convenience and ease of working with
SOAP in the confines of Visual Studio, REST is booming. Even Microsoft
is starting to embrace it with OData. JSON really was the final straw on
this matter, relegating SOAP to be for server-to-server work only.
Unless your applications can run in isolation, not knowing REST is going
to hold you back.
8: JavaScript
Before Windows 8, it was easy for non-Web developers to look at
JavaScript as a Web-only language. No more! JavaScript is now a
first-class citizen for native desktop and tablet development, thanks to
the Windows 8 Modern UI and WinRT API. XAML + C# or VB.NET may be a
good way for you to get things done. But if you want to maximize what
you can get out of your knowledge, HTML5 and JavaScript are the best
bet. They give you Web and Modern UI/WinRT, and you can use
them for some of the cross-platform mobile systems out there, like
Appcelerator’s Titanium product.
9: jQuery
If you are going to do any kind of Web development where you are
working directly with HTML, jQuery is a must-know skill. While there are
plenty of credible alternatives, jQuery is quickly turning into the de
facto tool for rich UIs with HTML.
10: User experience
Other than getting that first mover advantage in new app stores,
there is little to differentiate many applications on a feature basis;
it’s a crowded field. User experience, on the other hand, is a different
story.
Creating a great user experience is not easy; it starts before anyone
even downloads your application and continues through to the uninstall
process. In the age of instant $0.99 and free app downloads, and
ad-supported Web apps, the barriers to switching to another application
are mighty low. If your user experience is poor, do not expect much
business.
Thanks & Regards,
"Remember Me When You Raise Your Hand For Dua"
Raheel Ahmed Khan
System Engineer
send2raheel@yahoo.com
send2raheel@engineer.com
sirraheel@gmail.com
send2raheel (skype id)
My Blog Spot
http://raheel-mydreamz.blogspot.com/
http://raheeldreamz.wordpress.com/
My Face book pages
http://www.facebook.com/pages/My-Dreamz-Rebiuld-our-nation
http://www.facebook.com/pages/Beauty-of-islam
http://www.facebook.com/pages/Health-is-wealth
"Remember Me When You Raise Your Hand For Dua"
Raheel Ahmed Khan
System Engineer
send2raheel@yahoo.com
send2raheel@engineer.com
sirraheel@gmail.com
send2raheel (skype id)
My Blog Spot
http://raheel-mydreamz.blogspot.com/
http://raheeldreamz.wordpress.com/
My Face book pages
http://www.facebook.com/pages/My-Dreamz-Rebiuld-our-nation
http://www.facebook.com/pages/Beauty-of-islam
http://www.facebook.com/pages/Health-is-wealth
No comments:
Post a Comment