Django Girls Seattle and Reading List for Python

Yikes!  Long time, no post!  Sorry, my faithful few readers, you’re much appreciated.  Here’s some recommended reading, and a small summary of what I’ve been up to!

Python recommended reading list:

  1. Django Girls tutorial gives you a quick and dirty introduction to Python where you can actually start doing things.
  2. Coursera’s Introduction to Python is good for those without any programming experience looking to learn the basics of Python by building games.  It has good projects, though so does Udacity’s Intro to Computer Science that will use your intro skills.
  3. How to Think Like a Computer Scientist is another free online book that is a great introduction to programming and problem solving.
  4. Problem Solving with Algorithms and Data Structures in Python is a free online book that is good once you have the basics of Python down to learn more about algorithms and data structures.

On August 7th/8th, there will be a Django Girls workshop in Seattle, and I encourage others to join!  It’s intended for those with very little/no programming experience to get their feet wet making a blog with Django and Python.  Check out Django Girls Seattle for more information!  I will be coaching, and I believe they still need more coaches as well.

I’ve also been playing with the Meteor framework for JS.  It solves a lot of the frustrating issues with the MEAN stack and instead slops everything together in a beautiful, seamless package.  It’s lovely.  I’ve seen it compared to Rails for Ruby, but it’s considered more seamless because of all the JavaScript on every side, which I personally love.  I’m not going to lie – I like JavaScript.  Hell, I love JavaScript.  I know that’s not a popular opinion amongst programmers, but it’s one that’s growing!

And finally, for those who are worried about my physical well-being…

Physical therapy is still going for my lovely shoulder, which is always fun, but it’s getting stronger.  I still have my shoulder blade winging all the time, unfortunately, but that’s slowly getting better which is good.  2 months from now and it will have been a year since I was injured and a bit longer since I decided to make the career change.  It’s always interesting thinking about the events that set you on your current path.

Also I started an internship!  I’ll go more into that later,  but it’s very exciting!

Django Girls Seattle and Reading List for Python

Coursera – Fundamentals of Computing from Rice University – A Surprising New Love for MOOCs

Let me start by saying the courses I’m reviewing are currently still open for enrollment, so head over to Fundamentals of Computing path from Rice University on Coursera if you’d like to join, and if you’re on the Eastside of the Seattle Area, come join my study group!

Background Knowledge: Where I was with MOOCs Before This Coursera Course

Prior to recently, any Coursera course I was interested in wasn’t available while I was available for it.  That has all changed.  As anyone who has read my blog before knows…

You know, these guys. The guy with kids. The girl in a chair. The singing enthusiast. The smiler. The scowler. You all know who you are.

I haven’t had a great deal of love for MOOCs and other online learning modules such as Treehouse, Udacity, Udemy, Codecademy, and the likes, because I continuously felt like everything was dumbed down to make it accessible to everyone including people who may not be able to continue grasping the content once they got tougher or had to apply it to any independent project because of all the hand-holding.  That is, they intentionally avoided causing situations where people would think, failed to teach them any actual skills and instead set people up to be great typists, or were structured so bizarrely that the independent work paired with the content was inappropriate either due to providing no challenge and just regurgitating what was just learned or due to not working on content recently learned to help solidify student independence.

So between slow pacing, bad pedagogy, and redundancy, I inevitably said books were the way to go and abandoned everything else.

I’m not taking that back, by the way, I still think books are amazing and so much more efficient than certain MOOCs.  I even continued to find them better than the MIT opencourseware, but that might have been due to a number of MIT’s classes I was interested in required fancy hardware I didn’t have access to, so I had to walk away with my head hung in shame.

The Course: Fundamentals of Computing

I had asked a friend about her recommendations for basic CS books to read up on.  While she has an undergrad degree from University of Waterloo, she’s generally very supportive of my independent-study approach to my career change.  That said, she did think that basic CS such as algorithms, data structures, etc was best handled through a class of some sort and recommended the Fundamentals of Computing path from Rice University on Coursera.

It started about a month after our conversation, so I signed up and continued studying independently in the mean time.  While the certificate pathway and their recommendations is one of the courses at a time, I had enough background with JavaScript that I figured I could compensate for the Principals of Computing class and Algorithm class with googling the differences between what I knew and what I was being asked to do with Python.

Dictionaries, tuples, etc were new, but not so novel I couldn’t read briefly about them and apply them, so so far this hasn’t been an issue.  If you have a fairly solid background in another language, I encourage you to do the same.

Course Structure

I hadn’t very high hopes after my previous encounter with MOOCs, and after the first week being incredibly easy and simple (much like the first week of class in undergrad where you get a syllabus and rules handed to you), I still believed this might be the case.  Then came week two.

I had used the Coursera forums to set up a study group with a couple people in my area, and while working on the project spent some quality time in a Starbucks with my classmates.  I legitimately felt like I was back in college again.  I was thinking about problems that were challenging to me, collaborating with my classmates, and as is my favorite part of programming, celebrating resolving puzzles and testing to make sure it still functions in fringe cases and bug free.

The setup was very typical of MOOCs, but also included some elements often neglected.  All three of the classes have the same basic requirements.

  1. Weekly video lectures, around an hour in total.
  2. Homework (some basic coding questions, math questions, etc)
  3. Mini-projects (make a program!  This week, we made 2048)

The weekly video lectures are well done.  In most MOOCs like Treehouse, these are usually high quality though sometimes redundant.  From MIT’s Open Courseware, they were slow and involved a lot of the professor stumbling in the middle of a lecture hall and not the best sound quality or video quality.  Here, there is minimal wasted time (and any waste is usually entertaining, nerdy jokes), easy to view in double time, and the lectures are concise but give you the necessary information interlaced with Udacity style mini-quizzes.  The professors know what they want to tell you, and they tell you it concisely.

Homework is beneficial but not excessive.  It reviews concepts or has you review math that you likely haven’t done in over a decade if you’re the same age as most MOOC users, and helps you get in the right mindset for the mini-projects.

Mini-projects can be simplistic depending on whether or not you’re trying to program without eating lunch (whoops!), but they’re challenging enough that you feel as though you’d applying your learned skills in a unique problem that you need to solve.  I currently feel like there’s a bit too much hand-holding, but part of machine grading is that you need certain structural elements present in order to assess whether or not it meets the requirements, so to some extent this is unavoidable in some of the classes, especially when trying to accommodate so many mooching students.

And finally…

MOOCs have an important place in the accessibility of education, in my opinion, but a lot of them have a long way to go to being actually beneficial.  Fundamentals of Computing from Rice University is an example of the practice done very well without dumbing everything down.

I have to say I currently love it.  I’m not sure if it’s because the forums are so active with students collaborating or study groups make me happy, but I’m pretty certain it’s because I’m learning a lot and enjoying it.

Joooooin uuuuuuus.

Coursera – Fundamentals of Computing from Rice University – A Surprising New Love for MOOCs