Radiologists have a day job (or a night job, depending on your precise definition of “radiologist.”) Many people want to learn the syntax of a computer language, while some want to keep up on existing skills.
If your goals are similar to mine, these might help. Now these are not ways to learn to write code (I’ll write about that later), but ways to brush up on existing skills.
Here are five things to help keeping up your coding skills:
Work on a Project
Most radiology practices can be improved by better use of technology (note: I don’t mean better technology but better use of technology). Maybe your practice needs a revamped website. Maybe your scanner protocols can be consolidated in a centralized storage in case they become overwritten by default after a repair.
Working on a project that is concrete to your daily practice is probably the single best way to keep your skills current. There is a real drive for doing things well. There is a pressure of eventually displaying your work. There is, above all, the opportunity to improve the way your co-workers do their work by writing code. As long as you are willing to accept the challenge, both intrinsic and extrinsic rewards can be well worth the effort.
Perform Data Analysis
If taking on a true tangible project sounds too involved for your professional life right now, that’s okay! There are plenty of other ways to keep your coding skills current.
Language is just a way to communicate information – the usage is largely independent of the syntax. Likewise, coding has a variety of purposes. While you may not be writing the next Google Maps frontend or developing the next Twitter backend, as a radiologist you can run across a lot of data regularly.
What is the volume trend in your practice? What is the average turnaround time? Make a request to your data center for a spreadsheet of last month’s radiology reports by modality, anatomy, and timestamps (exam complete and report).
It may be easy to do the analysis straight on Excel, but instead, use your favorite computer language. Is R your cup of tea? Is Python? How about goodl old Java? The benefit of approaching analytics this way is you get to scale your analysis very, very quickly. The difference between analyzing a 300-row spreadsheet and a 30-million-row spreadsheet is just harddrive space.
Coding “Competitions”
Many online programming competitions allow you to solve discrete problems in a “practice mode” (or in actual competition mode with penalties for wrong answers, if you choose). They also allow you to submit solutions in a variety of programming languages. If you got into coding because you enjoyed the rush of creating something out of your own hours of effort, you might enjoy these.
Codeforces is a good example of coding competitions with discrete problems. The problems range from straightforward to very difficult, but they always require some level of cleverness and insight into the inner workings of the mathematical construct. It’s never just busy work.
If you want to try your hands on more real world problems, try Topcoder.com.
Learn a New API or New Language
Like any skill, every element of computer science builds upon itself in some way. Knowing how Java works can help you create objects using Python. Learning lambda functions in Python helps you code in Scala. Knowing Java packages, as it turns out, also helps you code in Scala.
In imaging informatics, learning the DICOM construction helps you understand DICOMweb. Learning the syntax of RESTful APIs in DICOMweb, in turn, helps you work with FHIR and Twitter because they are also REST based.
One great way to keep yourself current as an imaging informaticist is keep learning new things, because learning new things requires you to review what you already know.
Go to Society Imaging Informatics in Medicine Conference
Society of Imaging Informatics in Medicine (SIIM) has an annual conference where many workshops help you at all levels. For instance, the 2016 conference had R-workshops catered for various skill levels. A programming Hackathon provided hands-on opportunities for DICOMweb and FHIR API. For the QI-minded informaticist, whiteboard sessions on innovation provides a birds eye approach for improving an imaging practice.
Conclusion
As a radiologist, I am not (and probably never will be) as good as a true software developer, so my goal is to keep abreast the newest technologies and periodically create something that helps me solve my every-day problems at work.
How do you keep up with your coding skills?