Jeremy Walker

Software Developer & Social Entrepreneur

Why Doctors Should Learn to Code

Last weekend I helped organise The Digital Doctor Conference in London. This was an opportunity for doctors to come and learn more about technology and learn some of the basics of coding and web applications. The conference went really well, and lots of the attendees said how much they enjoyed learning about software development. As normal with this sort of event, it lead to a debate on "why bother teaching a non-developer to code?!". Lots of Tweets were flying around, with some challenging comments such as:

This debate has been thrashed out a lot and I see both sides. We deliberately linked to Jeff Atwood's "Please Don't Learn to Code" to make sure people were well informed. After the event, Lis Evenstad from EHI asked me about this, and about why we felt it was beneficial for doctors to learn to code. This is my answer.

Doctors Have Good Ideas!

Doctors have a unique insight into the problems at the NHS, and the tasks that doctors have to complete outside of clinical medicine. Many of these problems are simple and could be solved so easily if the doctor had the ability to do so. Some of the ideas that were raised included:

  • A basic application to alert the Ward Matron when something is out of stock.
  • A simple diary to keep a history of attended events for GMC revalidation.
  • A personal development planner for junior doctors.

All of these could be solved with trivial web applications - things that a doctor who learned to code could create. None of them need strong development skills. They are basic CRUD applications that don't contain personal information and require minimal security.

However, a doctor doesn't know that.

Doctors are used to £11bn projects that never get delivered, ancient software that only runs on IE6, long procurement processes, and expensive developers. They have no idea how easy it is to create a simple web application, and so many of these ideas never see the light of day.

No-one is suggesting doctors should start making complex systems, but there are many simples ones that they could make with minimal work, and that's where something like The Digital Doctor Conference comes in.

Doctors are Involved in the Specification and Procurement of Systems

The other important reason that I think doctors should learn the basics of software development is that they will probably be involved in some sort of specification or procurement during the careers. They are the experts in the systems they use and best placed to know how they could and should improve. By gaining a basic understanding of software systems, they will be able to make better informed decisions and make more insightful suggestions.

As a patient, if I was going to have an operation, I wouldn't expect to know every detail of how it was going to be carried out, but I'd like to know the biology of what was affected and the principles of what was going to happen.


If I doctor wants to learn the basics of software, I believe we should support and encourage them. Who knows where that knowledge will take them - just look at Ed Wallitt of Podmedics as an example!

If you're in medicine and have any technical questions or want to know how to get started developing software, join the Digital Doctor Google Group and ask away! There are lots of friendly people to help get you started. Alternatively, feel free to Tweet or e-mail me.


I highly recommend you read the comments below this as they add many valid viewpoints. A few people on Reddit also have some interesting thoughts. I also recommend reading Raza Toosy's blog post on his experiences of being a doctor who can code.

Share This Post



Al Langstaff

Some points are fair enough, but your examples are unworkable. These need to be systems for thousands of people that are effectively implemented on a broad scale. That's why the NHS is used to £11 billion projects, it doesn't and can't work on a macro level

I do appreciate the idea of people having a basic level of understanding and this often does allow for better specifications as your example. This is however made irrelevant by a good quality cross functional project team. You can often end up with the situation of a little information being very dangerous, as I'm sure doctors experience with patients who have some knowledge but not all of it about a particular medical condition. We have experts for a reason. Jacks of all trades unfortunately result in mediocrity a lot of the time.


Jeremy Walker

You're looking it at the same way that old IT administrators look at it, not at the way doctors see it.

None of these examples need to be NHS-wide. For example, the system that allows doctors to report missing stock is still great even if it only works in three wards of a hospital. This problem is something that has annoyed doctors there for over two years. The whole point is that it doesn't need to work over the whole NHS to make a difference. It doesn't need infrastructure. It can just be a tiny, simple website and a tiny app that a doctor could make for his hospital. If it crashes, all that happens is that people end up back in the situation they current experience.

All three examples are things that we are going to build in a couple of evenings, that all the doctors there were very excited about, and that will make an instant difference to people.

Plus, it'll be free because the doctors are making it with the help of the open-source community!


Damian Williams

The problem with the NHS is litigation. So everything has to be secure and audit trailed etc. I would agree that often this is over done but there are some serious aspects too.

Take the stock ordering example. If you set up such a system and it works then people will start to rely on it. Doctor uses last ET tube in a resuscitation and messages for a stock update. Message fails to get through and so stock not ordered. At next resuscitation patient dies because needed equipment not available. An extreme example but certainly possible. Who is to blame? No doctor or coder wants the blame on their doorstep.

I think doctors can be part of a development team and knowing the basics of coding would enhance their usefulness.

Was sorry to have missed the conference - would have loved to attend. This is an area I'd love to develop but problems abound - time, resources, level of remuneration, liability.




Your link to Jeff Atwood's article is broken.

This is a really good initiative. Doctors should realize than learning basic programming is to them what a Biology class in school is to everyone.

If programmers exist in every industry they can come with solutions for tedious repetitive tasks that can be automated etc. saving time, money and improving efficiency.


John Millist

Whilst I'm not a massive supporter of just anybody deciding they want to code (demean our profession much?), we all know a little knowledge is dangerous. I think there is some legs with this. I think the big thing that could happen, is a doctor may get a better grip on what is and isnt possible and how the systems can work and how they are put together.

It could mean, when they hit a wall in everyday NHS life, they have a big idea of how it could be solved with software and while maybe not having the in depth knowledge, have a reasonable idea how to go about planning a process and perhaps handing over to a developer.

The developing is never the hard bit, its always the idea that is


Jeremy Walker

Damian - Your concerns about the Matron app are valid. However, it's surely better with word-of-mouth or pieces of paper being passed around (the current systems). If doctors still inform nurses, but then log it as well, you're achieving the best of both worlds.

suyash - Thanks. The link is fixed. I really like the analogy example. I'll tweet that!

John - I agree. I think the fact that a doctor can understand how a problem can be solved with software is a really postiive thing.


Dizet Sma

Taking your stock control app as an example, who is going to do the input / test / monitor / support / training roles?

Will the Doctor have documented the code and have some sort of manual / guidance available for when something goes wrong? If it crashes, the users are not back in the same situation as they will have removed the existing system, probably a bit of paper or a book.

You will then be in the unenviable solution of the Doctor now having to fix the problem, re-test and re-implement instead of doing what (s)he should be doing.

I have seen many, many systems / databases that have been created by non "technical" staff and it nearly always falls back onto IT departments to support etc.

I wholeheartedly agree that everyone should have an understanding of how systems work and avoid "blue sky thinking" about systems. I also agree that it is better to have full input from clinicians, users and developers on any IT project, but not for Doctors to strike out on their own as seems to be the proposal here.


Raza Toosy

Good post Jeremy and echoes my thougths too. I actually wrote about this over the weekend in my blog (http://razatoosy.wordpress.com). Sorry about the plug but it's very topical at the moment and sits very close to me personally. My feeling is if Doctors want to code they should learn a high level language like Python and work on the Business Layer to connect back office to front initially at least at the prototype to then nurture and evolve the product further.

I agree with Dizet that the biggest headache isn't the code, it's maintaining, supporting, iterating and documenting it but that comes as products evolve and as the relationship between the coder and the clinician in the same team matures.


Dr. Ashish Jain

Nice blog! I agree with your views but only partially. It is good for the docs to know about coding so they also have a perspective of how the things work. Dont expect them to actually 'Write codes'. Most of them cant and rest of them wont. Like they have the knowledge of how a CT machine works but cant fix it.

Plus learning to write a code only to manage inventory is asking too much from a doc. I would rather go home and play with my daughter, that is in case I reach home in time.


Dr Ed Wallitt

I feel a little out of place to comment as I am mentioned in the article.


To give you my story. I was a frustrated London-based GP trainee who learnt to code, built a few rails apps, integrated them into existing NHS systems, and has now left and setup my own medical IT consultancy. Believe me...if I can do it...anyone can.

If you want to learn something...follow your heart...and get on with it. You never know where it will take you.

Post a Comment

I'd love to hear your thoughts :)