Edumucate me please
February 8, 2018 4:51 PM   Subscribe

Looking for best resources to self learn how to program in R, python, or machine learning. Preferably of use to a person with a background in biology, little to no programming experience.

I'm looking for what it says on the tin.

I'm okay with paying for online courses, but I would prefer not to get another graduate degree. I do have an undergrad in bio, a grad degree in neuroscience. I took an undergrad and grad level stats course, but it was many years ago.

I'd like to learn these new tools to get my feet wet again, especially in terms of research. (I'm currently a "Technical Writer" and bored out of my mind).

What I'm hoping for are recommendations as to what worked well for you, especially if you didn't have much stats or a programming background. I'm anticipating that I will need to read lots of stats, or relearn what I can.

Bonus question: If I can successfully learn one or two of these programs and applications, create a portfolio, is there something I can do to convince someone to hire me to do this at a workplace? Or are there companies that take this risk (cities that I'm thinking about - Minneapolis, Portand, OR, or Chicago).

Halp me Metafilter.
posted by Wolfster to Work & Money (19 answers total) 47 users marked this as a favorite
 
The courses at DataCamp are pretty good. They have free courses in basic R and Python, so it should be easy to figure out if it’s a format that’s going to work for you. I don’t know if they’re a necessarily a replacement for a basic programming class, but it’s a place to start.
posted by Maeve at 5:04 PM on February 8 [4 favorites]


Do you want to learn bioinformatics, or "to code" more generally?

If the former, check out Rosalind.
posted by quaking fajita at 5:55 PM on February 8 [1 favorite]


I also recommend Data Camp.
R for Data Science: Import, Tidy, Transform, Visualize, and Model Data by Hadley Wickham comes highly recommended.
posted by waving at 6:02 PM on February 8


Codecademy, codecademy, codecademy. How I learned Python, and I found it really easy to pick up and pull ideas out.
posted by sciatrix at 6:36 PM on February 8


They're about perl, but I definitely used Beginning Perl for Bioinformatics and probably used Mastering Perl for Bioinformatics, both by James D. Tisdall. I will post back if I remember what I used for Python.
posted by 8603 at 7:08 PM on February 8


You can certainly learn to code without going back to school, or getting a second degree. I'm a Python programmer, but I don't do things with data. If you do go down that route, you will most likely need a Python package called pandas.

Python is easy to learn and a pleasure to use, and it's widely used in a lot of data analysis. Automate the Boring Stuff with Python is a good place to start. Just ignore what he says about using IDLE and use Atom or Sublime Text instead.

Many people who do data analysis use Jupyter Notebboks. Use Python 3 if you can.

Also, consider visiting your local Python meetup! You will find people who are willing to help you with questions and give you advice.

If you'd like to see what Python and data can do, you can look at Pyvideo, the Python video index.
posted by Lycaste at 7:19 PM on February 8 [2 favorites]


Thirding Datacamp. They pretty regularly run deals (I got 50% of for a year), and I think that 12 bucks a month has been totally worth it.
posted by rockindata at 7:20 PM on February 8


I'm taking Udacity's Data Analysis nanodegree right now, and it's been amazing for learning R and putting Python in context. They also have a machine learning course -- neither of them are what I'd call cheap, but they're far less than almost any bootcamp, for example. I've found I mesh extremely well with the way Udacity sets up its lessons, so it's definitely worth the cost for me. They have tons of free classes if you want to get a feel for their style first. I didn't much like their free Python course, though.

I taught myself at least the basics of Python with Learn Python the Hard Way. It's free for long enough to figure out if you'll mesh with the pedagogic style. (And then it's like $30, so very reasonable.) I found that it also was very good for learning/remember the basics of programming qua programming -- that it's expected to google for solutions, that your code will fail because of weird typos, etc.

I have zero background in stats and very little in programming. Udacity honestly got me to fall in love with inferential statistics.

I wouldn't worry too much about finding a job with a non-tech background; my impression is that that's not unusual at all, actually. The last time I worked in tech, in my department of about 12 people there was one guy who had a mathematics degree and I think he was the only one who didn't have a BA. My background is in object conservation and museum studies, and I feel pretty good about the skills I'm getting and being able to spin them to get my foot in the door somewhere. (Mostly because I'm also developing a portfolio and finding projects to work on, etc.) I swear I'm not a shill for the company, but Udacity also has career services available as part of the nanodegree courses, and at least so far they're worth the price of the course alone.
posted by kalimac at 7:22 PM on February 8


Another vote for rosalind.info. Start with Python Village, then do Bioinformatics Armory. If you want to go deeper into the bioinformatics algorithms themselves, move on to Bioinformatics Stronghold. If you want to do it with a textbook alongside, do Bioinformatics Textbook Track or Algorithmic Heights. The tree view shows you how the algorithms you're learning connect with one another and build on each other. Once you've completed a problem successfully, you can see the solutions that others have posted.
posted by clawsoon at 8:20 PM on February 8


Learn git at the same time. No coding without version control. Doesn’t matter if it’s just you: branch your code and think in issues.

Codecademy Python and Wes McKinney’s book did it for me. Seconding python3; not a huge changeover but if you never think that “print ‘foo’” is ok, so much the better.
posted by supercres at 10:00 PM on February 8 [1 favorite]


I would start learning programming through Stanford's continuing studies program (not free), particularly 106A and 106B. Although these courses are taught in Java and C++ respectively (relatively similar, syntax-wise), the classes are more about methodology and good coding. Then Python and R are really easy to pick up and self learn. The dpylr and ggplot2 packages in R are pretty much bread and butter for me.

I think ML is pretty tough even for an experienced coder. You might need to brush up on some linear algebra first, because it's very maths intensive. There's a course by Andrew Ng on Coursera on ML, and after that you can also take CS224 through the continuing studies program. It's pretty great, although difficult.
posted by typify at 12:18 AM on February 9


Forgot to mention: I recommend CS106A and B because it's really, really well taught. It's approachable but you learn so much. I've tried to learn coding from CodeAcademy and Coursera before, and it just wasn't clicking for me.
posted by typify at 12:23 AM on February 9


R for Data Science by Garrett Grolemund and Hadley Wickham is entirely readable free online and I love it. (you can also buy it, which I did, but the browser version is much better for me than the ebook.)

I have also liked DataCamp a lot.

RStudio Community is a welcoming place and you might find useful information/helpful folks there.
posted by you must supply a verb at 4:03 AM on February 9 [1 favorite]


Just a suggestion to check out any resources you may have at your local library. My (fantastic) library offers free access to Lynda and Treehouse courses for cardholders.
posted by kristi at 10:23 AM on February 9 [2 favorites]


I got started in Python with Hello World! by Warren Sande.
posted by 8603 at 9:17 AM on February 10


Georgia Tech is offering basically their entire MS in Data Analytics as MOOCS, which are free unless you want the "verified credit".
posted by hydropsyche at 6:50 AM on February 11


The answers everyone has provided is beyond my expectations. Thank you so much.

I'm adding another course that a work colleague just told me about: The Analytics Edge. Per my colleague, this is supposed to be free and provide what they want data analysts to do at my work place.

I also stumbled on a resource list on a r/bioinformatics subreddit. Some of the resources are similar to what others suggested, others I have not seen on the list.

Thanks again everyone. I have enough info now to bury myself in python, R, bioinformatics, etc.
posted by Wolfster at 5:44 PM on February 11


For Python, you're going to want to know about stackoverflow.com (Q&A site).

However, in addition to knowing a programming language, you'd also massively benefit from learning data structures and a bit of algorithms; data structures is "how to store stuff and get it back later", while algorithms is "do things with stuff you've stored".

For ML, Stanford's online course with Andrew Ng is free on Coursera. (Ng cofounded Coursera, and it's still one of the best bits on there.) You'd want data structures first; ML is a set of algorithms, so you might not need that bit first.

I've done ML professionally at scale, and don't know linear algebra, so your milage may vary quite a bit depending on what you need it to do.

Please dear lord, don't get a grad degree in CS or similar to get into this industry. Since you already have other degrees, the easiest path is basically:
- store a lot of examples you used to learn in a publicly visible Github account.
- put a link to the Github account on your resume, and voila, portfolio.

The probably-easier path is a "coder bootcamp" or similar. Some are okay, some are there to steal your cash; do some homework where ya can if you go that way.
posted by talldean at 10:45 PM on February 11


I'm going to mention a few in-person resources.

Check whether there is an upcoming Data Carpentry workshop or Software Carpentry workshop in your area. These are specifically designed to help folks like you bootstrap into stronger command-line, programming, and version control skills. They're often free or very cheap to attend, and targeted at scientists.

Thursday the 15th is the deadline for you to ask for financial assistance to attend this year's PyCon North America, which is in May in Cleveland. People of all skill levels in programming and Python attend PyCon and it's great for networking, learning, and talking shop. In particular check out the tutorial list (tutorials are paid separately from general conference registration; I can in particular recommend Stuart Williams's "Python Epiphanies" though it sounds like you'll be ready for that more like next year).

Mid-March is the deadline to apply for financial aid for the SciPy conference, which is in July in Austin, Texas. The SciPy conference has a bunch of people like you and people who used to be you :) and I predict the talks and tutorials there would be useful to you as well.

Finding your local meetups and checking them out is useful -- with a lot of these tools, setup and configuration and troubleshooting is a pain, and finding your local community of practice means you have the ability to haul a laptop to the meetup and have someone work on it with you, which is really valuable.

Once you've gotten a few months of programming under your belt, you can apply to the Recurse Center for a retreat of one week, six weeks, or twelve weeks in New York City. RC is an environment where people work on their own projects and learn from each other and there are always people interested in Python and data science and machine learning in every batch. It's free to attend and there are grants to help people from demographics underindexed in US tech, and they'll help you find a job afterwards if you want and they have connections with companies in lots of cities.
posted by brainwane at 5:54 AM on February 12 [3 favorites]


« Older Instrumental Cover Wedding Processional Songs...   |   Fonts for board books -- plain and simple one... Newer »

You are not logged in, either login or create an account to post comments