Coding from a Non-Coder

By: 

Photo Credit: Almonroth/Wikimedia Commons

I never opened a computer programming software until my first year of graduate school. Before then, MATLAB was just a desktop icon I had seen on my dad’s computer (he’s an engineer), or the subject of a muttered complaint by my college engineering major roommate who had to use it in her classes. As a biology major, I blew it off as something I would (thank goodness!) never need to use. Needless to say, this set me up for a rude awakening just a few years later. 

During my first lab rotation, I reached the somewhat alarming conclusion that MATLAB (along with other computing languages) was used for virtually every type of analysis in human neuroscience research. I honestly think I journeyed through all five stages of grief before arriving, albeit dejectedly, at the conclusion that I was just going to have to learn how to code.

One of the most striking things about learning to code is how it trains your brain to problem-solve.  It forces you to think in a simultaneously strategic, conceptual and numeric way. The name MATLAB is the conjunction of two words: matrix laboratory. Data is stored in matrix variables, and computations are performed by referencing data in this form. A matrix can be thought of as an array of numbers (or other type of information) arranged in rows and columns. This allows complex computations as well as specificity, given that each number has a unique row-column identifier. This can be particularly useful in human functional magnetic resonance imaging (fMRI), where brain data is stored as matrix maps of brain activity. When most people think of fMRI, they think of colored blobs on a brain. But those blobs are stored as matrices of information with which we can perform complex analyses.

Now, I won’t claim to have become an expert coder in the last five years. I would check the “proficient” box as well as the “MATLAB only” box. But, even just learning a little about coding has allowed me to see the vastness of its potential. It is incredible to realize not just how much you don’t know, but how much could be. It’s sort of like when I finally got a TI-83 graphing calculator in middle school and I learned how to do all kinds of crazy complicated things like graph scatter plots (and play Duck Hunt), only to realize how much stuff I had no idea how to do. Learning to code is not only eye-opening, it has been transformative. It has allowed me to bridge the subtle but profound difference between “I have no idea how that could ever be done” to “I can see how a really smart person could make that work.”

I am not the only one who has reached this conclusion. Several new initiatives (Code.org, Yes We Code, Girls Who Code, to name a few) supported by the likes of Google, Facebook, Microsoft, and more, aim to improve youth education through computer science, starting as early as kindergarten.

Of course, a multitude of coding languages exist, each of which may be optimized for particular tasks. If you are interested in learning more about coding, I’d encourage you to start with SQL, a universal language for almost any type of data science. Several good online tutorials exist (such as SQLZOO) which cater to even the most basic of beginners. Learning to code may not only be useful for your own research, but it will introduce you to the guiding principles behind almost every major technology, as well as help you to tackle increasingly common issues of “big data.”

Topic: 

Tags: 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <div> <br>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.