Sunday, August 10, 2014

10 niche technical skills and technologies in demand

Over the last two decades we had been witnessed what I call the "popularization" and "democratization" of software development. If a while ago programming computers was a niche skill for the scientists nowadays there are a lot of people with programming skills. Technologies like C/C++, Java, C#, Oracle, MySQL, MS SQL or even Ruby on Rails are not considered niche skills anymore: they are commodity skills.

So what are some of the newer / niche skills in demand? If you are a developer, read carefully as owning some of these technologies will take you out of the crowds:

1. Angujar.js

This is a front-end application framework developed by Google in the early 2010s. It is totally open source and quite simple and powerful compared to a jQuery for example. The frameworks allows for creating single-page-applications in a similar syntax with the tag syntax of HTML and Javascript but with a more content set of directives. It is currently a trend in mid size companies and Enterprise who are moving to Angular.js from the long iterative approaches of Javascript and jQuery.

2. WPF

Also called Windows Presentation Foundation, this technology allows developers to create Windows based client side interfaces. It is a growing trend in Microsoft intense shops including pure IT shops, document-intense shops, healthcare contractors and healthcare companies.

3. PhoneGap

PhoneGap is a mobile apps framework. It gained a lot of popularity over the last 3-4 years. The reason is that it allows the developers to create mobile apps using standard web development technologies and applications such as JavaScript and HTML as opposed to writing compiled mobile apps in Java or Objective C. There are significant reliability and data speed advantages when using PhoneGap.

4. Mongo DB

Mongo DB is a relatively new no-SQL type of database technology. It's not the only one out there but it's one that gets a lot of traction in the start-ups arena lately. Being an open source technology helps as well as a lot of young, skill full, enthusiastic developers embrace it. As opposed to a traditional tabular relational database, Mongo DB implements dynamic schemas and structures data in a manner similar to JSON docs. The technology is currently used in all kinds of applications from social media applications, through problem solving applications to graph-data needy travel and hospitality applications.

5. Scala

Scala is an OOP language running on the Java Virtual Machine. It is used for general software applications and it has a very concise syntax. The language was created to overcome certain weaknesses of the Java programming language. It grows a lot in popularity in the academic community and start-ups.

6. Selenium

Selenium provides an automated testing mechanism for large size web applications / web front ends. The bigger the shop you will work with, the bigger the need for Selenium. Selenium implements a record/playback type of tool to author the tests for a number of different programming languages. The tests are automated and they simulate the user's experience when browsing a site, filling out forms, submitting data etc. The test work across multiple different browsers and results are reported accordingly. It is an excellent tool if you have to test large scale sites with hundreds of pages and lots of contingencies.

7. Azure

Windows Azure is a cloud computing platform owned by Microsoft. While not THE cloud platform, this solution is growing in popularity with many of the Windows based shops. The reason is these companies are loyal to the Microsoft technologies and they have a lot of personnel already trained in these technologies. The platform provides support to build and deploy applications and services in a number of different programming languages and frameworks. Major competitors are Amazon and Rack Space. As cloud is a red hot technology and Microsoft has a strong footprint, it is definitely a platform you want to know.

8. Rally

Rally (owned by a company called Rallydev) is an enterprise platform that provides mechanisms and tool to implement agility and agile project management. While agility really depends less on the tools you use and more on your team's mentality a lot of big companies pay a close attention to implementing formal tools to support their agile initiatives. These tools may include source and process control tools, qa tools and documentation tools on top of their standard software development tools.

9. F#

F# is a  multi-paradigm programming language developed by Microsoft. It has functional and OOP. This strong programming language is many times used to generate code in ... other programming languages such as JavaScript and even C#. It is used in many enterprise-level applications of high complexity and especially where there is a shortage of traditional programming resources.

10. Scheme

Scheme is an artificial intelligence programming language. It is in essence not new (it's been around since the 80s) but it lately bubbles up in popularity as a lot of these difficult problem solving applications are brought back on the table. Scheme is a functional language and it is actually a version of the older Lisp. There are very few software developers competent in it and that's in many markets. Learn some Scheme by designing a chess game or something or try writing an image recognition application.

Please keep an eye on our blog as we will have soon write a series of articles to cover in more details all these technologies and tools.

Make it a great day!

Adrian Corbuleanu
Miami Beach, FL
http://wittywebnow.com