Wednesday, January 2, 2013

Astronomer to Data Scientist

I recently made the transition from astrophysics researcher to data scientist for a tech company (Yammer / Microsoft). Below are suggestions for people in academia / research who are interested in pursuing a tech job.

Most tech companies are interested in smart, talented people who can learn quickly and have good problem solving skills. Scientists have these attributes. Therefore if you apply for jobs at tech companies, you'll likely get at least a response from a recruiter. However, once you get an interview, there are many other skills that the company will try to assess, skills that you may or may not have already.

Below are some tips which will help you both in the application / interview process, as well as on the job at a tech company. 

1) Learn a Standard Language
Sorry astronomers, but IDL isn't going to cut it if you want to get a tech job. You need to learn one of the industry-standard programming languages. Python, Ruby, Java, Perl, and C++ are all good languages to pick-up. It would also be good to learn a statistical analysis package like R, SAS, SPSS or Excel, as well as a visualization package to show your results. Some jobs, involve a coding interview. These require some knowledge of computer science algorithms. Look online, there are many example coding problems for you to practice. 

2) Learn About Databases
"Big data" is the Web 2.0 it-word. If you want to play with big data, you are going to need to learn how to manage, handle, and access it. SQL is a must. It would be great if you could also familiarize yourself with Hadoop/MapReduce and Hive. 

3) Brush-up Your Stats
Many of the tech interviews involve doing complicated math, probability, statistics, brain-teasers, and open-ended problems. Dust off some of your old statistics text books or pick up a book about data analysis using one of the above languages. Search online for past interview questions of the companies you are applying to. 

4) Communication is Key
To be effective in a tech job, not only should you be able to program, analyze data, and solve problems -- you need to easily explain your work to people who aren't very technical. Communication is incredibly important for these roles, and a huge part of the interview process is gauging how well you explain complicated ideas to a lay-person. There are many opportunities to practice this skill within academia, so give many talks, teach classes, tutor, volunteer, or do whatever you can to become very comfortable explaining technical ideas to people with different backgrounds and skill levels. 

5) Convert Your CV into a Resume
There is a difference, and it is important. People at tech companies get 100's of resumes. It is important to succinctly highlight the skills you bring to each job. It's great that you have published dozens of papers, given lots of talks, and taught many classes... but what is more important are the skills you acquired from those experiences. Resumes should only be 1-2 pages. Look at the skills required for the job you are applying for, and then try to demonstrate those skills by listing the relevant experience. 

6) Academic vs. Business Problems
In academia the goal is usually to get the most accurate solution possible. Time and efficiency are less important than doing something thoroughly and rigorously. In business the goal is to increase your company's value. Therefore any task must both optimize accuracy AND value. This is a difficult transition for many academics to make. Spend some time reading TechCrunch and other such sites to help familiarize yourself with the various metrics and problems that tech companies care about. Be prepared to work on short deadlines and to be able to prioritize tasks in order to increase the value of your work. Keep this in mind when answering open-ended interview questions such that you demonstrate your understanding of this difference. 

7) Do an Internship or a Project
The best way to get your foot in the door of a tech company is to do an internship. Many of the major tech companies have paid summer internships that will introduce you to this type of work, as well as teach you many of the above skills. The Insight Data Science Fellowship is an internship specifically designed for helping academics transition into tech positions. If you are unable to take the time off from your current job, then consider doing a project on your own. Create an application for your phone, or do a research project with one of the many free data sources out there. This will give you insight into the work you might do at a tech company, and an important set of talking points for interviews.

If you have more questions about making the transition from academia to tech or the tech interview process, feel free to contact me.