2017 Developer Learning Survey Report

What Does This Report Cover?

How to Train Software Developers in 2017

Executive Summary

Over the past decade, DevelopIntelligence (DI) has provided world-class, role-based learning solutions for software developers and engineers. As the technology industry changes, engineers and companies are continually challenged to keep pace.

Recently, it has become clear that in order for organizations to achieve strategic initiatives as well as keep their employees engaged, both R&D and L&D departments must be aligned and work closely with one another.

According to go2HR.ca, up to 40 percent of employees leave their jobs within the first year. Staff turnover is expensive–several studies report that the cost of replacing an employee averages six to nine months’ salary. In other words, to replace a developer earning $130,000/year could cost the company between $65,000 and $95,000 in recruiting and training costs!

In 2014, DI conducted the industry’s first developer learning survey, which yielded valuable insights into the learning and development needs of software developers. We recently repeated the survey with double the sample size, reaching out to almost 800 software professionals. The survey was structured around three broad areas: Developer Learning Behaviors, Developer Training Preferences, and Developer Training Requirements.

Outlined below are the key findings from the 2017 DI Developer Survey.

Developer Learning Preferences

On average, respondents spend seven hours per week of their own time learning new skills necessary to do their jobs. On the other hand, respondents spend an average of just two hours in formal training opportunities.

The survey suggests that developers do not receive enough on-the-job time to learn about current and future technologies they need to successfully complete their job tasks. We recommend that HR and L&D managers acknowledge this after hours learning investment and replace it with regularly scheduled, brief–yet meaningful–topical training opportunities.

When highly-skilled technical workers are denied the opportunity to grow their skills, they begin to look elsewhere for employment.

Most Desired Forms of Training

Senior Developers (5+ years)

36%

Reading

22%

Instructor

22%

Videos

Junior Developers

42%

Reading

21%

Videos

14%

Peers

13%

Instructor

With the growth of platforms such as Pluralsight, Udemy, Coursera, and others, junior developers are including more video training in their technical self-education. Video training can be an efficient method for teaching oneself the fundamentals of different technologies–however, it can be difficult to find videos covering intermediate and advanced topics. It is also challenging to find videos tailored to specific development stacks. Our data show that once developers are well into their careers, private ILT courses become as preferable as video training.

These data–coupled with our extensive experience in developer training–lead us to recommend that L&D managers adopt a blended learning strategy which combines reading with private, dedicated training courses, along with outlets for peer-to-peer mentoring and coaching (e.g., internal company meetups). Online technical libraries or video libraries such as Pluralsight are ideal resources to include in such a blended learning strategy.

Private, dedicated ILT courses of three to five days in length are rated by developers as the most effective way to learn. Of the developers who participated in a private ILT event over the past year, 83% rated it as an effective way to learn and adopt new technologies.

Based on the survey results, we recommend three-day courses as the most effective option in terms of cost, retention, and project schedules. In addition, we recommend that learning and development managers who strive to lower the cost of learning should avoid investing in mobile learning. While this segment is rapidly growing within the learning industry, 32% of developers and those in related roles rated mobile learning as their least favorite learning method.

Conferences represent a popular trend within the development community and indeed, some companies spend large portions of their training dollars on conferences, foregoing ILT, online libraries, and other learning solutions. However, our respondents rated conferences as their second least favorite learning method. Therefore, managers who plan to spend training dollars on conferences should view that investment as one which will boost employee morale and create technology awareness, rather than an investment in long-term productivity gains.

Developers seek out training for practical purposes. Over 55% say they seek out training in order to meet current or upcoming needs or to advance their careers. By increasing the learning solutions offered to the engineering staff, managers demonstrate a commitment to employee and organizational success.

DI regularly finds that a minimal learning investment of $800 to $1,800 per engineer per year delivers significant returns–as much as 20 to 30%–in employee morale and productivity gains.

Current Skill Gaps

The survey identified the three largest skill gaps as 1) JavaScript and related frameworks/libraries/tools, 2) software architecture and design patterns, and 3) continuous integration/deployment tools.

JavaScript

While JavaScript has been around for 20+ years, it has seen a recent spike in popularity and it has become considerably more complex of late. Unsurprisingly, 55% of developers reported that they want more JavaScript training. And 27% said they wanted training on ES6, the newest version of the JavaScript language which introduces many new features to the language.

Our survey uncovered a strong training demand for JavaScript frameworks, libraries, and related tooling–e.g., 42% desired Angular 2 training. We foresee Angular 2 being less popular than Angular 1, but we expect it will still be a widely-adopted framework and a major player in the enterprise space.

38% of developers reported a desire to learn React, which is a JavaScript library designed by Facebook for building complex user interfaces. React is the fastest-growing ecosystem in web development and we believe it will continue to grow at a rapid pace into 2018.

Design Patterns and Architecture

We found a strong demand for high-level software engineering skills such as software architecture (55%), design patterns (52%), high scalability (40%), and developing secure code (40%). These results indicate that many developers want to take their software development knowledge to the next level. That is, they want the skills that will allow them to transition from developers/programmers to engineers/architects. This transition involves writing secure code that scales well and lends itself to collaboration.

Architectural skills are difficult to instill in developers, which may explain why the median salary for Software Architects is roughly  $116,000–more than any other IT position. It is vital for organizations to focus on cultivating and retaining their Software Architects. Investment in software architecture training will both increase return on software investments and decrease the amount of rework which stems from poorly-designed applications.

High-Demand Programming Languages

Java continues its long streak as the number one language on the TIOBE Index and number 2 in the RedMonk rankings, and consequently, Java training remains in high demand–30% of developers would like Advanced Java training in the next 3-15 months and 28% desire Introductory Java training.

Many of the programming languages that developers want to learn are languages that have been popular for 15-20 years, but we’ve also discovered that developers want to learn two new languages– Go (29%) and Swift (20%).

Nearly half of the respondents are eager to learn and apply new NoSQL concepts and technologies such as MongoDB or RethinkDB. NoSQL (or “document store”) databases are relatively new to most organizations. We have found that one-day “NoSQL Concepts and Landscape” sessions offer a quick introduction and allow organizations to evaluate the impact of NoSQL as well as identify which specific tools and technologies to adopt.

Final Thoughts

CEB CIO Leadership Council recently released their annual Key Findings from the IT Budget Benchmark for 2015-2016. The nearly 160 organizations participating in the study represent nearly $40 billion in IT spending and these organizations grew their IT training budgets by 5.1% in 2015.

Most of our clients invest, on average, $1,800 to $3,300 per employee on training annually, though engineers frequently express the need for even more training.

One way in which managers can increase learning opportunities for engineers without increasing training budgets is to decrease costs associated with operational overhead. Typically, 60-70% of a training budget is allocated to operational costs, including employees, learning management system (LMS) products, and collaboration products.

However, most development organizations already have informal collaboration and knowledge-sharing products in place, in the form of wikis, project-management tools, or other similar tools. Rather than investing in yet another collaboration product to help facilitate knowledge sharing within the organization, managers should leverage and formalize the tools already in place. This will reduce overhead and improve morale as the organization recognizes and embraces the tools their employees find useful.

Overall, the 2017 DI Developer Survey Report demonstrates that developers are already engaged in training, have clear areas of desired skill growth, and know which training methods are most effective in building their skills. By creating and implementing learning plans based on their development team’s needs, managers are more likely to help their organizations stay competitive and retain top talent.

Report Overview

Over the past 13 years, DevelopIntelligence (DI) has provided world-class, role-based learning solutions to software developers and engineers. The technology industry is constantly evolving, and engineers and their organizations face a continual challenge to keep pace with these changes.

Software development is rapidly transforming into a new set of technologies which better align with the creation, deployment, and maintenance of cloud-based web applications. This marks a fairly dramatic shift away from on-site, client-server types of applications. Corresponding shifts are occurring in DevOps (development + operations), project management, and release processes. Correspondingly, developers need to be more conversant with–and possess a deeper knowledge of–development technology, as well as processes. In order for organizations to truly keep pace with this evolution and enable strategic investments, both research and development (R&D) and learning and development (L&D) divisions must become better aligned and collaborate more closely.

In late 2016/early 2017, DI conducted the industry’s second developer learning survey, anticipating that the results would provide insights necessary for R&D and L&D to bridge the collaboration gap. This survey was an updated version of our 2014 Developer Survey, in which our goal was to determine where and how the developer training landscape was changing.

The 2017 DI Developer Survey was conducted between November 2016 and March 2017. Its purpose was to assemble an in-depth narrative of the training needs of software developers as well as industry trends. Nearly 800 software-development professionals from 200+ companies across more than 40 industries and 50 countries provided feedback regarding their current work environments, technology trends, and the ways in which they learn best. Our survey respondents hold a variety of positions including software developers, project managers, and development managers.

The data and recommendations in this 2017 DI Developer Survey Report are intended to better equip L&D managers and software development executives in the development of comprehensive learning strategies which will:

The survey was structured around three broad areas: Developer Learning Behaviors, Developer Training Preferences, and Developer Training Requirements. Both closed- and open-ended questions were asked in order to collect consistent, quantitative responses, while delving into qualitative responses regarding underlying issues.

Developer Learning Behaviors

It is important to understand what motivates developers to undertake technical training as this directly influences material retention and instruction. A significant portion of the survey focused on developer-learning influencers and preferences as well as current methods of acquiring new skills.

Motivators

Overwhelmingly (68%), developers are motivated by curiosity or a desire to improve their skills, indicating a deeply personal motivation and enthusiasm for their craft. HR and L&D executives need to be cognizant of these key drivers when designing comprehensive learning programs. Though not often included in a traditional learning plan, providing developers with time to explore new technologies can greatly impact innovation, employee retention, and job satisfaction.

Developer Learning Motivations

Curiosity and skill improvement are not the only motivators.

34%

Completeness

Learn tips, tricks, best practices, etc. to deepen my overall knowledge and abilities.

34%

Curiosity

Staying up on the latest and greatest technologies for my career.

24%

Current or Future Need

Learn how to use a technology for an upcoming project/feature.

6%

Specific Need

Learn how to fix something I am struggling with on my project.

Developers want to succeed in both current and upcoming projects (future and current needs–24%). These findings suggest that the type and structure of the learning (examples, labs, use cases, etc.) should be as relevant as possible in order to be most impactful and keep developers engaged throughout the learning experience.

Preferred Learning Method

Survey respondents indicated that their most preferred methods of learning are reading and instructor-led training (ILT) with their peers (Group ILT) in a classroom setting. When combined, these two types of learning accounted for 54% of all responses.

Developers With Fewer Than
5 Years of Experience

42% Self – Reading a book, tutorials, or how-to’s
21% Self – Watching videos or e-learning courses
14% One on one – Learning from a peer
13% Group – Going to an in-person training course
6% Group – Going to a conference
2% Group – Participating in an online instructor led training course
1% Self – Mobile learning / offline learning on my iPad / smartphone
1% Group – Going to a meet-up / user group / brown bag / tech talk

Developers With More Than
5 Years of Experience

36% Self – Reading a book, tutorials, or how-to’s
22% Self – Watching videos or e-learning courses
22% Group – Going to an in-person training course
9% One on one – Learning from a peer
9% Group – Going to a conference
1% Group – Going to a meet-up / user group / brown bag / tech talk
1% Group – Participating in an online instructor led training course
0% Self – Mobile learning / offline learning on my iPad / smartphone

The least favorite methods of learning are attending meetups (2%), virtual ILT (2%), attending conferences (6%), and mobile self-paced learning (1%).

For training to be well-received by developers, L&D managers should focus on providing learning opportunities that are slightly more traditional (ILT), yet highly customized, role based, and lab intensive.

While the current training industry trends such as mobile learning and VILT are poorly received by developers, they may have a place in an organization’s learning plan. For example, in order to create awareness of a new technology, a VILT in the form of an “infomercial” may be a good use of this training modality. However, the survey suggests that adopting mobile learning or VILT as a way to save money will likely result in wasted training dollars and disaffected employees. Before adopting either of these less-popular strategies, executives should identify the motivation for the modality, the desired outcome, and the significance of that outcome on the business.

Time Spent Learning

Respondents revealed that an average of seven hours per week of their own time is devoted to learning. Given the average salary of a senior-level engineer, this “learn-on-your-own” approach works out to be a costly model, to the tune of $18,750 per engineer per year.

Learn-on-your-own approach costs businesses $18,750 per engineer per year.

Hours Spent Learning

Hours Spent Learning Chart

On the surface, this model may appear to be a commendable and responsible personal investment on the part of the engineers. More than likely, however, this learning is done on the job, creating technical debt when measured against project plans and software quality.

Many software companies recognize that developers tend to be innovative when they’re given time to explore technologies that may not relate to their current daily tasks. As an example, Google allows developers to spend up to 20% of their work hours on approved special projects in an area unrelated to their current tasks. This figure should be included when calculating any anticipated loss of productivity due to formal training, as this time is effectively a sunk cost that is already being absorbed by the organization.

This practice of self-improvement should be encouraged throughout every engineering organization. Engineers whose companies acknowledge that the activity already exists and support the practice through company-sponsored resources (e.g., Pluralsight) feel supported in their jobs.

Organizations with online libraries that provide analytics or usage reports should perform quarterly reviews of these data in order to identify, organize, and regularly schedule ILT-based learning opportunities focused on the most-desired skills. These resources, combined with special projects or hackathons, create a collaborative environment of “learning and doing.”

Learning research continually supports the notion that this type of comprehensive approach cements new skills and leads to rapid productivity gains.

Online Learning Resources (Video vs. Text)

In addition to instructor-led training, developers have a strong preference for reading and watching videos. We asked developers to name their go-to resources for learning new technologies and keeping their skills up to date.

91% of respondents said they use Stack Overflow, a Q&A site featuring over 10 million questions/answers from all aspects of programming. Stack Overflow is part of Stack Exchange, a network of Q and A sites on different topics such as Linux, Information Security, and general Computer Science. 41% said they use miscellaneous Stack Exchange sites as part of their self-teaching.

71% reported using GitHub as a learning resource. GitHub is the largest code hosting repository site and features wikis, discussions, and documentation for many major open source projects.

Online Learning Resources

Stack Overflow
Github
Google
Google
Youtube
Other StackExchange Forums
Mozilla Developer Network (MDN)
Assorted developer blogs
Coursera
HackerNews
Microsoft Developer Network (MSDN)
PluralSight
Lynda
CodeSchool
Udemy
Slack
Google Groups
Safari Books Online
Other

63% of our respondents reported using Reddit–the social forum site–as a learning resource. One might not think of Reddit as synonymous with programming tutorials, but Reddit features dozens of programming-related ‘subreddit’ forums on topics such as Opsec and JavaScript, many of which boast hundreds of thousands of active members.

Video learning sites were less popular than text-based sites but still quite popular with our respondents. 29% reported taking a course through Coursera, a university course hosting site. 20% said they had learned using Pluralsight’s IT-centric video course library.

Developer Training Preferences

As ILT continues to be a major preferred source of learning for developers, understanding its current use and perceived value is important in devising new and effective comprehensive learning programs.

Video learning was less popular than text-based sites

Learning Methods

33%

Video

67%

Text

Frequency of Formal Training

The lack of formalized training opportunities within the technology sector is alarming. Respondents reported that 71% of employers do not provide formal training opportunities for their software developers on an annual basis. The ATD State of the Industry 2014 report indicates that employees across all industries and professions logged an average of 36 hours of training annually in 2013.

The technology labor market is experiencing the lowest unemployment rate in years–recruiting and retaining talent is becoming consistently more difficult.

Course Taken Through Employer

29% Yes
71% No

When highly skilled technical workers are not given an opportunity to grow their skills, they begin to look for employment elsewhere.

The 2017 DI Developer Survey confirms that engineers feel better-equipped and more productive (54%) when they receive formal training.

Organizations which continually invest in engineer learning and development enable engineers to leapfrog their competitors through innovation and the invention of disruptive technologies and software solutions. Over the next 6-9 months, the level of training provided as a key benefit to developers will also directly influence the motivation and retention of key workforce members.

Managers experiencing high rates of turnover or difficulty in attracting quality talent would do well to evaluate the learning and growth opportunities provided to their engineers. An additional investment in training is easily recouped in savings associated with lower attrition rates.

Types of Formal Training

Those respondents who received formal training were asked in-depth questions about the learning solution in which they participated.

Overwhelmingly, ILT was the most commonly utilized method of developer training. Moreover, 61% of the time, this type of instruction is private or dedicated to a group of individuals from a single company.

The trend toward increasing training through ILT is expected to continue, evolving to meet industry expectations. As software becomes more complex, traditional ILT will gradually shift to more project-oriented training focused on creating nearly real-time, production ready hands-on skills.

47% Private ILT (instructor led training – private offering just for your company)
36% Self-paced (eLearning, Lynda.com, Pluralsight, etc.)
18% Seminar / Conference
10% Public ILT (instructor led training – public offering at a training company, like LearningTree)
4% Public VILT (virtual instructor led training – public offering)
3% Private VILT (virtual instructor led training – private offering just for your company)
1% Responses – Other

Duration of Formal ILT Training

When designing a comprehensive learning program, L&D managers should consider the ideal length for ILT courses. Feedback from DI students consistently shows that on average, a 4.5-day ILT course is the most popular with a technical audience.

Typically, these preferences stem from the belief that a longer course will:

1) Provide additional opportunities for labs
2) Be more in-depth in terms of content
3) Address any variations in skill level between the class participants.

DI recommends a three-day training duration as the best balance between cost and new skill acquisition.

Based on our experience training over 49,000 developers, DI recommends a three-day training duration as the best balance between cost and new skill acquisition. However, in order for a three-day course to be effective, at a minimum it should be customized to participant roles and skill levels, as well as any software the group is building. In addition, L&D managers should, whenever possible, try to minimize variations in the skill level of the attendees in order to maximize the learning impact. A workshop format is best for those critical and complex projects that mandate a five-day course. Rather than the rote, highly structured, traditional lecture/lab format, a workshop focuses on producing working code. An effective workshop should be structured around writing code (55% of the time, at minimum), architectural discussions (15-20% of the time), and lecture (any remaining time).

Perceived Value of Formal ILT

Studies have shown that training materials and concepts must have a high level of perceived value in order to be internalized by students. To determine whether developers place a high value on ILT as a learning method, the survey asked respondents if they believed ILT helped them be more effective in their current job roles.

Over 90% said instructor-led training “helped me do my job better.” Another way to measure the potential effectiveness of a learning solution is to determine whether or not the students would recommend the solution to their peers. More than 77% recommended the training they received to their peers. These responses are ringing endorsements from an audience generally known to be pragmatic and critical.

These data indicate that developers overwhelmingly believe the best method of learning new technologies is a private ILT setting with their peers, where they can explore the implications of new technologies and work out together how best to apply what they learn to current (or upcoming) projects.

Recommended Their Training Course to a Peer

77%

Yes

23%

No

Learning Style Preferences

Next, the survey explored learning-style preferences and the balance of hands-on (lab) time vs. lecture (presentation) time–69% of developers responded that they preferred allocating 50-80% of the course to hands-on interaction.

A significant portion of any technical training should provide developers with the opportunity to interact with new technologies. DI students are encouraged to bring their laptops to training courses so they can retain the code (or other artifacts) created during the course. Sample code frequently becomes the basis for real-world solutions and helps fast-track the implementation of new technologies.

Developer Training Requirements

A significant portion of the survey was devoted to understanding the topics developers feel they will need to learn over the next 3-15 months. The survey explored areas such as operating environments, programming technologies, automated build and quality assurance (QA) tools, as well as developer-related “soft skills”, e.g., software architecture and development-process methodologies.

Areas of Desired Skill Improvement

Developers were asked to rate their own proficiency in several areas, followed by the level at which they would like their skills to be in these areas. The gap between current and desired states, known as the performance improvement gap, indicates where developers feel they need improvement. The desire to improve a perceived deficiency is a powerful motivator for a student.

Developers equate skill improvement with career advancement. From this perspective, managers should understand that employees are unlikely to simply go through the motions during learning opportunities. Rather, developers are active and willing participants who extract knowledge and value from training.

Strong Demand for Core Front-End Skills

The survey explores which front-end skills developers want to use or learn. The top two results were two foundational technologies of the area: JavaScript (55%) and HTML5 (43%). We also found strong demand for skills such as jQuery (30%), Responsive Web Design (38%), and CSS3 (34%).

The front-end world is one of the fastest evolving areas of software development. The framework or library du jour changes often.

55%

Javascript

43%

HTML5

30%

jQuery

38%

Responsive Design

34%

CSS3

It can be especially difficult to distinguish between fads and trends in this space. Respondents were generally much more interested in learning foundational front-end skills as opposed to the newest libraries/frameworks. HTML, CSS, and JavaScript will continue to evolve but they are not going away anytime soon. Libraries and frameworks may come and go, but the core technologies stay the same, for the most part.

Current Expertise level across your development stack and Desired expertise level across your development stack

Desired Expertise Chart

For this reason, we recommend offering training on the foundational skills such as JavaScript, CSS3, and HTML5, while mixing in training on the newer technologies such as Webpack, React, Angular 2, and other new libraries/frameworks. We believe a mix of newer and older technologies helps developers learn the essentials while keeping up with the evolution in the field of web development.

JavaScript and related Frameworks, Libraries, and Tooling

Building upon the previous section, we found robust training needs for specific JavaScript frameworks, libraries, and tooling. The most in-demand technologies were Angular 2 (42%) and React (38%). This is not surprising given that Angular and React are by far the fastest growing areas in web development.

Angular 2 is the newest version of the extraordinarily popular Angular framework. Google’s Angular team caused a great deal of controversy when they released Angular 2, since t is considerably different from Angular 1 and there is no clear migration path. Companies who had built significant portions of their product using Angular 1 required near complete rewrites of their product for Angular 2.

Training Need by Front-End Technology

Javascript
HTML5
Angular 2
React
CSS3
ES6
Bootstrap
Ajax
Android Studio
React Native
Sass
TypeScript
Gulp
Angular 1
Grunt
Webpack
Jasmine
Xcode
Less

Frustration aside, Angular 2 fixed many issues that made Angular 1 slow or confusing. As a result, Angular 2 is a complete production-ready framework, and we firmly believe Angular 2 adoption will grow steadily.

React is a JavaScript library built by Facebook for rendering user interfaces. React grew out of Facebook’s struggles to make Instagram, Facebook, and Messenger work for over a billion users, and it popularized new front-end paradigms such as the virtual DOM and component-based development. React allows developers to build complex data-driven user interfaces that are fast and easy to maintain and comprehend. This reactive component-driven application development is likely the future of web and mobile development.

20% of respondents indicated interest in learning React Native, which lets developers use React to develop mobile applications. This allows companies to reuse most of their web application code when developing mobile apps. There are solutions such as Ionic and Cordova which allow companies to write mobile apps using their existing HTML5/Angular apps, but these apps often have a slower user experience when compared to “native” mobile applications.

We found a strong need for training in JavaScript build tools and module loader systems. These are tools to handle common development tasks such as determining code quality, concatenating files, and loading modules in the right location/order. As JavaScript applications have grown in size and complexity, the tooling has evolved to make life easier for developers.

Developers reported a significant training need for Gulp (19%), Grunt (15%), and Webpack (13%). Grunt and Gulp are both known as “task runners” which automate and execute development tasks. Webpack has all the power of Grunt/Gulp, combined the ability to handle other common development tasks such as Module bundling. We foresee the demand for Webpack training to grow along with its market share.

Over a third of developers expressed interest in training ECMAScript 6 (ES6) training. ES6 is the newest version of JavaScript which includes many new features such as native modules, arrow functions, new collection data structures (map/set), new variable declarations, and a plethora of others. ES6 provides developers a more expressive and powerful JavaScript experience.

Many of the newer libraries such as React are based on ES6. Browsers don’t support ES6 natively yet, but transpilers (source code translators) such as Babel are currently the go-to method for using ES6. Most new application development from 2017 onward will be built using ES6 and we therefore recommend companies provide ES6 training for all of their front-end developers.

Core Big Data Technologies and Concepts

Big data is about finding insights through analysis of large datasets. These datasets are sufficiently large or unique such that they require special technologies to perform their analysis (i.e., Excel, SPSS, and SQL aren’t powerful enough). There are numerous big data technologies and we found a strong training need for these technologies and the broader concepts around big data–27% of developers reported a training need for broader “big data concepts.”

Training Needed for Big Data and Data Technologies

MongoDB
MySQL
NoSQL
Hadoop
Python
Big Data Concepts
Elasticsearch
SQL Server
Cassandra
Scala
SQL Concepts
Spark
R
Not applicable to my role
Firebase
Zookeeper
HBase
Other
RethinkDB
Apache Mahout

Training Needed by Programming Language

Python
Advanced Java
Go
Java
C++
Ruby
C#
Scala
Swift
PHP7
Haskell
PHP
C
Rust
Erlang
R
PL/SQL
Objective-C
Clojure

Hadoop
27% of respondents reported a training need for Hadoop, a collection of hardware and software solutions for processing large datasets. Hadoop often utilizes MapReduce, a computing model/method to get multiple machines to team up on a data analysis task. Using Hadoop and MapReduce, the tasks of processing/analyzing a large dataset are performed across many computers simultaneously.

Apache Spark
13% reported a training need for Apache Spark, a computing framework which manages the data processing tasks performed by Hadoop. Spark ensures the right computers are working on the right task when analyzing a big dataset. Spark is faster than MapReduce and is likely to supplant it eventually.

Scala
15% reported a training need for Scala, a programming language which runs on the Java Virtual Machine. Scala is a general purpose language but is often utilized when implementing big data strategies. Scala is primarily written in a “functional programming” manner and is typically taught in combination with Spark.

Python
Python was hands down the language in the highest demand–46% of respondents expressed interest in Python training. Python’s popularity is a testament to its versatility and its syntax, which is considered by many to be more readable than other languages. Its syntax has made Python one of the most adored programming languages (see, e.g., The Zen of Python). Python is used in many contexts such as web development, data analysis/science, scientific computing, machine learning, internet of things, general purpose scripting, and as a first language for teaching the art of programming.

We believe that Python training courses teach developers a powerful new tool while also keeping them engaged through the pure enjoyment of working with the language. Python possesses the rare combination of being useful as well as enjoyable to read and write.

New School Languages (Go and Swift)

Many of the programming languages for which developers desire training are core popular languages according to the TIOBE index and other indices of programming language popularity. Most of those languages have been in use for 15-30+ years. However, we did find that developers are interested in learning two newer languages: Go (29%) and Swift (20%).

Go is a server-side language released by Google in 2007. Go attempts to combine the best parts of popular programming languages while leaving out the parts which often cause issues. Some companies (e.g., Cloudfare, Heroku, SoundCloud) are replacing their JavaScript servers with Go and finding that they run faster and the code is easier to maintain. Go, like Python, is a programming language that many developers rave about.

Swift is a language created by Apple in 2014 for developing iOS (and MacOS) apps. It is intended to be safer, more concise, and more readable than Objective-C. Swift is one of the fastest growing languages in terms of popularity (and lands in the top 15 on the TIOBE index after just two years).

Both Swift and Go are languages developed by expert teams at large companies, and as such, there are enormous amounts of expertise and resources behind them. Both languages were crafted intentionally in order to address the common pitfalls of their ancestors.

Swift is likely to become the future of native mobile app development. Go isn’t quite as popular but could grow to become a popular server-side programming language.

We believe it’s still early for both of these languages, but both are highly regarded by developers and are likely to see more use each year. As a result, we recommend adding Go and Swift courses to your training offering/calendar.

DevOps and Continuous Integration Technologies

DevOps is an industry/methodology which blends application development and systems operations tasks. This means that the same people who build the software also help deploy and maintain it. We found strong demand for training in DevOps technologies such as Chef (13%), Puppet (13%), and Docker (41%).

Chef and Puppet
Chef and Puppet are “configuration management” languages which are used to set up and configure your infrastructure, and both are able to integrate with cloud-based platforms such as AWS to automatically provision and configure new machines.

Docker
Docker is open-source software used to automate the deployment of applications inside software containers. A container wraps a piece of software in a complete filesystem that contains everything it needs to run, such as code, tools, libraries, etc. Wrapping software in a container ensures that it will always run the same, regardless of the environment in which it runs.

Training Need for Software Engineering Process Skills

Github
Docker
Jenkins
Ant/Maven
Gulp
JIRA
JUnit
Grunt
Selenium
Vagrant
Gradle
Make
Travis
Chef

Continuous Integration and Deployment
We also identified a strong demand for continuous integration and continuous deployment technologies, which often fit under the broader DevOps umbrella. Continuous integration and continuous deployment are the practices of continuously testing and deploying new code for a software project. Continuous integration and continuous deployment help teams iterate quickly while simultaneously maintaining code quality. 32% of developers expressed interest in learning about Jenkins, which is an open source continuous integration server written in Java and formerly known as Hudson.

Training Need for Software Engineering Process Skills

51% Continuous Integration
50% Continuous Deployment
47% Test Driven Development (TDD)
38% Agile Methodologies
38% Performance Testing
34% Security Testing
32% Scrum
23% Usability Testing
22% Kanban
14% Test Plan Development
10% Not Applicable
2% Other

Wrapping Up

This survey can be used to better understand general industry trends; however, in order to be ahead of the curve, managers must be aware of the ways in which their organizations align with the survey results, and how trends affect their organizations specifically.

Recommendations

Learning and Development managers need to work together to share the strategies behind their software development programs, and to determine how best to support those initiatives. Managers should understand

1) Which new technologies are being considered and why
2) Potential implementation timelines
3) What level of difficulty to expect while transitioning from one technology to another
4) Which major architectural changes may be on the horizon
5) Any new skills required for implementation

Begin by exploring the ways in which popular programming languages are being used, or will be used, in the organization. Are the teams primarily using Java? Is the Chief Information Officer mandating a move to web applications–a move that requires new or deeper knowledge of responsive design, mobile-application development, JSON, and HTML5? Are teams keeping up with JavaScript and front-end development trends? Are NoSQL data stores being considered? Are development teams familiar with these technologies?

Begin by exploring the ways in which popular programming languages are being used

Administer a short, anonymous survey to the development teams. Are they spending their time coding or on production and process issues? Remember, most developers value productivity and are looking for ways to reduce repetitive tasks. Find out which agile tools they are currently using and which tools they would like to learn. Likewise, look into current and desired build and automation tools and methodologies. Improving efficiency and productivity will help your organization thrive, and will demonstrate a clear return on training investments.

When determining learning objectives for software developer training, try writing them in an agile use case format. For example, write a statement such as: “As a [developer role], I need to be able to write a/an [application type], so that [objective] can be implemented.” Writing objectives using this template should help align the team in regards to goals, objectives, and the success criteria for training.

In short, design learning solutions as if designing a software product:

  • Identify needs, objectives, and requirements
  • Define a budget, project plan, and rollout plan
  • Identify solutions, consolidate a purchase
  • Deliver using a phased, agile rollout
  • Pivot and adjust

We Can Help

Thanks to the results of our 2017 DI Developer Survey, we recognize that the best learning occurs when it is relevant to the three “P”s: your people, your project, and your development platform. With all the cookie-cutter solutions available, it’s a challenge to find a learning solution that fully meets the needs of your team–that’s why we customize each and every one of our learning solutions to fit your people, your project, and your productivity goals.

DI has trained more than 49,000 developers

Our goal is to continually help HR, L&D, and R&D managers better equip their development teams with the skills needed to be the best at what they do. We are adept at creating company-specific learning plans designed to meet the strategic business initiatives, as well as enable efficient and effective technology adoption, helping your company stay competitive and retain its top talent.

DI has trained more than 49,000 developers over the last 13 years. We have achieved a satisfaction rating of 98%, based on student feedback collected through post-course evaluations.

We currently offer courses in Python, Java, JavaScript, Scala, Server Administration, HTML5, CSS, Ruby, OOAD, Hadoop, Software Architecture, C++, Mobile Development, and much, much more.

If your organization is ready to better equip your development staff, but are unsure where to begin, we can help. Our proven process of evaluating needs, designing a learning plan, and constructing solutions will help you understand the needs of your team and ultimately deliver relevant and comprehensive solutions.

DI delivers blended learning solutions by coupling highly customized expert-led training with subscriptions to Pluralsight–a powerful combination which ensures your developers get the training they need.

If you have questions our offerings or need help planning training for your team, give us a call at 877-629-5631 or send an email to info@developintelligence.com.

Want to Download the Whole Report?
We’ll send it to you!