Skills today’s software developers need to be more competitive
A quick look at the top computer programmes languages for 2014, and additional skills that software developers ought to possess to better positioned for the current market.
In newspapers in Trinidad and Tobago last week, and as reflected in our latest news roundup (published on Monday, 29 September), policy makers in the twin-island republic have recognised and are trying to address the limited software development talent that is available. In recent remarks made by the country’s Planning Minister, Dr Bhoe Tewarie, he indicated that a US software development firm with operations in Trinidad and Tobago had been looking for 40 local software developers, but found less than four:
Imagine we have all these engineers coming out of university and we have all these companies that are involved in ICT and yet we do not have any apps capability in this country. If we want to be in the new world we also have to understand how to create the capacity in order to do that…
(Source: Trinidad & Tobago Guardian)
To address this deficiency, Trinidad and Tobago has reportedly established and applications (apps) laboratory at the Centre of Enterprise Development, and it has partnered with Microsoft to establish a Microsoft Innovation Centre. The Centre will be formally launched in October.
In the short-to-medium- term, this apps laboratory and the innovation centre could boost innovation considerably in Trinidad and Tobago. However, with regard to increasing the country’s software developer numbers, it is unclear how those two initiatives would achieve this. Trinidad and Tobago already has a relatively well-educated work force and a relatively low unemployment rate, in comparison with other Caribbean countries. Hence the labour pool that can be tapped to increase the stable of developers may itself be limited.
Having said this, globally, there is a growing demand for software developers, which is expected to last well into the foreseeable future. In order for countries, and more importantly individuals, to position themselves to take advantage of those opportunities, first we are highlighting the most popular programming languages for 2014. Thereafter, we briefly discuss some additional skills that prospective (and existing) software developers should possess in order to be more marketable.
What are the programming languages that are in demand?
Currently, there are scores of computer programming languages in which applications are being developed. Though it might be possible to learn most of them, some are in greater demand than others. Table 1 lists the most popular languages from a number of resources.
Having said this, and unless one is positioning him/herself as a specialist in a particular area, today’s developers ought to have some proficiency in a cross section of programmes in order to be more marketable. Some recommendations industry experts have made include the following:
- in order to develop for the backend, proficiency in a server-side language, such as Java, .NET, PHP and Python, is crucial
- developers should know a native mobile platform, such as iOS, Android and Windows Phone
- developers should also know some basic HTML and CSS in order to have some insight into web development.
What other skills do you need?
While proficiency in one or more programming language would be essential to position oneself for a broad range of opportunities, it is also important to possess additional skills and capabilities. A few examples include:
- problem solving – as the entire reason behind software/application development is to solve problem
- detail-oriented – though there might be ways to be efficient is the development process, the process of writing good code tends to requires some degree of meticulousness and a systematic approach to check and test along the way
- teamwork – most developers tend to (or are required to) work in teams, which means that the ability to collaborate is critical. In order to do so successfully, excellent communication skills are also essential.
- project management – though an individual developer might not be required to project manage an entire assignment, he/she ought to understand the process, and how to track tasks, especially those that have been assigned to him/her and to other member of the team, to allow for better collaboration and coordination.
Image credit: Stuart Miles/FreeDigitalPhotos,net