Last week I had the pleasure of attending Penn State’s Liberal Arts Scholarship and Technology Summit. From my perspective, one of the pervasive themes of this event revolved around coding: learning (and barriers to learning) to code and figuring out how and where to start.
To me, this is a very exciting time to learn something about computer programming! In the last year, several new resources have come online that make it easier and more fun to learn to code. For the purposes of this post, I’m going to focus on two languages (which were the subject of excellent workshops at LASTS13): Python and R. As mentioned in the previous post, I’m a convert to R. I love its flexibility and power for applications like data mining and data visualization. Python is an extremely powerful and widespread language and offers the ability for data mining as well. And while you may not need or want to dig too deeply into either language, an understanding of the basic concepts of computer programming (assigning variables, loops, arrays) could be beneficial in future collaborations or discussions.
My recommended first step to anyone looking to learn about computer programming is to think about a project or problem that interests you. For me, it’s the needs of a project and my passion towards completing it, which help motivate me to learn a language or learn new features of a language I already work with. For example, my desire to make aesthetically appealing visualizations for learning analytics has driven me to learn and use the ggplot2 package in R (which I will be posting about in the near future).
Below I have provided some online resources and starting points. I’ve neglected books from this list because after reading books on both languages, I found the online approaches to R and Python to both sustain my interest in programming and aid me in developing skill mastery. If you would like some book suggestions on either, please send me an email.
Course and Course-like resources:
Udacity offers an asynchronous course in learning Python skills through building a web crawler (Note, while this indicates beginner, I played with this course during it’s first offering and found some of the exercises to be beginner+ or intermediate (and some I found hard)): https://www.udacity.com/course/cs101
Codecademy is a great way to try several different languages without the need for installing anything. They offer a Python track (and is also an extremely fun and easy to navigate resource for learning HTML, CSS, JavaScript, JQuery, and (more recently) PHP and Ruby):
http://www.codecademy.com
Coursera is offering several Python-related courses coming up or starting right now (August 18th). Note: you must have a Coursera account to access these courses:
From Rice University: “An Introduction to Interactive Programming in Python”
https://www.coursera.org/course/interactivepython
From University of Toronto:” Learn to Program: The Fundamentals”
https://www.coursera.org/course/programming1
(Full disclosure: I have completed the University of Toronto course previously and lurked in the previous offering of the Rice course)
Coursera is also offering an R course that starts mid-September:
From Johns Hopkins University: https://www.coursera.org/course/compdata
(Full disclosure: I have lurked in the previous offering of this course)
Google is offering a playlist on YouTube featuring Introduction to R video tutorials:
http://www.youtube.com/playlist?list=PLOU2XLYxmsIK9qQfztXeybpHvru-TrqAP
CodeSchool (with this specific offering sponsored by O’Reilly) offers an introductory course on R for free (unlike most CodeSchool offerings) that allows you to try R without installing the language or an IDE:
http://tryr.codeschool.com/
Twotorials offers two-minute videos on various aspects of R and can provide a good starting place for R and brief answers for how to approach many topics:
http://www.twotorials.com/
Alternate resources for Getting Started on your machine:
Don’t want to install Python (or if you’re on a Mac, find Python)? Try CodeSkulptor, which allows you to try out coding in Python in an online environment:
(http://www.codeskulptor.org/)
The CodeSchool course above lets you try the same with R.
[If I am missing any and you’d like to see them added, please drop me a line!]
Finally, I’d like to echo/paraphase what Jeanne Spicer said #LASTS13 last week: don’t be afraid to Google for help. Learning to code requires building basic skills, doing by example, trying new things, and seeing how functions or packages work among other ideas. Looking to places like Google, r-bloggers, and Stack Overflow (for both the R and Python communities) will help you build your skills and maybe discover new and interesting aspects of coding that you hadn’t previously thought about. What is common to both of these languages are the very active, very engaged user communities which can be very helpful in all stages of your programming career.