Online teaching of Python or R?
July 2, 2012 4:01 AM   Subscribe

I've been asked by a colleague as to how they can learn programming for their professional advancement. Because of the area they work in, the possible languages would be Python or R. Complicating factors are that they (a) don't feel confident about self-learning and so (b) would like something more like a traditional classroom or workshop approach but (c) are in a remote foreign location, far from any educational facility, at least in their native language. So what we're looking for is an online classroom of sorts.

I'm aware of a few choices (O'Reilly, Google, MIT OpenCourseware) but it's been so long since I was taught a programming language (as opposed to just learning it by myself), that I'm probably out of touch with a lot of choices.

To summarize the parameters:

* Must be a structured course of learning as opposed to a reference book or set of lecture notes etc.
* Must be able to be done from a remote location (i.e. cannot come to a learning site)
* Must be English language
* Must be Python or R (i.e. that's what's used in this field)
* Should be suitable for an intelligent and educated person, albeit one without programming experience
* Should have interaction with or guidance from a lecturer, mentor or other authority
* Prefer to have interaction with a group of peers or fellow students
* Prefer free or at least cheap courses
* Prefer some application in the domain of bioinformatics or biomedical research

What's not going to work is advising them to just nut up and read a book. This is a smart person and accomplished in their own area, but computer science and IT is alien to them, they're isolated, and will need some hand-holding at least initially.

Any knowledge or experience of these?
posted by outlier to Computers & Internet (8 answers total) 29 users marked this as a favorite
udacity has an introductory course that teaches Python. It probably meets all your criteria except for the application to bioinformatics or biomedical research.
posted by aroberge at 5:08 AM on July 2, 2012 [1 favorite]

Python is a great language to start with; but if "computer science and IT" are "alien" to this person, I wouldn't begin to think about specific domain applications quite yet. Indeed, I would recommend something a bit more general to begin with -- specifically, the Stanford online "Computer Science 101" course. It runs for six weeks, includes labs, lectures, quizzes, and an online discussion community. A friend of mine just finished it, and he was pleased with what he got out of it. It won't give you in-depth Python coding experience, but I would argue that this isn't what your colleague needs right now. Rather, afterwards he or she should be able to confidently start to pick up languages on his or her own. (The only negative here is, alas, that there's no set starting date for the next course. But I would optimistically imagine that they would start up again some time in the fall.)
posted by ariel_caliban at 6:10 AM on July 2, 2012 [1 favorite]

Have you checked out Python's list of training opportunities to verify there's no course available in your friend's location and language? There's also an "Internet" section of online offerings at the end of the list.
posted by thatdawnperson at 6:50 AM on July 2, 2012

I'm following the MIT intro to cs (with python) via itunes if only for the pllayer that lets me run the courses at 2x speed. So far it's great, gentlestart with both cs and python that should get complex enough soon. Caveat is that I have 10 years of matlab experience. But like you guys are noticing, science is going pythonic. Already I love it more than matlab.
posted by Smegoid at 7:14 AM on July 2, 2012

Response by poster: I hadn't forgotten the IT / CS end of things, but was grouping it as a seperate if complementary problem. But that Stanford class looks neat. Thanks.

Have you checked out Python's list of training opportunities to verify there's no course available in your friend's location and language?

To preserve their privacy, I don't want to give away their location. But it's very remote. Hell, the country isn't even listed on that page. Still those internet classes may provide useful leads.

From googling, there's a fair swathe of classes / videos / etc. out there but a lot less of the interactive learning, be it between a teacher and student or just between students. In any event, I'll summarize results and post them at some point.
posted by outlier at 7:22 AM on July 2, 2012

Google's Python Class - not for the complete novice, but worth a try after Comp Sci 101.
posted by cogat at 7:47 AM on July 2, 2012

I cannot recommend software carpentry enough. It's not exhaustive, so you'd want to use it in conjunction with something else, but everyone who wants to program should watch these videos. It's more of programming 101 type course, but it's done in R.
posted by Tooty McTootsalot at 7:50 AM on July 2, 2012 [6 favorites]

Response by poster: For those interested, I've placed a summary table of answers at

Short answer: no great solutions, but some promising leads.
posted by outlier at 5:50 AM on July 10, 2012

« Older Will jumping ship just lead to drowning?   |   Places to race go-karts in/near NYC Newer »
This thread is closed to new comments.