How to Become a Clinical Developer #doctorswhocode

Before I became a clinical developer I was a relatively technology-naive doctor for 6 years. Sure, I was interested in technology but I couldn’t write a single line of code and I certainly didn’t know what was possible through software, the internet and the coming age of medical technology. For me it all started out as it always does with trying to solve a problem. I was trying to solve the problem of delayed diagnosis for patients with IBS by building an algorithm. This then led to a chain reaction of other discoveries which thrust me down the path towards data science. (Interestingly whilst I did build an algorithm I became instantly dissatisfied with it and thus why I am now obsessed with machine learning.) This is my ‘why’ – I exist to make things better for patients and clinicians through technology and this is my compass by which I make decisions.

That was my situation. The key question you need to ask yourself is: What is my problem? This is the key to unlocking this journey from normal clinician to clinician developer. Now, at this point some people might say why not outsource the solution. This is a very valid point and for an easy problem – like building a landing page for a website for instance you may well want to do this. However, I think that logic is flawed in several ways:

  • Firstly, if you ‘outsource’ things you don’t know how they were built and therefore cannot change them. This means they are doomed to be ‘static’ and static things always atrophy over time – this is a fundamental law of all nature – ignore it at your peril.
  • Secondly, it deprives you of a chance to develop as a person. Developing software is just as much about developing problem solving skills, communication skills, product development skills, business insight and growth/time hacking as it is developing technical skills. If you don’t learn at the start you will pay for it later in other ways.
  • Thirdly, if you start simple and at the beginning, you will grow with your subsequent products. I didn’t start by writing an algorithm. I started by building a blog and experimenting with social media! Why did I do this? It was the best starting point I could think of at the time and it was a great springboard to then learning web developement, then power-use of tools, then coding and then data science! If I had started at the data science end I wouldn’t have gone anywhere.
  • Fourthly, it becomes really expensive. Many startups are bankrupted simply because development costs are so high. Combine this with the fact that most startups fail (because they fail to achieve product-market fit) and you have a recipe for waste. The first bit where you have lots of ideas it both the easiest bit to learn to do yourself and also the most likely to fail. Outsourcing this part of your strategy is likely to end in a costly learning experience rather than a cheap rewarding one.
  • Finally, a lot of things we do simply can’t be outsourced. Healthcare projects by their nature tend to involve confidential-data and the fewer hands involved in the process, plus the more ‘in-control’ you can be as the developer at the source the better you can ring fence your work. Plus there is a massive international shortage of data scientists, and I therefore simply couldn’t outsource what I was working on, and I still can’t. This is why we need clinical developers who have a deep understanding of the problems that only they can solve!

I hope I have convinced you that contrary to popular believe there are some major benefits to getting your hands dirty as a clinician. But now the key question. Where do you start?
This is a question that cannot be answered in a straightforward way. To find the answer you need to start at the end (where you think you want to end up) and work backwards:

  • If your ambition is to build a website to support patient’s with a specific condition, then start by becoming an expert in that condition, joining social media groups and micro-blogging (Tumblr, Twitter etc) – Then when you have a good understanding of what the problems are that they face, build a simple blog of your own on WordPress (I will explain how to do this in a later post, it is extremely simple and requires no coding skills at all). Then focus on building ‘traction’ (again I will explain more about this in future posts). By this point you will have by developed the skills to build a basic site and you can move on to doing more complex things on WordPress (The functionality in WordPress is immense and you can achieve an enormous result without writing a single line of code). Then you need to start learning some HTML, CSS, JS code to take things further (However, many will not want or need to and this is fine as well – you no longer need to code to be a frontend developer. The rules of the game have changed and what counts is results not how fast your page loads.)

  • If your aim is to produce the next killer medical application to make life better for other clinical staff then start by becoming a power user of other people’s applications, take an online course in app design and start simply by building a basic website – This is key (as I will explain in future articles the way to build a killer app is not to start with an app). Then gradually increase the complexity of the site and move towards performing simple backend-functions (Again I recommend WordPress as it means you can obtain results quickly on your own). Then start building a simple web-app (again in WordPress). I suggest you stick with WordPress when you are learning as it is beginner-friendly and you can ‘hack’ quickly (achieve fast results). At this point you need to be thinking about learning either python, ruby or PHP. I suggest you start with python as it is beginner friendly and very readable as well as very powerful. By this point you will have ‘unlocked’ the beginning of the path to becoming a backend developer and you will be well on your way to building the web-app you really desire.

  • If you ultimately want to solve a complex machine learning problem that is specific to your line of work I suggest you start by manipulating big-data in Excel. Then try using some more specialised software. Then learn the programming language Python as this will give you the right kind of mindset to move to the next stage – This will act as a launchpad (I suggest you ignore all other programming languages at the start or you will get confused.) Then do some online-courses (I will recommend which ones later). Then find a dataset that is important to you and start playing with Python packages etc. Go on a bootcamp and start applying what you have learned. One of the features of medical datasets is that they are normally confidential, so I strongly recommend you don’t put them on Kaggle or GitHub (online developer communities) but you can play with other data-sets using these communities.

I hope this makes sense. I plan to write everything in as simple a way as I can because the point of this site is to encourage other clinicians on this journey. If you think I am using language that is too technical please let me know and I will ‘develop’ it.Clinical Developers would like to thank the ‘Python Software Foundation’ for the use of their fantastic logo. We are proud supporters of Python.Originally published on www.clinicaldevelopers.org the network for clinicians who want to develop.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s