Quantcast
Channel: NH Learning Solutions - Programming
Viewing all articles
Browse latest Browse all 20

7 Skills Developers Should Invest In for 2016

$
0
0


7 Skills Developers Should Invest In for 2016

Every minute of the work day is an opportunity for developers to “develop” their craft. During this time, they can either make the decision to expand their skill set or chose instead to remain stagnant. Sadly, many choose the latter.

Determining where to invest your time and energy for growth as a developer can be the single most important thought process that you will undertake. However, to help you on your journey, below is a list of the seven key skills that innovative software craftsman should invest in for 2016.

1. Know a Native Mobile Platform
There are many ways to create mobile applications. From an HTML hybrid approach to an approach which renders native controls from another language. However, all of these have one thing in common: when running on the device, these applications are running on native code. If an organization is going to create and deploy a mobile application, they will need to utilize someone who understands the native layer, even if the application is built using another technique.

There are obviously a few good choices here. iOS, Android, and Windows Phone all provide rich platforms with vibrant development communities in which you can engage. Just this skill alone will greatly increase your value to your organization as well as your personal marketability as a developer.

2. Know a Basic Agile Development Process and Toolset
To be clear, I’m not saying every developer should be a project manager. I am saying that every developer needs to understand the process. They need to understand how to track progress on tasks and how to work with other developers to get things done. Even if you are a developer who usually works solo on projects, understanding agile development and an agile toolset can help you learn how to size your tasks as well as determine if you are on track for finishing your commitments.

There are many different flavors of agile development including Scrum, Kanban, Extreme Programming (XP), and many others. A part of this investment is doing a little bit of research to determine what method fits your current situation. Within my work at Universal Mind, I have found that many organizations have success starting with Scrum or Kanban and seeing where the process might need to be tweaked for them.

The available agile toolsets include varying degrees of complexity, and in many cases the choices are tied to the flavor of agile development that you will be adopting. It could be using a simple toolset like PivotalTracker or Trello, or it could be leveraging a sophisticated tool like JIRA Agile.

3. Know JavaScript
I would not have recommended this three years ago, but JavaScript is truly becoming universal. There is not any tier that JavaScript cannot touch to some extent. Currently you can utilize JavaScript to write mobile applications, server applications, program the data tier, create a blogging engine, develop and execute a custom workflow and pretty much anything else you can think of.

One of the big shifts that has been slowly happening is the ability to use JavaScript as a shared logic layer between native experiences. As the ubiquity of web technologies grows, I expect that the ability to use JavaScript in this manner will grow to include most platform (included non-mobile ones).

I must make one important caveat here. JavaScript means different things to different people. I don’t mean ‘know jQuery’ or ‘know how to cut and paste from StackOverflow’. I mean really know the language. Read JavaScript: The Good Parts, understand prototypal inheritance, and learn how to think and program like a JavaScript developer. This will only benefit you in your endeavors.

4. Know a Server Side Language
This is a crucial element. If you are mainly a front-end developer, then you still need to have a cursory understanding of how things work on the back-end. Being able to create the entire chain from a front-end application through the API layer and to the database is an important skill set. Luckily in this case, there are a lot of choices. Java, .NET, Python, and PHP are all viable options (although there are wildly different levels of complexity with those options).

One advantage for developers is that if you already know JavaScript, NodeJS is a compelling option. It is amazingly easy to get up and running and do basic tasks such as setting up a basic web server, creating simple test services for a mobile application, and deploying applications to the cloud with services like Heroku and Nodejitsu. I use NodeJS heavily in our Research and Development efforts at Universal Mind, and we have used it for production with many of our clients’ applications. Many organizations like Paypal also have it as an emerging element of their architecture.

5. Know Basic HTML and CSS
Nothing is as ubiquitous in the developer landscape as web technologies. Most every platform has the ability to render web content and HTML has become a de facto way of abstracting layout concepts for many technologies. Even if you don’t do web development, having an understanding of HTML and CSS will only benefit you.

Another aspect of this relates to your public face as a developer. I think every developer should have a blog of some sort. This helps with overall personal marketability as well as cataloguing the things you are involve with. While many solutions exist for cataloguing ideas without having to leverage HTML directly, it is still beneficial to know.

6. Know How to Maintain a Project Over Time
This can take many different forms. For example, you could put some of the software you have written out as an open-source project. Additionally, you could release an application in the iOS App Store, Google Play Store, Mac App Store, Windows Phone Marketplace, etc… In short, you need to know what it takes to put some software out there where you are the maintainer of the codebase and its roadmap.

One of the key benefits here is that you need to understand how your choices as a developer can directly affect the portability or extensibility of your code base in the future. As a developer or architect, you need to understand that your choices have consequences. There is no better way to learn that then managing your own code base over time.

7. Know a Good Tool for Tracking Tasks and Issues
Tracking both tasks and issues for a project is an essential task that developers will encounter on a daily basis. While there are some quality tools that are free (such as Github Issues or the issue tracker in Bitbucket), in most cases developers will also leverage more sophisticated systems like JIRA in the development process. It is important to learn these tools just like any other tool in your arsenal.

Learn to use these tools in a way that benefits you and streamlines your workflow. Use them on your side-projects, and use them even when you think it might be overkill. Learn how to do things which save you time like linking and closing issues with your commit messages. In short, if you are going to use it — you need to be good at it.

Resist the temptation to believe that 100% of your responsibility lies in code. To become a well-rounded developer requires a skill set that spans technology, process, and toolsets. With the shifting digital landscape, developers who have invested in these areas will find themselves certainly in demand in 2016.


At New Horizons, we’re talking about web design and web development everyday—and not just with a variety of clients, but with leading vendors—about industry trends and real-life challenges.

Click here if you would like to learn about Web and Mobile App Development training from New Horizons. Also, if you found this article interesting, helpful or useful, please use the ‘Social Share’ buttons below and spread the word across your networks.



Viewing all articles
Browse latest Browse all 20

Trending Articles