Coding frequency and tools

Coding frequency

We asked our respondents, “In my current role, I write code to complete my work objectives _____”. Most of respondents either coded regularly or all the time.

Show chart Show table
Coding frequency Count
Never 160
Rarely 137
Sometimes 216
Regularly 315
All the time 232
a Sample size = 1060

Access to and knowledge of programming languages

For each of the most popular programming languages from last year’s CARS data, we asked respondents to answer “yes”, “no” or “I don’t know” for the following statements:

  • I know how to program with this tool to a level suitable for my work
  • This tool is available to use for my work

Knowledge of programming tools

Most common programming tool was R followed by SQL.

Show chart Show table
Programming language Yes Don't know No
C++ / C# 97 56 907
Java / Scala 75 56 929
Javascript / Typescript 100 59 901
Python 390 36 634
R 620 29 411
SAS 336 47 677
SPSS 410 49 601
SQL 567 42 451
Stata 163 58 839
VBA 317 52 691
a Sample size = 1060

Access to programming tools

The programming tools with the greatest access were R and Python respectively.

Show chart Show table
Programming language Yes Don't know No
C++ / C# 102 580 378
Java / Scala 116 601 343
Javascript / Typescript 150 592 318
Python 662 227 171
R 863 107 90
SAS 447 353 260
SPSS 439 349 272
SQL 662 285 113
Stata 276 493 291
VBA 572 350 138
a Sample size = 1060

Access and knowledge gaps

We used the above data to calculate the number of respondents who have access but no knowledge, access and knowledge, and knowledge but no access for each programming language. The tool with the greatest access only was Python and the tool with the greatest access and knowledge was R.

Show chart Show table
Programming language Access only Access and knowledge Knowledge only
C++ / C# 67 35 62
Java / Scala 87 29 46
Javascript / Typescript 90 60 40
Python 342 320 70
R 298 565 55
SAS 183 264 72
SPSS 183 256 154
SQL 176 486 81
Stata 183 93 70
VBA 282 290 27
a Sample size = 1060

What are people using code for?

We asked respondents what data operations they do in their work, and whether they use code to do them. The data operation with the highest frequency done with some or all code is data analysis. The data operation with the highest frequency done without coding is quality assurance.

Show chart Show table
Data operation I do this without coding I do some or all of this by coding
Data Analysis 200 791
Data Cleaning 131 650
Data Transfer / Migration 155 364
Data Visualisation 336 567
Quality Assurance 342 585
a Sample size = 1060

Coding capability

We asked respondents a series of questions about whether they feel their coding ability is improving in their current role and where they first learned to code.

Change in coding ability during current role

Respondents who had coding experience outside of their current role were asked whether there has been a change in their coding ability during current employment. Most respondents coding ability improved during current role.

Show chart Show table
Coding ability changes Count
Significantly worse 67
Slightly worse 113
No change 137
Slightly better 292
Significantly better 237
a Sample size = 846

Where respondents have learned to code

Respondents were asked whether they had coding experience outside their current role and, if so, where. Most of the respondents first learnt code in education.

Show chart Show table
First coding experience Count
In current role 175
In education 466
In private sector employment 38
In public sector employment 141
Self-taught 147
Other 9
a Sample size = 986

Coding practices

We asked respondents to report how often they make use of each of the coding practices presented below. Please note that while there are many different coding practices listed below, we understand that not all are proportionate for every coding project.

General coding practices

The most used coding practice is “I write repetitive elements in my code as functions”.

Show chart Show table
Percent
Question I don't understand this question Never Rarely Sometimes Regularly All the time
I use open source software when programming 7.0 15.6 10.0 17.0 23.9 26.6
I follow a standard directory structure when programming 25.9 6.4 9.4 19.7 26.8 11.8
I follow coding guidelines or style guides when programming 3.9 7.3 10.4 27.2 36.0 15.1
I use a source code version control system e.g. Git 10.7 37.3 13.9 12.4 12.1 13.6
Code my team writes is reviewed by a colleague 1.8 7.9 13.8 27.9 27.8 20.9
I write repetitive elements in my code as functions 4.4 9.8 9.4 22.9 30.1 23.3
I collect my code and supporting material into packages 11.1 40.0 16.8 15.3 11.3 5.4
I unit test my code 29.0 24.4 12.9 13.8 12.4 7.4
I write code to automatically quality assure data 4.1 26.4 17.7 29.7 15.2 6.9
My team open sources its code 16.1 48.6 13.1 13.6 6.1 2.6
a Sample size = 900

Documentation

The most used documentation is code comments.

Show chart Show table
Percent
Question I don't understand this question Never Rarely Sometimes Regularly All the time
Analytical Quality Assurance (AQA) logs 19.4 39.6 14.0 11.2 9.3 6.4
Data or assumptions registers 21.4 32.3 13.4 15.8 11.7 5.3
Documentation for each function or class 11.4 23.9 14.6 20.9 19.4 9.8
Code comments 2.2 4.7 2.8 6.0 29.8 54.6
Flow charts 5.0 34.9 22.8 26.3 9.1 1.9
README files 7.4 24.9 14.3 25.8 16.8 10.8
Desk notes 15.6 20.7 11.2 21.2 23.1 8.2
a Sample size = 900

Reproducible workflow packages

We asked respondents “do you use reproducible workflow packages e.g. drake, make or pymake?”. Most respondents didn’t use reproducible workflow packages.

Show chart Show table
Use reproducible workflow packages Count
Yes 37
No 509
Don't know what they are 354
a Sample size = 900

Source control platform

The number of users of each source control platform. If a source control platform was used most respondents used GitHub.

Show chart Show table
Version control platform Yes
GitHub 270
GitLab 182
BitBucket 42
AWS CodeCommit 2
Cloud Source Repository (Google Cloud) 21
a Sample size = 900

RAP knowledge and opinions

Knowledge of RAP and RAP champions

We asked our respondents whether they had heard of RAP and what their knowledge is of their own department RAP champion. The most frequent response was “Have not heard of RAP”.

Show chart Show table
RAP champion knowledge Count
Have not heard of RAP 397
Heard of RAP, have not heard of RAP champions 170
Heard of RAP, does not know department champion 240
Heard of RAP champions, no champion in department 24
Knows department RAP champion 179
a Sample size = 1060

Opinions on RAP

We asked our respondents who had heard of RAP the extent to which they agree with the following statements:

  • “I understand what the key components of the RAP methodology are”
  • “I feel confident implementing RAP in my work”
  • “I think it is important to implement RAP in my work”
  • “I feel supported to implement RAP in my work”
  • “I know where to find resources to help me implement RAP”
  • “I and/or my team are currently implementing RAP”

The figure and table show the percentage of respondents who picked each response option. Percentages are out of a sample of respondents who said they had heard of RAP. The statement most respondents agree with is “I think it is important to implement RAP in my work”.

Show chart Show table
Percent
Question Strongly disagree Disagree Neutral Agree Strongly agree
I understand what the key components of the RAP methodology are 6.0 17.6 12.8 45.6 17.9
I feel confident implementing RAP in my work 13.7 25.2 21.1 27.6 12.4
I think it is important to implement RAP in my work 3.0 7.2 20.1 39.2 30.5
I feel supported to implement RAP in my work 10.3 16.6 34.2 26.5 12.4
I know where to find resources to help me implement RAP 11.3 26.2 22.3 28.7 11.5
I and/or my team are currently implementing RAP 16.0 25.0 22.3 23.4 13.3
a Sample size = 663

RAP scores

RAP components

The frequencies for each RAP component below are derived from a series of questions on coding practices (see the coding practices page). These were used to calculate scores for each component (0/1) where respondents answered “regularly” or “all the time” to the relevant questions. The list of RAP components used here is based on the RAP minimum viable product guidance agreed by the RAP champions network. The RAP components most used were “Functions” and “Follow code style guidelines” respectively which are both in “Advanced” components.

Show chart Show table
Component Type Count
Documentation Basic 235
Peer review Basic 438
Team open source code Basic 78
Use open source software Basic 454
Version control Basic 231
Code packages Advanced 151
Continuous integration Advanced 128
Dependency management Advanced 196
Follow code style guidelines Advanced 460
Function documentation Advanced 263
Functions Advanced 481
Unit testing Advanced 179
a Sample size = 900

Basic RAP scores

Show chart Show table
Basic RAP score Count
0 361
1 295
2 183
3 129
4 72
5 20
a Sample size = 900

Advanced RAP scores

Show chart Show table
Advanced RAP score Count
0 220
1 195
2 157
3 137
4 86
5 57
6 27
7 21
a Sample size = 900