I find myself completely immersed in what’s possible with technology and the direction it’s taking. In the last few months alone I’ve become proficient in various platforms, frameworks, libraries and strategies, yet when I look at what I still need to learn and gain experience on, it frightens me to my wits end. Why? Because I want to be an ultimate programmer!!!

This year got me thinking of what tech I need to specialise in, not only thrive in the future to come, but to be a part of life-changing projects and implementations that are already taking place. Below are my thoughts on this subject, but it’s important to note that this article will do well with as much feedback from everyone as possible. Based on everyone’s feedback, I intend to publish a follow up article, summarising the trends and opinions that everyone offers.

So, go grab a beer, take a read, and provide your feedback 😉.

My idea of an Ultimate programmer

I’ve worked with many technologies over the past few years and I keep up to date on what’s happening via many podcasts, books, events, etc. I’ve come to the conclusion that if I want to be a part of the many exciting projects that are already happening (outside the scope of general line of business applications), I need to ensure my skill set is divided into the following areas:

Cloud Development

Everything is moving to the Cloud and the sooner we realise it, the better. Gaining sufficient knowledge of developing “cloud-ready” applications is vital to one’s portfolio. I would highly recommend becoming a specialist using at least one of the following Cloud Providers:

Yes there are many other awesome providers out there, but from my standpoint, the above-mentioned make the most sense.

Integration

This is becoming an art-form on its own. Having knowledge and experience in not only integrating various on-premise and cloud-based services, but also chaining together services is the key to the “Internet of Everything”. A great tool to achieve this is Node-RED.

Mobile Development

Mobile has been around for a while now and there are absolutely no signs of it slowing down. You need to be in a position where you can easily develop mobile apps for at least iOS and Android. The good news is that there are many frameworks out there that allow for cross-platform mobile development. I tend to prefer Appcelerator Mobile, where you can design iOS and Android applications using JavaScript.

Internet of Things

This is gaining some serious popularity. People are whipping up amazing products, from noise-cancelling headphones, to controlling hardware with your mind, to wireless networks that range in miles, you name it. It’s becoming the age that old school movies tried to predict. A sound knowledge of Cloud development, Mobile and Integration is vital for taking on this awesome tech.

Virtual Reality

Ah, the very ingredient of the future. Virtual Reality is hitting hard and it’s only a matter of time before it becomes a household name and tool. This particular tech is still new to me in terms of developing for it, but It’s rated very high on my to do list. From my research, the best place to get started is Google VR or Oculus. Yes this means you are going to seriously be out of your comfort zone, but c’mon, who doesn’t want to play with tech like this. I highly recommend checking out as many samples as you can with these technologies. Udemy hosts some pretty sick courses to get you started.

Augmented Reality

This has been around for a while, but as technology improves, so does the demand for Augmented Reality. I recommend starting off with some AR mobile apps. The payoff will definitely be worth it. And trust me, it’s not as difficult as what it seems if you have a good enough understanding of Mobile and the use of IoT devices to introduce contextual awareness.

Cognitive Computing

Machine learning is the current craze and for good reasons. Technology has evolved so much that, as a programmer, you have access to SDKs and APIs to implement cognitive computing into your apps. I recommend starting out with IBM Watson on Bluemix. It’s for me the easiest way to get going with this tech.

Cyber Security

This is the black sheep of the family of recommendations I’ve mentioned so far. Usually, security specialists or ethical hackers don’t delve deep into programming applications, and vice versa. Yet, in today’s world and the future to come, I can’t stress enough the importance of understanding security and actually embracing it. Technology is moving so fast that the measures to secure transactions taking place on the cloud and via devices hasn’t caught up properly. I myself have taken on the challenge to become a certified ethical hacker, and through my training over the past few months, new doors have opened themselves and I suddenly see the world anew. I cannot recommend this skill set enough, especially for Cloud and IoT.

Closing

So, there you have it. My rundown of what I feel is required to be an ultimate programmer. It’s time to give your input. Have fun with this and remember, I’d like to follow up this article with a summary of preferred technologies and strategies based on everyone’s feedback.