FAQ: why and how I learned to code
By Samantha G. Zeitlin
A lot of people have asked me why I’m not working in academia or biotech, how I learned to code, or how I got into data science. Here are some answers to some of those questions.
Are you sure you wouldn’t rather be in academia?
Yes and no.
Yes, I wanted my own lab. No, we don’t always get what we want, even after 7 years of postdoc.
Long story short: bad timing. It wasn’t bad enough that my thesis advisor had some personal and professional crises while I was his first grad student, but one of our lab members committed suicide on September 10th, 2001. I graduated the following year. Then my first postdoc advisor died. Plenty of other things went wrong, but at the end of all that, in spite having published some papers, I still couldn’t get a faculty position.
When I looked at the statistics, it seemed pretty clear that my chances of ever getting a faculty position were not likely to improve over time, even if I became a Project Scientist and waited around for the economy to improve or for NIH funding to go back up (it still hasn’t).
At the time, I spent several years submitting 50-150 applications per year. Most schools were receiving 150-300 applications per opening in my field. I mostly didn’t even hear back from the places where I applied; the only place that did interview me ended up hiring someone else (an MD who had already been in a tenure-track position at Duke).
It was never my intention to be a staff scientist as my ’terminal position’, so even though I tried working in a core facility at UCSF for a year and a half, I just couldn’t see myself staying there long-term.
Why don’t you apply to Genentech/Roche/some other biotech company?
I tried that. I worked at Geron for less than a year before they shut down their research and laid us all off. I had applied to Genentech and a variety of other places, but because my research experience was in Cell Biology, not Bioinformatics or Genomics, most biotech companies were not interested in my skill set. There is also a common belief that people who stay in academia for a long time are not well-suited for biotech.
How did you get into coding?
I never thought I would like coding as much as I do.
I had taken PASCAL in high school, where it was a required course, and I hated it.
I used UNIX to run bash scripts, and taught myself a little HTML, while working in research labs in college.
In graduate school and during my postdoc, I ran ruby and bash scripts, as well as java macros, and even a custom Mac app, which other people wrote for me, to help automate the quantitative image analyses for my projects. I tried to learn Ruby a couple of times, but my research needs were complex enough that it wasn’t the best use of my time.
After getting laid off by Geron, a friend recommended that I learn Python. Around that same time, I had been to a meetup where some data scientists were discussing what they did. From their description, much of it sounded like the sorts of things I had been doing as a research scientist: answering questions with data, but with different tools.
A while back, I wrote a post about how I started learning python. Basically, I taught myself, with help from online courses, local meetups, and friends willing to answer questions.
I chose this route because in my research career, I had to teach myself many things, and had gotten pretty good at it. I had realized that I often learn better on my own, and frankly was tired of formal classroom settings. The pace of group learning doesn’t usually match my optimal learning style - sometimes I want to go faster, sometimes slower. And I usually understand best the things I struggled with the most, so long as I didn’t give up. I knew from research that repeated failure is par for the course. Research is very much like aikido that way: fall down, get up, fall down, get up.
I also spoke to a friend who had attended a bootcamp and felt it was not worthwhile for her, neither for her learning style nor for the purported job placement advantages it offered.
How did you get into data science?
I took some R courses online, and decided that I did not like R enough to want to use it regularly. Instead, I learned pandas, matplotlib, and seaborn, and did some online courses and projects on my own. A friend set me up with some contract work, which gave me a chance to apply some of my skills and do some machine learning with sklearn.
After that, I taught myself some Django following a test-driven development tutorial, SQL, and a little bit of angular js, using more online courses. I did a few more projects on my own, including one using the google maps API.
After a variety of interesting interview experiences, I was hired by a local startup, where I wrote python all day every day, along with learning more Django, Postgres, git, AWS, and agile development processes. Although I enjoyed the data engineering aspects of my role, I missed being paid to answer questions with data. There was something bittersweet about cleaning the data and then handing it off to someone else to do the analysis.
At this point, I’m looking for a full-time data science position. I’m still doing online courses and projects on my own, picking up skills that seem useful, and trying to decide what sort of work would be the best use of my background and interests.
How do you stay motivated?
Self-motivation has to become a habit. I learned to work hard at an early age, and from my research career I learned to take breaks when I get frustrated or need to shift my thinking. Sometimes I do a headstand or go for a walk; and if it’s in the late afternoon, sometimes you just have to call it a day and try again tomorrow.
It helps to have a routine and stick to it. I figured out that for me, it’s best to do analytical tasks in the morning. When I’m too tired to think hard, I fall back on writing tests to help me get unstuck, or watching tutorial videos.
It also helps to know what to do when you are stuck: to have friends or mentors you can ask for help. Probably the most useful things I learned (the hard way) from my research career were a) perseverance, b) when to change directions, c) how to ask better questions.