Over the last two weeks of my time with you, I would like to dig into some useful tools and resources we (librarians/library staff) can use to learn code ourselves, but also to provide to patrons who would like to take the leap and learn code we well. This week we are going to specifically focus on adults (or even more specific teens and adults). All the resources listed here are free (though some may have “pro” or “paid” upgrades available.
One main difference between the tools here, and those we will cover next week for children, is that these are designed to teach and interact with code on the syntax level. What that means is that you will use these tools to “write” code using actual functions, commands, variables, etc. The code will be in written language. Conversely, as we shall see, many of the resources for children tend to be designed for teaching and interacting at the visual level, where graphical representations for written concepts are employed, and coding is more like constructing a puzzle. This of course is not the case will all tools, but more a generalization.
While many of the tools and resources provided here are designed to be used on an individual basis, libraries have explored using some of these resources to provide programs and instruction to their patrons as well. For example, the Princeton Public Library has used Code Academy as a vehicle for running a coding program for adults where they work through exercises, help each other, and learn both together and on their own. We are attempting our own version of this here at the Piscataway Public Library and are more than happy to share our results.
All of the resources here can be done via your web browser and require no downloads or software installations.
Udemy - http://udemy.com (also available as a mobile app)
Offers courses in a variety of topics including coding. Beware : some courses are pay and some are free. The educational offering are lecture based, many with quizzes, but lack an interactive component.
MIT MOOCS - https://www.class-central.com/university/mit
These limited offerings are taught by MIT staff members, and are offered completely free. The sessions are lecture based with no interactive component to them
Khan Academy - https://www.khanacademy.org/cs
Code Academy - http://codeacademy.com
Mentioned in the article, Code Academy is a free and feature rich tool providing courses in a variety of languages such as HTML, Ruby, Python and more. Each course provides step by step tutorials with the coding environment built in so you can complete exercises (i.e. write code) from within the course. The courses are written, with no video or lecture component. They also incorporate a badge system providing achievements as parts of the courses are completed.
Udacity - http://udacity.com
Provides access to several courses of interest for budding coders, including Python, but takes the approach of teaching code through building actual working programs. For instance, their introductory Python course is designed so that by the end of the course, you have built your own search engine. The courses employ both video lectures, as well as an interactive coding environment within the course for answering questions, taking quizzes and practicing code. All courses are free, and they are currently working on developing their course approach.
Coursera - https://www.coursera.org
Offers a variety of coding and other MOOCs from universities across the country. A free account will get you access to video lectures, test and quizzes, syllabus and more. Offers probably the widest range, and most variety of different course topics of all the resources listed here.
TryRuby.org - http://tryruby.org/levels/1/challenges/0
I love this one for beginning coder because it is just 15 minutes and really pitches itself as a way to get you hooked just enough to want more, but for those with almost little time. It uses written exercises with a coding environment built in to take you quickly through some basics of the Ruby language to get you feet wet.
Once you complete this little nugget, have some fun and shoot over to Rails for Zombies (http://railsforzombies.org/levels/1) and have some fun learning more Ruby, fight zombies, and earn some fun badges!
MIT App Inventor - http://appinventor.mit.edu/explore/get-started
This tool allows you to explore what it takes to build mobile apps, in this case, for the Android operating system. This easy to use interface provides you with a visual click and drag environment for designing your app, while a free account is needed to save your work. The environment itself is real, and you can build apps on here that can be uploaded to the Android market place or simply download and install on your personal device (and send to others of course!). If your reason for coding is to learn to build for mobile, this is a really great place to start (even if there isn’t much coding, its a great conceptual learning tool and can help build the foundation needed to move on to optimal mobile languages such as Java or Objective C)
Ok, so one preview from next weeks list. One of the earliest programming languages I was ever exposed to (on a Commodore 64 .. I really loved those machines, but I digress) was LOGO. It is a very basic programming language where you control a triangle shaped “turtle” and can move it across the screen, as well as have it draw pictures and shapes by “lifting” and “unlifting” the pen that trailed behind the turtle.
It taught the basic concept of assigning commands, syntax, but also made it fun by creating art on the screen. Its been around a long time, and can and is still used in many applications to teach very young students programming basics. So why here? Because honestly it can be fun, and it is about as easy as programming gets, so if you are still on the fence but want to jump in and have that tool that will build your confidence in minutes - give LOGO a try.. its fun for all ages.
Turtle Academy - http://turtleacademy.com/learn.php
Or, to just toy around with LOGO commands and have some fun, try http://www.calormen.com/jslogo/, a web based LOGO environment and editor.
I will be doing individual entries for each of these resources on TechEx in the near future to discover beyond my month here as a guest contributor.
For my final week, we will then look at resources that can be used with kids (tweens and younger).. though they can of course be enjoyed by all ages - until then!