Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
110 views44 pages

Skill Up Report 2019

This document provides a summary of key findings from a survey of over 4,500 developers about trends in the tech industry in 2019. Some of the main findings include: 1. Python is the most in-demand programming language that developers want to learn, driven by increased demand for data science and machine learning. 2. Nearly half of developers spend time learning every day and see it as essential to their careers, though organizations need to better support continuous learning. 3. Containers like Docker and Kubernetes are now central to how developers build and deploy software. 4. Developers have more autonomy in choosing tools for their work based on specific project needs, making skills in multiple languages valuable. 5

Uploaded by

v3n4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
110 views44 pages

Skill Up Report 2019

This document provides a summary of key findings from a survey of over 4,500 developers about trends in the tech industry in 2019. Some of the main findings include: 1. Python is the most in-demand programming language that developers want to learn, driven by increased demand for data science and machine learning. 2. Nearly half of developers spend time learning every day and see it as essential to their careers, though organizations need to better support continuous learning. 3. Containers like Docker and Kubernetes are now central to how developers build and deploy software. 4. Developers have more autonomy in choosing tools for their work based on specific project needs, making skills in multiple languages valuable. 5

Uploaded by

v3n4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

2019

Helping to shape the future of


developer learning worldwide.

1.
Table of
Contents
Introduction & Demographics 3

Programming Languages 8

Software Tooling 18

Developer Regret 21

Key Trends 23

Spotlight on Cloud 29

Developer Learning 37

Open Source 41

Final Thoughts 43

2.
Introduction
Change is constant in tech. From the broad
trends that define the industry to the daily
challenges that developers face at work,
nothing stays the same.

This makes working in tech exciting, but it can be


difficult to stay on top of what really matters. Having
one eye on the tasks at hand and another on the
future is essential - it means you can not only build
better software, but also build your career and take
control of your professional life.

Skill Up 2019 is a tool designed specifically to help


engineers better understand the reality of the tech
industry today so they can feel confident in the
decisions they make about what they learn and
use this year. Using data provided by responses
from more than 4,500 developers it illustrates the
changing patterns that are going to be shaping
the industry as a whole and the future careers of
individual developers.

3.
Key Findings

Here are the key findings:

• Python is the most in demand language - everyone from JavaScript to C++


developers want to learn it next.

• Data science and machine learning are driving the popularity of Python.

• The dominance of cloud is overstated - 47% of respondents don’t use cloud


platforms at all.

• When it comes to choosing a cloud platform, developers didn’t indicate that


cost was a key motivator but maybe it ought to be, as a large proportion of
developers stated that costs are a major limiting factor in leveraging cloud
services.

• Almost half of developers spend time learning every single day - a further 30%
spend time at least once a week. This means learning is an essential part of
developer life - something organizations need to facilitate and support.

• Containers are now central to the way developers build and deploy software -
Kubernetes and Docker are being widely used and are both in demand across
developers using a range of programming languages.

• Developers have more decision making power than ever before -


programming languages are selected on the basis of use cases and the needs
of individual projects. This makes the polyglot incredibly valuable.

• Java is listed as the programming language developers most regret learning -


although it sits at the top of many league tables, this indicates it might not be
the best tool for the various jobs for which it is commonly used.

• Go, Python, and JavaScript are languages that are more likely to be used if
you’re working with multiple cloud platforms.

• Blockchain is overhyped and overrated say developers, due to the lack of use
cases and practical applications. Half of all respondents said blockchain and
cryptocurrency had failed to deliver in the last 12 months.

• Open source is maintained by a small but dedicated army of developers - only


21% of respondents said they had contributed to open source projects in the
last 12 months. Those that did say they did, did so for the benefit of others and
to improve their own skills.

Some of these results are consistent with previous Skill Up reports and the findings of other organizations.
Others, however, might surprise you. Throughout the report we will break down a range of issues so you
can see how opinions and behaviors vary by age, salary, and the programming language respondents use.

4.
Developer Demographics
This year 4,520 people took part in the Packt Skill Up survey. This includes developers from
118 countries, working in a wide range of industries.

Canada
3% Europe 43%
Asia
US 21% Middle East
Pacific
2% 16%
Africa
2%

South
America
13%

Industry by Respondents

50%

40%

30%

20%

10%

0%
Software Education/ Financial Government Retail/ Media Marketing
Solutions Research services/ and health eCommerce and and design
Banking entertainment

5.
We also received responses from developers with a diverse range of experience and from
different age groups:

Years of Experience by Respondents Respondent Age Band

6%
7%
23%
33%

25%
59%
18%

29%

10+ Years 5-9 Years 0-4 Years 18-24 25-34 35-44 45-60 60+
59% 18% 23% 7% 25% 33% 29% 6%

Gender
This year’s survey was once again dominated by male respondents. This figure isn’t
representative of the industry as a whole and indicates that we need to do much more to
engage with developers of all genders.

6%

Male
94%

Female
6%

94%

6.
Survey respondents also came from across salary bands. This closely mapped alongside
geographic distribution, as you might expect:

Annual Salary by Region

100%

80%
% of Respondents

60%

40%

20%

0%
United North South Europe Asia Pacific Africa Middle East
States America America
Region of Respondents

Less than $20,000 - $35,000 - $50,000 - $75,000 - $99,000


$20,000 $34,999 $49,999 $74,999 $99,000 or more

Developer Annual Salary by Top 5 GDP Countries

100%

80%
% of Respondents

60%

40%

20%

0%
USA China Japan Germany UK
Country of Respondents

The data here shows there is a high proportion of relatively low paid developers in China.
This highlights the extent to which the Chinese tech industry is driving growth through
an army of tech workers paid considerably less than their counterparts in Japan, Germany,
and the UK.

The recent protests around China’s ‘996’ tech culture (March 2019) highlight some of the
problems developers in China face - not just low pay but long hours too (although that is
undoubtedly a problem all over the world). Global solidarity is perhaps important not only
in defending their interests, but also the interests of developers in every country.
7.
Programming Languages
Programming languages are an important identifier for many engineers. The language
you use says a lot about you as a developer - from what you do, to who you work for, and
maybe even what you value.

There are plenty of studies on the changing landscape of programming languages. We


wanted to use it almost as a demographic point, a way of diving deeper into the values
of everyone who responded to this year’s survey.

Here are programming languages that respondents said were their primary languages:

Primary Language by Respondent

ProgrammingJava 17%
languages are an important identifier for many engineers. The language
you use saysPython
a lot about you as a developer - from what you do, to who you work for, and
24%
maybe even what you value.
JavaScript 10%
There are plenty
C#
of studies on the changing landscape
13% of programming languages. We
wanted to use it almost as a demographic point, a way of diving deeper into the values
of everyone who 6% survey.
C++responded to this year’s

C 3%
Primary Language by Respondent

Here are programming languages that respondents said were their primary languages:
Ruby 1%

Kotlin 0.52%

Scala 0.67%

R 1.65%

Julia 0.12%

Go 1.68%

Rust 0.10%

TypeScript 0.99%

PHP 8%

Swift 0.71%

Delphi 0.79%

SQL 4%

Other 6%

0% 5% 10% 15% 20% 25%

% of Respondents

As you can see, there were 4 stand out primary programming languages. These probably
won’t come as much of a surprise - with Python’s consistent growth over the last few years,
these results confirm that it is the definitive language in modern software engineering.

8.
A good way of emphasising Python’s dominance is to look at how widely used it is across
age groups.

Primary Programming Language by Age Band

100%

80%
% of Respondents

60%

40%

20%

0%
18-24 25-34 35-44 45-60 60+
Respondent Age Band

Python Java C# JavaScript PHP C++ SQL C

The reason we can see Python’s popularity across a range of segments is because it is
such a flexible programming language. It is today more popular than R when it comes
to data science and machine learning, but that only gives you part of the picture.

Its power for scripting makes it an attractive language for anyone that wants to
automate a process or task, while it’s relatively straightforward learning curve means it
is relatively accessible for anyone that understands the fundamentals of programming.

As we’ll see later, it’s not only popular, it’s in high demand across the developer world.

The Enduring Power of C++

These results also show that C++ is making a comeback with younger developers.
Although it is certainly one of the oldest language, it appears to have considerable
staying power - it’s a great scripting language. It’s unlikely this trend will change as
artificial intelligence and IoT become definitive trends for the next decade.

While C++ is widely regarded as one of the more challenging languages to learn,
it’s nevertheless a language that can act as a foundation for anyone that wants to
understand some of the fundamental principles behind coding, and how languages
interact with machines.

9.
With JavaScript and C# both at either end of the age groups (JavaScript being the
choice of younger developers and C# for those more experienced), Python appears to
have caught the imagination of a diverse range of engineers.

With Python, Java, C#, C++, JavaScript, and PHP coming out as the most common
primary programming languages, we’ll be returning to these throughout the report as
we explore a number of different areas.

10.
Why Do Developers Select the
Programming Languages They Do?
There’s plenty of data on the popularity of various programming languages, but one thing
that often gets missed is why developers choose the programming language they do.

That’s something we dug a little deeper into this year - we left the question open text,
and with a mammoth task of grouping together responses, here’s what we found:

Motivation for Selecting Primary Language

100%

Employment Related

80%
Use Case
% of Respondents

60%
IT Qualification
Requirement

40%
Peers/Popularity

Project Driver 20%

Other
0%
Python Java C# JavaScript

Primary Language of Respondents

What we can see across our ‘big 4’ programming languages is that each is chosen
for a subtly different reason. C# and Java, for example, are primarily selected for
employment reasons, while JavaScript is selected for projects. One of the reasons for
this is that languages like Java and C# are well-established and form the backbone of
much enterprise software. It’s possible that many developers using Java, for example,
are working in organizations where Java has been the development language of
choice for decades.

In contrast, the main driver behind the selection of Python is use case. This means
that Python is widely viewed as a programming language that solves problems. It is,
for the developers that use it, a language that is adaptable to the context in which it
is being deployed.

11.
What Programming Language Do Developers
Want to Learn Next?
There’s plenty of data on the popularity of various programming languages, but one thing
that often gets missed is why developers choose the programming language they do.

What Language are you Most Interested in Learning Next - by Primary Language

100%

80%
% of Respondents

60%

40%

20%

0%
Python Java C# JavaScript PHP C++

Primary Language of Respondents

Java Python JavaScript C# C++ Kotlin R Go Rust TypeScript Other

We found, once again, that Python tops the list across the board when it comes to the
most in-demand programming language. For developers using every programming
language, Python was listed as the language they want to learn - even PHP developers
wanted to learn Python more than JavaScript.

12.
The Growth of Go and Kotlin
However, it’s worth noting the popularity of other emergent languages.

Go, for example, is a popular pick for both JavaScript and Python developers (interestingly,
JavaScript developers picked Go above even TypeScript). This is reflective of its popularity
as a language for building backend web services. It’s a useful language, for example,
for full stack developers that need to piece together different components of their
application stack.

It’s not particularly surprising to see that Kotlin is on Java developers’ collective radar.
Kotlin became Google’s preferred language for Android back in March, a step which
confirmed Kotlin’s superiority over it’s more established relative.

But JavaScript isn’t far behind Kotlin. This is evidence that JavaScript has reached a level
of maturity. Indeed, the language owes a lot to Node.js in moving it beyond the browser,
essentially redefining what JavaScript is as a programming language.

Both the growing popularity of Kotlin and the maturity of JavaScript could spell the start
of Java’s gradual decline.

An Honorable Mention for Rust

Rust also deserves an honorable mention here - although it didn’t rank that highly,
it appears that it is a popular language for C++ developers. With the language
apparently the ‘most-loved’ according to the Stack Overflow survey, we’re expecting
big things over the next 12 months.

For those younger developers using C++, Rust might make sense as the next language
to learn.

13.
Next Language to Learn by Salary Band

< $20k

$20-$34.9k
Salary Band

$35-$49.9k

$50-$74.9k

$75-$99k

> $99k

0% 20% 40% 60% 80% 100%


% of Respondents

Python Go JavaScript Kotlin C++ Rust Java C# R TypeScript

When broken down by salary, it becomes clear just how in-demand Python is across all
segments. Demand isn’t isolated to a particular group.

However, it was interesting to see that alongside Python, JavaScript was the language
developers in the lowest salary band wanted to learn, while Go is in high demand with
respondents in the top salary band.

The reasons for this aren’t surprising. Go is a language purpose-built for the challenges
of modern software engineering. From machine learning to microservices, many of the
fields that have only recently become mainstream are serviced well by Go.

From this perspective, it would seem that those on higher salaries are more likely to be
looking forward at the language that’s going to be best for the tasks they’re trying to
tackle. But this shouldn’t put less experienced developers off - Go certainly isn’t the most
difficult language to learn; it’s easy to start using Go fairly quickly.

14.
Why do Developers Want to Learn that
Programming Language?
Much is often made of lifelong learning and curiosity in engineering circles. But getting
past the clichés, why do people decide to learn the things they do?

We asked our respondents what their primary motivations are for learning a new
programming language.

Primary Motivations for Learning a New Language

35%

30%

25%
% of Respondents

20%

15%

10%

5%

0% Employment Use Case Peers/Popularity Project Driver Personal


Related Improvement
Motivation for Learning

Use Case - ‘Ease of use, clean syntax, powerful libraries’


Peers/Popularity - ‘Most popular among my peers’
IT Qualification - ‘ It is the first language we learned at the University.’
Projects - ‘Used for numerical weather models’
Employment - ‘It is the language of my place of employment’

Overall, the primary motivations for learning a new programming language are use case
and projects. Employment was actually a low ranking motivation, suggesting that
developers have a certain amount of freedom in the languages they use. It also indicates
that career does not figure in the minds of many developers when it comes to learning a
new language. The drive comes from either curiosity or the demands of a given situation.

This only tells half the story. You get a much better insight into some of the motivations for
different groups of developers when you look at the specific responses from each group.

15.
Python
Respondents told us they wanted to learn Python because of its diversity and flexibility.
But it’s machine learning that appears to be a key motivator for many.

“Python has lots of use cases for machine learning”


“It’s the most sought of programming language, also very versatile
and the most often used language in machine learning”

Java
Although it’s possible that Java will eventually lose out to newer languages like Kotlin,
respondents who want to learn it talked about its power for both object oriented,
functional, and reactive programming. From this perspective, Java is a language
that offers a solid foundation for someone that wants to understand the principles
underpinning different programming methodologies.

“I like Java because of the easiness of programming in an OOP


and learning Design Patterns”
“It’s a good language for creating mobile apps
and for backend development”
“There is almost nothing you can’t do with Java. Functional programming,
reactive programming, microservices are key points to learn more.”

JavaScript

“I want to develop interactive visualizations and think JavaScript


is best suited to this”
“It’s popularity, ability and widely usability”
“I already know JavaScript; it’s mandatory for a full stack developer.
I just want to be more competent in advanced topics.”

16.
C++
Respondents that named C++ as the language they most want to learn next talked a
lot about building high-performance applications. This makes particular sense in the
context of deep learning and IoT: C++ is a language that can help developers build data-
intensive applications.

“I’m using Unreal Engine 4 via blueprints but would like


to switch to using C ++ code.”

“It is being widely used for high-performance applications.


And it’s also easily integrated with Python.”

“The fastest and most efficient for deploying


deep learning models on edge devices”

“Because with C++ you can modify underlying things that works directly
with the hardware and even the performance is much better.”

Go
Although Go wasn’t popular across all respondents, those that named it were interested
in its threading capabilities. It was even seen as offering performance advantages over
Python.

“Because I need to learn a language suited to today’s


multi-threaded environment and I want to extract the optimum
performance out of a processor for the logic I’m writing.”

“Go is great for building high performance distributed services.”

“A good amount of businesses are migrating to this programming language.”

“Excellent threading and generally better performance comparing to Python.”

Kotlin
For those that want to learn Kotlin, it was largely seen as a better alternative to Java. One
thing that did come up consistently was its usability - as developers are asked to do more
with less, the experience of writing code becomes crucial.

“With Kotlin, you can code more efficiently than with Java,
but it still has all of the good aspects of Java.”

“Kotlin is a much more concise and usable language


that is now supported on Android.”

17.
Software Tooling
Now we’ve looked at the languages people want to learn, let’s look at how developers
see their respective tooling ecosystems evolving over the next year.

What Tools Do People Want to Learn?


The idea that the software landscape is fragmenting as smaller open source projects
develop around very specific use cases has been around for a while now.

There may be an element of truth to this. But this year’s Skill Up results highlight that
there are, conversely, a core set of tools that almost all developers want to learn.

Let’s take a look.

Top Tools Interested in Learning Next 0%

18%
Python
18% 31%

Docker
31%

TensorFlow
20% 31%
20%
Kubernetes
31%

With Docker and Kubernetes taking the top spots, it’s clear that containers are defining the
way all developers are working.

Docker
“I have started a little with Docker already, but I truly believe that
containerization of projects/apps is the future of development.”

“I think Docker is taking over the world. It is a versatile tool that


helps applications to scale and deploy faster.”

Kubernetes
“I need the ability to containerize multi-platform testing environments”

“I want to become more well-rounded, and I believe enhancing my


DevOps arsenal is a great way to start”

18.
TensorFlow

“Learning about neural networks can future-proof my career.”

“It’s the most advanced machine learning library.”

“I want to inject deep learning into applications to facilitate


intelligent interaction.”

Python

“I recently began learning PowerShell, and I would like to


learn Python which seems to be an even more useful scripting
language (applicable to many different scenarios).”

“Learn new things: architectural patterns,


distributed systems, machine learning, etc.”

“Python is very useful, it’s very powerful


and offers speed in coding”

It’s worth noting that Python features in this section. In the survey we were clear that we
wanted to keep ‘tools’ distinct from programming languages. So, while we could blame
our respondents for not replying in the way we would have liked, it also underlines why
Python is so popular as a programming language: it’s a tool that solves problems in
diverse contexts and scenarios.

Viewed in this way, Python is more than just a programming language - it’s a vital
additional piece of the modern engineers toolkit that can be used to do anything
from automating tasks to working through data.

The popularity of TensorFlow doesn’t come as a surprise. It’s helping to drive the
popularity of Python by making deep learning accessible to a vast community
of developers.

19.
What Tools are People Learning Next, According
to their Primary Programming Language?

Tools Learning Next by Primary Language

100%

80%
% of Respondents

60%

40%

20%

0%
Python Java C# JavaScript PHP C++
Primary Language of Respondent

Docker Kubernetes Python React TensorFlow Visual Studio

Breaking things down by programming language shows a few other contrasts that are
worth noting. For example, React is popular with not only JavaScript developers (26%
of respondents saying they want to learn it), but also with C# developers (16%) and PHP
developers (23%). This underlines something that we’ve been thinking for some time -
that React has supplanted Angular as the go-to JavaScript tool.

It was also interesting to see that TensorFlow is attracting C++ developers - 42% said they
wanted to learn it. As a more powerful alternative to Python, we could see C++ becoming
more popular as engineers continue to seek performance gains.

20.
Developer Regret
Do Developers Regret Learning Anything?
Respondents were split over whether they regret learning a specific tool. 45% said they did,
but 55% said they didn’t.

% of Respondents Who Regret


Learning a Tool

Yes
45%
45%
55%
No
55%

While this shows that for many developers learning new things always proves valuable,
it also indicates that learning the wrong tools can be a waste of time and energy -
two resources highly prized by developers.

Top 5 Most Mentioned Tools Respondents Regretted Learning

5%

4%
% of Respondents

3%

2%

1%

0%
Java Visual Studio Eclipse PHP Visual Basic
Tools

The software tools that featured probably won’t come as much of a surprise -
many of them will appear irrelevant or out of date to many programmers.

However, given the fact that Java is still so widely used, it’s worth unpacking why
developers regret learning it.
21.
The Case of Java - “the COBOL of Modern Programming”
Respondents who said they regret learning Java talked about it’s broad decline, as well as its
complexity. This plays into the hands of Kotlin, a language widely regarded as much more
concise and usable than Java.

“I already know it, but it seems to be in decline”

“The code is very long and complex. It’s so hard to learn”

“Java seems to be getting phased out”

“It has become the COBOL of modern programming”

The uncertainty around Java has certainly been exacerbated by Oracle’s decision to focus on
enterprise Java and withdrawing support for OpenJDK. Although Red Hat’s takeover means
there is a future for Java, there are undoubtedly warning signs for people that have been
relying the language for some time.

Hindsight is, of course, a wonderful thing. And for many developers, learning tools that
become outdated and irrelevant is a part of the learning journey. But this data nevertheless
underlines that some degree of caution and thoughtfulness about the engineering tools
and programming languages you invest time and energy in can be extremely valuable.

22.
Key Trends
Languages and tools are all well and
good, but the macro-level trends are Top 5 Software Trends
what have the large ripple effect on the
type of work developers are going to be
ML & AI Cloud Tech Data Containers Automation
doing - and the types of tools they will 47% 27% Science 9% 5%
be using. 12%

This year’s survey found a few key trends


5%
at the forefront of the developer mind.
9%
This reflects the results of the most
in-demand tools - Kubernetes, Docker, 12%
TensorFlow, and Python are very
important in these areas. 47%

This also highlights that the biggest


trends in technology are having
relevance across the industry - they 27%
aren’t isolated to specific job roles as
they may have been just a few years ago.

Machine Learning & AI


There were a range of reasons why respondents cited AI. Many spoke of the amazing
evolution of AI, while others talked about its usefulness for them in terms of automation
and improving efficiency. The economic benefits are important, but the focus for many
was more purely on the possibilities for innovation.

“AI generated artifacts are difficult to distinguish from human generated


artifacts. I think this trend will only get stronger and stronger”
“It’s going to help enforce patterns and speed up development”
“I’m using it more and more for both complex things as well as offloading
repetitive tasks to it”
“Rapid increase in use in numerous industries. Pattern recognition could
really simplify time consuming tasks.”
“Machine Learning and AI change the way we “sell” solutions
to our customers. Customers always want to improve its operations
and lower costs.”
“Because Machine Learning can affect lives and can improve it. For
example, autonomous driving, machine translation, disease diagnoses.”
“Machine learning will have impact on the way clients deal with
the amount of data they have available to them. Low code solutions
because they require less upkeep and less time to develop.”

23.
Cloud
Those respondents who are excited about cloud talked about the affordability and
demand for cloud. The economic benefits it’s believed to bring are forcing many
developers to adapt to more cloud-native ways of working.

“Cloud services are becoming more popular and more affordable over time”

“More and more of our customers want their apps deployed on the cloud”

“Cloud is a big overhaul in the industry. Everyone needs to move to the cloud.”

Data Science
Data science often gets overlooked as it sits in the shadow of machine learning. But it’s
nevertheless an important trend for many of our respondents.

“We’re just scratching the surface of applying data science


to so many
environments and situations from the micro to the macro.”

Containers
Containers are having a huge impact on almost every developer’s life. In many ways,
it feels as though containers are having more of an impact on developers lives than
cloud - as one respondent says, some engineering teams will move to a container-based
architecture while remaining on-prem.

But it is also symptomatic of modern distributed systems, which, in turn, are having a
big impact on the way we understand the role of the developer. We’re starting to see the
friction between development and operations all but collapse as developers come to
take on more responsibility for how their code runs in production. Alongside this reality,
we also have the rise of the SRE (Site Reliability Engineer) as the person responsible for
managing all of the component pieces of an infrastructure.

“Many enterprises migrate their projects to container-based architecture


(even if the projects are not “in the cloud”, but run on private servers).”

“Applications will split into containers, which allows better scaling


and easier upgrading.”

“Because they scale well and there are few scenarios it can’t be used.”

“Ability to remove dependence on physical infrastructure.”

24.
Overrated and Overhyped
We also asked respondents what trends had failed to deliver any meaningful impact over
the last 12 months:

Trends Not Fulfilling Expectations over the Last 12 Months

9%
7%

38%
15%

6%

25%

Blockchain ML & AI Cloud Tech Virtual Reality IoT Cryptocurrency


38% 25% 15% 9% 7% 6%

A number of trends that many respondents cited as important for the next year were also
deemed to have failed to deliver over the last 12 months. This not only tells us something
about the nature of hype cycles, it also underlines the fact that different technology
professionals are exposed to certain trends in different ways.

For example, JavaScript developers are more aware of serverless than programmers using
any of the other top languages are. And although cloud is key across developers using all
languages, what we see here is a slight difference in the way that JavaScript developers
perceive and are approaching the trend.

This is perhaps a good lesson for all developers - understand how a trend is relevant to
you and the specific way that you can leverage it. Sometimes its real value to you won’t be
the way it’s covered and talked about in wider discourse.

It’s worth noting that containers is the one ‘key trend’ that wasn’t also viewed as
something that has failed to deliver over the last 12 months.

25.
Top 5 Developer Trends by Primary Language - Next 12 Months

100%

80%
% of Respondents

60%

40%

20%

0%
Python Java C# JavaScript PHP

Developer Primary Language

ML & AI Serverless Cloud Tech Containers Data Science

Failed Trends from Last 12 Months by Primary Language

Python

Java
% of Respondents

C#

JavaScript

PHP

C++

0% 20% 40% 60% 80% 100%


Motivation for Learning

AI Blockchain Cloud Cryptocurrency IoT ML Virtual


Based Tech Reality

Above you can see a comparison between what developers using the top languages think
is going to be a big trend and which they think has failed.

26.
Perceptions of cloud
Interestingly, Java developers are the group most looking at cloud for the next 12 months,
but are also the group that regard it as having failed over the previous year. This could
suggest something about the organizational challenges Java developers may face, working
with more legacy systems and competing internal interests acting as obstacles to change.

“Cloud by itself does not solve any problems besides scalability.


It’s a method for solving specific additional problems to the ones we have.”
“The cost-efficiency of cloud projects have caused my clients to move away from it.”
“It’s too expensive and too many people are actively opposed.”

Internet of Things (IoT)


Although for many developers IoT is a field that hasn’t quite delivered on its promise over
the last 12 months, C++ developers are least likely to see it as a failure. This makes sense:
because C++ is today the language of embedded computing, it appears that those most
intimate with IoT believe it can deliver. This means the rumors that IoT is overhyped could be
just a little bit immature…

“People underestimate the importance of IoT security


and therefore don’t invest in it enough.”
“Industrial applications are not properly understood and haven’t yet matured.”
“IoT had several problems due to lack of security on IoT devices
which resulted in multiple botnets”
“Not so many People as expected by the industry use IoT devices.”

Blockchain & Cryptocurrency


The biggest disappointment for developers was easily blockchain and cryptocurrency. This
is an area that has received significant coverage for the last few years but we’re still yet to
see any meaningful applications of the technology. Indeed, with the cryptocurrency bubble
bursting last year, it feels as though this is an area that will need to be seriously revisited if it
is to have life in the future.
Most developers don’t seem to need a caveat emptor when it comes to buying into the
blockchain hype - they can already see through it. But for those curious, it’s worth thinking
seriously about its application and how the technology is relevant to them, personally.

“I couldn’t get any gigs despite building blockchain apps”


“It seemed to be the next platform but in the end nobody uses it…”
“Security exploits and falling interest.”
“As an early adopter of cryptocurrencies, I am disappointed that major projects
over the past year have mostly failed to live up to their lofty promises.”

27.
Machine Learning & AI
Although machine learning and artificial intelligence are viewed by many developers
as exciting trends for the next 12 months, but there was still a healthy dose of cynicism
surrounding the technology. Part of this might be due to the extensive media coverage
that artificial intelligence has received over the last 2 years, but it could also be due to the
fact that we’re still in the foothills of what’s possible with the technology.

“Everyone is talking about it and many are using it, but I think comprehension
is lagging on what the models do and their strengths/limitations.”
“Everyone talks about it but no one is implementing it”
“I have a feeling it’s a hype - there are no actual revolutionary
discoveries/services yet. Just ‘recognizing’,
‘picture editing’ and chat bots.”
“It seems that story from 70’s turned the circle. There are no breakthroughs
on this path, only constant progress. There will be no revolution but slow
irreversible change, but all the ado from last years appeared just... ado.”

Virtual Reality
Virtual reality has been impacted by a couple of issues - the fact that consumer demand
hasn’t been as high as the tech industry anticipated, and limitations with the hardware.
Indeed, it’s worth noting that the two are, to some extent, related - virtual reality still has a
bit of a usability problem insofar as you need to purchase expensive kit to actually use it.

By contrast, augmented reality is already making an impact.

“It promised to change the way people play games


but until now it didn’t change much.”
“Virtual (and mixed and augmented) reality applications didn’t
really take off as a mainstream technology, mainly because of headset
costs and the lack of better experiences.”
“The hardware isn’t ready for the needed performance.”
“Don’t see it as pervasive as I thought it would be.”

These results tell us that what really matters are the practical applications and use cases
of given trends. Indeed, just because they haven’t appeared yet doesn’t mean there won’t
be any at all - perhaps we’ll see Blockchain make a big impact in the near future...

28.
Spotlight on Cloud
Although artificial intelligence typically takes the
headlines where tech is concerned, we wanted
to throw a spotlight on cloud. Cloud is, after all,
something that will impact developers in many
different ways, from the way applications are built
and deployed to the way data is processed and
managed for analytics.

One of the most striking results from this year was


that there is still a large minority of developers who
aren’t using cloud at all. 53%
47%
Although cloud has been a part of the conversation
for the last half a decade or so, it appears that it’s
still taking time to feed through to impact every
developer’s life.

Indeed, it’s true that cloud is unnecessary for some


developers - there’s no need to use it unless there
are clear gains. However, this also indicates that there are some huge opportunities for
many engineers - and engineering teams - to evolve their culture and workflows in ways
that are more agile, efficient and collaborative using cloud.

The split between industries also shows something interesting between who’s using cloud
andCloud
who isn’t:
Platform by Industry

Software Solutions

Education/Research

Financial Services/Banking
Industry

Government and Health

Retail/eCommerce

Media and Entertainment

Marketing and Design

0% 20% 40% 60% 80% 100%

% of Respondents

Yes No

29.
While the bulk of respondents working in software solutions are committed to using cloud,
engineers in other industries certainly aren’t using it on a large scale. Areas like education &
research and government & healthcare, for example, are often unfairly viewed as resistant to
innovation - with strict governance and issues around privacy and data paramount in these
areas, it makes sense that cloud adoption will be a little slower.

Another possible reason that cloud isn’t as widely adopted as we might have expected is
that developers working in-house for non-tech companies are utilising third party PaaS or
SaaS tools - this means that the tools they use might be cloud-based, but their experience
of development isn’t strictly cloud-native.

Of those using cloud platforms, when you look at which platforms are being used by
primary programming language the results weren’t that surprising - AWS winning out
everywhere except for C#, where Azure dominates. Clearly, AWS has been able to capture
the developer imagination across various languages - it seems Azure is trying to challenge
this with tools like Visual Studio Code.

Primary Cloud Platform by Primary Language

100%

80%
% of Respondents

60%

40%

20%

0%
Python Java C# JavaScript PHP C++ SQL C

Primary Language of Respondents

AWS Azure Google Cloud IBM Cloud Oracle Cloud Other


Platform

30.
Key Trends within Cloud
We also asked participants who use cloud platforms what future developments within
cloud computing they were excited about.

There were 3 key things that came out:

Serverless
AI
Machine Learning

Compared to non-cloud platform developers, a disproportionately high proportion of


developers who use cloud focused on serverless as being a key trend. This could be as a
result of developers on the cloud being more aware of serverless, viewing it as a valuable
element within the cloud trend that is most relevant to them.

For those not currently working with cloud, it might be worth thinking about serverless
as a way into the field.

When you look at these responses from different developers using different languages,
it’s clear that cloud is shaping the worlds of different developer communities to look
very similar.

Java Developers Python Developers

ML None
Computing
AWS Microservices
Platform Data Services

Kubernetes
Cloud Containers

Serverless Data
Capabilities
ML AI
Serverless
Amazon

Cloud Lambda AI
Serverless Architecture

Deployment

JavaScript Developers C# Developers

Serverless Cloud
ML Cloud Computing AI
IoT Computing
AI
ML
Development
Serverless
Services

31.
Hybrid and Multi-Cloud
Multi cloud is something that we have seen being talked about a lot, especially in the
context of vendor lock-in.

Number of Cloud Platforms Used by Primary Language

70%

60%

50%
% of Respondents

40%

30%

20%

10%

0%
Python Java C# JavaScript PHP C++ SQL C
Primary Language of Respondents

1 2 3 or More

The stand out here is that Python, C++, and SQL developers are more likely than anyone else
to be using multiple cloud platforms. This says something about the types of developers
using those languages, and the type of work they do, but the results also suggest that those
languages that facilitate hybrid cloud development more effectively than the likes of Java
and C#.

32.
Motivations Behind Choosing a Cloud Platform
Given there is so much conversation around cloud, we also wanted to better understand
developers’ decisions for using the cloud platforms that they do.

Given a substantial proportion of respondents aren’t even using cloud platforms, this data is
useful for that particular group, helping them to see how developers and decision makers
currently approach cloud.

Motivations for Choosing Cloud Platform by Cloud Platform

100%

80%
% of Respondents

60%

40%

20%

0%
AWS Azure Google Cloud Platform

Primary Cloud Platform of Respondents

Cost Employment Use Case Peers/ Vendor


Related Popularity Related

Cost - ‘Cost is affordable.’

Employment Related - ‘The company I worked for chose it.’


Use Case - ‘The higher support and integration with open platform’
Peers/Popularity - ‘It’s the industry leader.’

Vendor Related - ‘ I’m a Google fan.’

33.
AWS
“It has a vast array of features, and if purchasing instances
in large chunks of time you can save money.”
“Tutorials… and the free tier. But it also has everything I need
to run node stacked websites.”
“It’s a current market leader and its simple to setup basic infrastructure”
“Easy on-ramp for a small busy team to get to terms with quickly. Ease of
deployment of our software products along with good documentation.”

Azure
“I came from a Windows, .NET development background”
“I work a lot with the tech stack provided by Microsoft. Thus this fits best.
I enjoy working with Azure. Lots of options and thus possibilities.”
“It’s organization decision. Although, we have AWS and Google Cloud
also but Azure seems rock the world.”

Google Cloud Platform (GCP)

“Machine Learning and vast APIs available for using it.”


“Familiarity with their products, I used Firebase before Google
integrated them to GCP.”
“Great options with great features at lowest cost.”
“The incredible documentation and training resources (coursera and qwiklabs,
meetups and free workshops), besides Google is the best at what they do.”

There’s a lot to unpack here, but let’s first highlight the obvious - cost isn’t actually that
important a factor when it comes to selecting a cloud platform. It’s instead largely a mixture
of employment-related (unsurprising - as many developers won’t be in a position to make
platform decisions) or use cases.

AWS is the platform that is most likely to be used because of peers or popularity. This might
well speak to its effectiveness as a platform, but it’s also worth pointing out that this could
be symptomatic of industry-wide groupthink. Just because it appears to be popular with
everyone doesn’t necessarily mean it’s the best option for you.

Interestingly, use case is the primary motivator for GCP. Although Google’s cloud offering
is still some way behind AWS and Azure, it demonstrates that it may be finding a niche for
developers and engineers that see it as fitting their specific use case neatly. Indeed, for the
emerging multi cloud world, this put GCP in a great position as a complement to its more
established rivals. 34.
Limitations of Cloud
Developers reported that cost isn’t an important factor when it comes to choosing a cloud
platform, but perhaps it should be - it is, according to respondents, a serious limitation.

This tells us that those making decisions about platforming aren’t thinking about the scope
of their decisions and the strategic consequences that might follow.

This underlines just how important it is to properly understand the cost implications of
a given cloud platform before purchasing. Not doing so could damage your technology
strategy - and frustrate your developers.

Limitations by Primary Cloud Platform

100%

80%
% of Respondents

60%

40%

20%

0%
AWS Azure Google Cloud Platform

Primary Cloud Platform

Cost Functionality User Experience Vendor Lock-In

Vendor lock-in is a minor limitation compared to issues around features and, to a slightly
lesser extent, user experience. For the cloud platforms it seems that simplifying the
relationship between features and cost, to make them more understandable for users could
be a huge improvement.

For those buying and using cloud platforms, this highlights that it’s important to think
about the long term implications of using a given cloud platform, and the ways that
different features could impact cost. Cloud requires significant strategic forward thinking.

35.
AWS

“Takes some time to figure out their pricing as it pertains to your product and usage.
Gets costly before you get a handle on it.”
“Cost, flexibility, storage costs, expense for hybrid cloud solutions”
“The number of services under the AWS banner can be hard to keep in mind when
starting on a new project.”
“AWS is becoming stale, inventing features to keep their platform relevant. Other
cloud providers are becoming better options for most cloud use cases.”

Azure
“Azure is still immature. It’s a generation behind AWS.”
“Azure’s portal interface is too convoluted.”
“Lots of random errors, sometimes not a great development experience.”
“Cost and too many new features release which are at time hard to keep up.”

Google Cloud Platform


“Clear documentation about what product to use where and which products
fit different use cases. Several products seem to offer similar solutions.”
“At the moment it has few tools for work with migrated software.”
“Feature wise it’s always behind AWS. Getting issues resolved often takes
and insanely long time, if at all.”
“Constrained to the Google Pipeline which is not always enjoyable”

It’s worth noting here that GCP was regarded as the most limited cloud platform out of the
big three. If we take what we saw earlier, where a key motivator for using GCP is use case,
it’s clear that GCP is a platform that is very good at doing a few specific things, but lacks the
features to do lots of things well.

This might seem like bad news for GCP. But if the future of cloud is increasingly hybrid,
this means GCP can position itself as a complement to its more established competitors.

36.
Developer Learning
Given the complexity of the technology landscape, learning is the most important part
of a developers professional life.

Something we’ve taken an interest in over the last few years of Skill Up is how often
developers spend time learning new things.

Overall, almost half of respondents say they spend time learning every day - a further
30% say they learn at least once a week. That underlines just how important learning is
to developers.

This pattern doesn’t change massively across age bands or salary - however, those in
the lowest and highest salary bands appear to be the groups that are the most likely to
learn every day.

This makes sense in the context of one’s career. Those starting out are investing
significant time and energy in learning, while those at the peak of their career and on
the highest salaries need to invest time in learning to ensure they remain relevant.

Frequency of Developer Learning by Annual Salary

Less than $20k

$20k - $34.5k
Salary Band

$35k - $49.9k

$50k - $74.9k

$75k - $99k

$99k or more

0% 20% 40% 60% 80% 100%


% of Respondents

Daily Weekly Monthly Rarely/Never

If we look at learning patterns by programming language, JavaScript developers are the


group most likely to learn every day, with Java and PHP developers least likely.

This makes sense as the JavaScript ecosystem is one of the most dynamic, with new libraries
and frameworks emerging at an impressive rate, while Java and PHP are subject to much
less change - they are more stable and arguably slower moving ecosystems.

37.
How do Developers Learn?
As a tech publisher, we also wanted to see what methods developers use when learning. We
know that for most developers learning is something that happens across different formats
and media - but were there any trends or patterns across different ages and industries?

Primary Learning Method by Age Band

100%

80%
% of Respondents

60%

40%

20%

0%
18-24 25-34 35-44 45-60 60+
Respondent Age Band

Blogs and eBooks Interactive Printed Video


Articles Courses Books Courses

Primary Learning Method by Primary Language

100%
% of Respondents

80%

60%

40%

20%

0%
Python Java C# JavaScript PHP C++

Primary Language

Across different ages, eBooks remain the most popular format among our respondents.
However, videos do figure much more in the lives of younger respondents. There are a
number of reasons for this - on the one hand it says something about that generation’s
comfort with platforms like YouTube, but it also could be due to the type of engineering
roles this age group occupies - primarily front end and design focused. That makes the
visual element of learning particularly important.
38.
Printed Books
“I learn better from feeling and reading an actual book,
rather than looking at a screen and typing.”
“I can take the book outside and read.”
“Because I can have the book next to me while I use the computer. Plus I can
note everything on it, to make it easier to remember certain parts of the book.”
“Because I can read during my daily commute and take notes.”

eBooks
“A good eBook means I will have most of what I need to learn in a single place.”
“eBooks act as a reference material that is always
available regardless of internet access.”
“eBooks can be adapted to my learning pace; I can learn at any time.”
“It’s easier for me to focus on what I consider important.”

Video Course
“I can learn using my ears and eyes, stop the video and research on internet
if I don’t know a term or I want to investigate a concept deeper.”
“I like to see what I’m learning and be able to go back when
I’m finding something difficult to understand.”
“It allows me to confirm what I am learning visually. I can pause
and rewind when something is not clear at first.”

Blogs & Articles


Although we know eBooks and videos are popular across the developer world, we also
found that blogs and articles play a small but important part in developer learning.

“Quick search to find pertinent info and multiple explanations available


if one is unclear.”
“I makes it possible for me to stay up-to-date in a cost-free, easy-to-use way.”
“As real-world problems are varying vastly those require a different solution for each
almost. That’s why internet surfing, blogs, and article I think are the best.”
“Actual examples, usually relevant to me. Quick to read and follow and its hand on, no
messing about watching hours of video and still not have a clue what’s going on.”

8% overall said they use blogs and articles, but it was particularly interesting to see that
this is particularly true for those in the upper-middle salary band. 39.
Primary Learning Method by Developer Annual Salary

Less than $20k

$20k - $34.5k
Salary Band

$35k - $49.9k

$50k - $74.9k

$75k - $99k

$99k or more

0% 20% 40% 60% 80% 100%


% of Respondents

Blogs and Articles eBooks Printed Books Video Course Interactive Courses

This is because the people occupying these sort of roles inhabit an intermediary position
between engineering, business-level decision making, and team building - this is a strange
nexus that can’t often be adequately captured or expressed in videos or more traditional
learning materials.

Understanding other people’s opinions and experiences for this group is particularly
valuable, because understanding the human element within the engineering process is
something that can’t be learned from a manual. And although there are certainly good
books on how and why we should build, to gain a real understanding you need diversity
of opinion and experience.

40.
Open Source
It feels odd to talk about open source in 2019 - today open source software is
software. But it’s often forgotten that so much of the code that makes up the digital
infrastructure is built and maintained by people that do it just because they want to.

With this in mind, we asked our respondents whether they have contributed to any
open source projects in the last 12 months:

Have you Contributed to Open Source in the Last 12 Months?

21%

No
79%

Yes
21%
79%

Respondents overwhelmingly haven’t contributed to open source in the last year - however,
it’s worth noting that the 20% of people that have is a not insignificant minority. This
indicates there is an appetite across the developer world to get involved in developer
projects, even it is a largely niche activity.

Open source contribution becomes less likely as developers get older. There are a number
of reasons for this - it could be that younger developers are more likely to use open
source tools, but equally it might also be the case that older developers have less time for
‘extracurricular’ commitments.

41.
Why Do People Contribute to Open Source?
Developers contribute to open source projects for a number of different reasons:

For the Benefit of Others


Personal Development
Project Driver

Developer Motivations for Open Source


0%

Benefit
20%
of Others
51%

Personal 51%
Development
29%
29%
Project Driver
20%

“I feel like I am giving back.”


“Because I want to give back to the community.”
“I saw an issue I encountered and worked to fix it, so others didn’t have to.”
“It’s nice to be able to contribute something, because I use a lot of open
source software as well.”

Why Don’t People Contribute to Open Source?


There are also many reasons why developers don’t contribute to open source projects -
the biggest reason was, unfortunately, time or inclination.

However, some cited confidence and ability as a reason - given that many developers
who do contribute see it as an activity vital for their personal development, helping those
that lack confidence to get more involved with open source projects would be incredibly
beneficial to the wider open source community as well as individual developers.

“Coding is a job. If I want to do charity, I do charity in other ways.”


“I don’t know how to do it.”
“I don’t have time to work in projects outside from my job.”
“Entry barrier. I don’t feel my skills are at the level they need to be for
the projects I’d be most interested in.”
42.
Thanks for Reading!
This year’s Skill Up survey shows just how diverse and rich
the developer landscape really is. It’s easy to get caught up
in commonplace assumptions about what people are doing
or what they think is important, so understanding how
developers from different demographics, using different
tools and performing different roles, understand their place
in the tech landscape helps us to better see the reality of
the industry.

Clearly, there are some real challenges, not least when it


comes to making those big, exciting and (over) hyped trends
meaningful and impactful.

But there are also plenty of opportunities - the advent of


cloud and the continuing evolution of containers will surely
empower developers to build in more collaborative and
efficient ways, even transforming the way people who write
code relate to end users.

And what’s most important is that learning remains at the


center of the developer ecosystem. As a publisher, we’ll
continue to play our part in supporting that process of
exploration and learning that is, ultimately, the very thing
that makes innovation possible and meaningful.

43.
2019
ANALYSIS
Rich Gall
Gary Hebrard

EDITOR
Gary Hebrard
Rob Collingridge
Rich Gall

DESIGN
Clare Bowyer

44.

You might also like