Medical student lost in the world of programming

Programming isn’t something I anticipated learning this year. Not a surprise, considering I didn’t anticipate mucht at all of everything that happened. My travels to both Indonesia and India were scrapped off the agenda and my clinical rotations were put on hold. I suddenly had a lot of free time on my hands and I could spend it any way I wanted. I ended up knowing a little better which direction I’m heading.

It’s the end of November and I’d been contacting researchers for a while to get some experience in doing science, but to no avail. I’d been talking to an interesting researcher and I was pretty hopeful it was going to work out, so I took a couple of weeks off. It was called off again. I was really in need of something challenging at this point.

I picked programming for a couple of reasons.

  1. It’s useful, even for doctors. Technology will play a huge role in the future of healthcare.
  2. New methods for data analysis that use R or Python require programming knowledge.
  3. Coding ability can give new perspective to problem-solving.

I decided Python would be the best language to start with for its ease of use and versatility, and I completed several beginner coding exercises. I also fell for a very uninspiring but supposedly sharply priced Udemy course (I only had 19 minutes left or the deal would be gone!). Luckily, I got a refund.

I learned that really, learning-by-doing was the best way to get better, so I started thinking of my first project. I made a simple calculator which helps me rebalance my investment portfolio. It taught me about variables, functions and loops and most importantly:

My first project: the rebalancing calculator.

Gif of how my Python rebalancing calculator worked

(Not) getting it online

It works, cool, but allowing other people to use it would be even cooler. So I downloaded a web development framework for Python (called Flask), and went on a very confusing endeavour. I set out on a bumpy road with very few beginner-friendly YouTube videos and a lot of jargon-heavy documentation that I couldn’t read. To top it all off, I found out about the hefty price of Python-backed website hosting, right after finishing the website. Don’t make the same mistake! I was ready to leave the confusing world of server-side scripting for the pleasant world of HTML, CSS and a hint of JavaScript: web design.

The immediacy of web design is very pleasant; the effect of changing your code is visible most of the time and debugging is pretty easy. This makes it easy to get the website you want, but that did teach me a lesson: I’m very bad at design. I’ve gone through 4 different versions of this website and most of the improvements meant removing excess stuff. When I found out about that one JavaScript library that is able to animate stuff on scroll, for example, I needed everything to move. Less really is more. This website is not meant to showcase all the weird stuff you can do with CSS and JavaScript, it’s meant to be serve a purpose. An online hub

As I was spending more and more time on this website, I had to justify it for myself. What do I need a website for? The answer slowly crystallized in the following:

  1. An online hub is a place to collect everything you’ve made, both for yourself and for others, through the years. It’s pretty common to have a personal website if you work in tech or IT. It allows you to showcase things you’ve done for which you haven’t gotten a diploma, but that are still valuable.
  2. LinkedIn serves a similar purpose, but unlike your personal website, it allows for very little freedom as to how you want to present yourself.
  3. It’s an interesting way to distinguish yourself in fields of work where it’s not common. But, because it’s not a relevant skill, chances are they don’t really care, either.

I tried several different ways of hosting and managing a website, some working better than others. I started out making a simple static website hosted on Github Pages for free. Then I wanted to add a blog, so I tried WordPress. WordPress ended up being way too much for what I needed. A hard-to-customize, clunky dinosaur which carries loads of excess functionality and useless code for my goals. Then I stumbled upon Jekyll, a static site generator. That’s what I’m still using. I’ll probably write a piece about my experiences using Jekyll.

The plan for 2021

During the web design process, I started Harvard’s CS50 Introduction to Computer Science, and I tried my hand at using R for data analysis. I plan on doing the following three things slowly but surely during 2021:

  1. Complete Harvard’s CS50 Introduction to Computer Science. Completing this course will give me a sturdy theoretical basis for programming.
  2. Get proficient in data analysis using both Python and R. Get good at interactive data visualization; data exploration, manipulation and analysis. Will probably pick an online course on clinical data analysis.
  3. Develop my skills in mathematics. Mathematics are a fundamental tool in programming. Plenty of online courses to choose from.

Why data science?

  1. The value of science in applied fields hinges on its ability to improve human behaviour.
  2. We have more data than ever. It’s all worthless without meaningful visualization.
  3. The world is becoming increasingly confusing. We’re in need of clarity.

Curious to see what’s next!