Python for Everybody at Coursera with Dr. Chuck

tl;dr: I’m spending the time to learn Python primarily using the free course available at Coursera taught by Dr. Charles Severance of the University of Michigan and am really enjoying it.

The good news: I’ve committed to my goal of learning Python and I’m sticking to it.

The bad news: I haven’t been writing about my progress as much as I should be. Hey, learning this stuff is hard and takes time. That’s my excuse and I’m sticking to it.

As I mentioned in my last post, I re-enrolled in the Coursera course, Learn to Program and Analyze Data with Python, from the University of Michigan taught by Dr. Charles Severance. It includes five courses, with each one lasting about six weeks, with the last course being a capstone project. You can audit the course for free or pay for an official certificate and I’m auditing the course.

I flew through the first course and am now 60% of the way through the second course, Python Data Structures. In the first course you learn the basics of computer science and Python – print statements, expressions and variables, loops and functions.

In the second course, Python Data Structures, you continue to build on that, learning how to slice slice strings, searching within strings, and working with files. This is where it is finally coming together and you’re writing a real program for homework assignments.

I am enjoying Learn to Program and Analyze Data with Python on Coursera. I find the professor’s video lectures easy to follow and understand. The conversational tone is helpful and I appreciate how he talks about a concept and also shows slides in the video that he draws on to help illustrate his point. I believe this helps those who learn by listening and those who learn visually.

Here is an example of the second course’s syllabus for week three that I just completed. As you start the week, you easily get an overview of the week ahead:

  • The lecture videos you will need to watch and how long they are
  • A wiki page of notes related to the lecture created by students
  • The assignments you will need to complete
  • A video showing the worked exercises to watch after the assignment is completed
  • Bonus (optional) material for the week

There are two downsides to the course. The first is that it is being taught in Python 2.7. One of the best parts, though, is that Dr. Severance has made the course and the book available in a Creative Commons license, which is awesome. You don’t necessarily need to do it on Coursera as the course materials are available on his website at Python Learn with the videos also available on YouTube. If you visit the site, you’ll see the book has been rewritten for Python 3 and the materials are now being updated and I’m hopeful that the course on Coursera will be updated in time as well.

The second downside is more of a personal thing. The course has a neat autograder online:

As you can see in the screenshot in the upper left, it tells you what to do to complete the assignment. Just below that is the editor that gives you some code to start. You edit the code and press “Check Code” and the output is displayed in the upper right box. If the output matches the assignment, the grade is automatically updated on the server.

I learned in this week’s assignment that I need to write my code in an editor and save it rather than just doing it in the browser. I had to go back and re-watch the worked exercises for the previous chapter to review the code from the last homework assignment as this week’s homework built upon it. I won’t make that mistake again! Also, if you are really stuck with a homework assignment, there is a discussion forum where you can ask questions and get hints to what to focus on to complete the assignment.

As I’ve worked through a couple of the books I’ve bought and proceed through this course, putting the concepts into practice is the hardest part. While I understand the concepts, or at least think I do, putting it into practice and writing a real program is where I struggle. As frustrating as it can be to go back, re-read a chapter or re-watch a video when I can’t write the code, I firmly believe I am going to learn best by practicing writing actual code over and over again if I ever want to meet my goal of writing the program to calculate the fantasy pool scores. I am finally making the time commitment to learn Python and enjoying the process thanks to Dr. Chuck and Coursera. (You can follow Dr. Chuck on Twitter at @drchuck).

How time flies (or why I still haven’t learned Python)

A constant staple of this blog’s life over the last 10-plus years have been the constant breaks and then the “I haven’t blogged in forever!” blog posts. And here we are again.

After starting my journey to learn to program, I went a couple of months and then we sold the house and moved. That really did occupy a large chunk of time, but then all the usual excuses set in. I’ve been telling myself the last couple of months I would start and never do.  Now we are just six weeks away from the football season and if I don’t learn Python, I can never build the application I want to automate the scoring of my football pool.

Nothing like the NFL season starting to get you motivated. I’ve re-enrolled in Programming for Everybody (Getting Started with Python) at Coursera and have decided to use Python 3.x over Python 2.x. I’m also going to work my way through Think Python (2nd Edition) by Allen B. Downey, which also focuses on Python 3. I have a few ideas for what I’ll do next, but I need to do it one step at a time.

I’ve also been doing more research on how I’m going to pull the NFL stats in, but more on that later. I’m just happy to be motivated again!

Prince Rogers Nelson 1958 – 2016

Prince

Prince has always held a special place for me. I spent my summers growing up with grandparents, an hour north of the suburbs of Milwaukee, where I lived. In 1984 I was 11 and I still remember walking to the record shop to purchase my first record, Prince’s Purple Rain. Years later, I would joke that if my grandparents or parents knew of some of the lyrics on that album, I would never have been able to buy it.

Darling Nikki

I knew a girl named Nikki
I guess you could say she was a sex fiend
I met her in a hotel lobby
Masturbating with a magazine
She said how’d you like to waste some time
And I could not resist when I saw little Nikki grind

Growing up in the golden age of MTV, my fandom would continue. Raspberry Beret continues to be one of my top ten songs of Prince. U Got the Look, his collaboration with Sheena Easton, will always be emblazoned in my mind from the video. In 1989, when the first Batman movie was released starring Michael Keaton, Prince’s Batdance was a sensation. There was nothing like it on pop radio. Diamonds and Pearls was released in October 1991, a month after I met my girlfriend and later wife. The Love Symbol album was released just a year later in October 1992 and both of these albums would feature singles that I would sprinkle through the mixtapes I made Kelly over this period.

I moved from Milwaukee to Madison in late 1992. I worked as a supervisor in a Best Buy store and Barb, a customer service rep, worked for me. If I had to guess, she was in her early 40s and worked Monday through Friday from 9-2. She knew I was a Prince fan and one day, out of the blue, she asked me if I wanted to join her and her husband on a trip up to Minneapolis. It turns out her son, Jamie, was a choreographer working for Prince’s new protege. Jamie didn’t have any formal dance training. Every day growing up, he would come home after school, turn on MTV and learn the dance moves to all the videos playing on MTV. Jamie would later go on to become one of the five touring dancers on Michael Jackson’s Bad tour.

I joined Barb and her husband on the trip to Minneapolis, my first time there. It was about a four to five hour drive. A local radio station was hosting there annual party called the Star Party. We had a VIP table close to the front where it was Jamie, Barb and her husband, and…. Carmen Electra. (I bet you didn’t remember that Carmen Electra started as a protege of Prince, did you?)

The Star Party was at Glam Slam, the club owned by Prince in downtown Minneapolis. Carmen Electra was slated to go on second to last and we sat at the table watching the other acts performed. Shortly before Carmen Electra was to go on stage, two huge bodyguards approached our table:

He is going to come to the table in a few minutes. You don’t look at him, you don’t talk to him. Understand?

And then he was there. You knew Prince was short but he was even smaller in person. He ignored all of us and whispered in Carmen Electra’s ear. She giggled, clearly enjoying the attention. And just like that, he was gone. A few minutes later Carmen would go backstage to get ready for her performance, of which I remember very little as it was forgettable. After the show, she came back, signed a record for me in lipstick, and kissed it. For years, as I moved apartment to apartment, cross country and back, I kept that sealed and signed record. At some point, I got rid of it. I kick myself on two fronts for that: first, the novelty; second, I would buy a turntable in 2008, and would have been able to actually listen to it.

After the show, we drove out to Chanhassen to drive by Paisley Park, before driving back to Madison. I only remember that I was very tired and it was a half hour drive to his studio through corn fields out in the suburbs. Who knew that in 1999 I would buy my first house just ten minutes from Paisley Park, where I still live to this day.

A few years later when watching the Oscars telecast, I noticed in the credits:

Choreographed by Jamie King

Hey, I met him!

A year or two later I would move to Minneapolis with my future wife. I was still working at Best Buy, and now so was she, in stores about ten minutes apart. There was a security guard who worked at both of our stores who also moonlighted as security at Paisley Park, where Prince would throw impromptu concerts from time to time. This security guard had a crush on Kelly and even asked her out. I didn’t hold this against him as he got me on the list for Paisley Park a few times.

Seeing Prince perform at Paisley Park is like nothing you’ve ever seen. He would rarely play any of his hits. Most times it was things stored in the vault or it was a one hour jam session with his band playing whatever he wanted. Whatever it was, it was magical and special and I’m so glad to have been one of the hundreds in attendance at those shows.

I would only be in Minneapolis for a year or two before moving for another promotion at Best Buy. Two albums would get me through the cross country drive. One was The Hits, a three album best of and a disc of B-sides, released in 1993. The other was ABBA’s Thank You for the Music, their four disc best of collection. (Don’t judge me).

In 1996 I was now a district operations manager for Best Buy in Philadelphia. The Gold Experience, released in September of ’95, was my constant companion in the car as I drove from store to store.

We would move back to Minneapolis in 1997 and in 1999 we bought our first house in Chaska, just ten minutes and one suburb over from Paisley Park, which we still drive by all the time.

In 2008, I would buy my first turntable. Searching through all of the record stores in Minneapolis, I was always on the lookout for Prince albums. Being in Minneapolis, Prince albums, with the exception of Purple Rain, were usually difficult to find and overpriced. But I would buy every one I could get my hands on.

Prince Vinyl

After years away in Las Vegas and Los Angeles, Prince returned to Minneapolis in a big way the last few years. He would throw more parties and concerts at Paisley Park. There was little notice given – usually a week to just a couple of days and you had to follow social media to find out. I would tell a co-worker who lived in Silicon Valley that he had to come out, as he really wanted to go to one of those shows. But buying a plane ticket on short notice? Ouch. You never knew if Prince was actually going to take the stage or not, and if he did, what time he would. Some of those first shows when he was back, doors would at 10 p.m. and he wouldn’t appear until 3, 4 or 5 a.m. I kept telling myself I would go back and never did.

Now I never will.

I drove out to Paisley Park mid-day yesterday after the announcement of Prince’s death. There were already hundreds gathered, grieving. The tributes along the Paisley Park fence were touching.

After the news broke, I was trying to explain to my oldest son what Prince met to me, and I broke down. 89.3 The Current played Prince non-stop starting in chronological order at 1 p.m. yesterday, and at 4 p.m. when Purple Rain hit the airwaves shortly after I got home from Paisley Park, I choked up again. Just writing this, tears come to my eye. Only one other artist’s death, Freddie Mercury in 1991, touched me in the way this has.

I’m so glad to call Minneapolis home. The impromptu concert last night on the streets of Minneapolis, as the city closed off blocks downtown surrounding the legendary First Avenue nightclub where Purple Rain was filmed, was awe inspiring as thousands filled the streets. First Avenue opened a dance party at 11 p.m., which was packed all night with people still waiting to get in at 3 a.m.

Prince called Minneapolis home, but he belonged to all of us, all over the world.

Photo: Prince by Peter Tea under a Creative Commons BY-ND 2.0 license.

Rebooting my productivity without technology

moleskin

Early last year I ran to Target on a Sunday morning on the spur of the moment. I wanted a Moleskin notebook, the small one that fits in your back pocket.

I wanted to get in a habit of writing down everything, especially ideas for writing prompts.

That lasted about a week for me. This is typical for me, especially when I try to create a new habit impulsively.

For the last couple of years, I’ve also been a huge fan of Wunderlist as a to-do application. It has great app support, working on the web, Mac, Android and iOS with instant sync. I had a number of lists and sub-lists within those and would capture all of the to-do items for each category.

It even worked great when we were selling the house late last year. My wife installed the apps and we shared a to-do list by room for everything that had to get done in order to sell the house. This was a big deal as she is a big fan of writing everything down and gets great pleasure in physically crossing off each action item.

The challenge I have is that I use Wunderlist in fits and spurts. I don’t capture everything I want to do as it happens. When I’m on top of my game, I’ll do two things. At the beginning of each week, I’ll first review all of my lists and the action items in them. I’ll update and check off anything that is done and I’ll add everything I want to get done. Each morning after that, I’ll sit down and review the lists, making sure to add anything I want to get done that day. The challenge I had is there were some days where I’d have the Mac app open and check things off as I would get things done. But I lacked discipline and wouldn’t do it every day and then weeks would go by and I’d have to start over. The bigger challenge for me was that I wasn’t adding things to my to-do list during the day. I was using it as a tool to get things done that I had already planned.

I’ve always been a big fan of Getting Things Done by David Allen. I read the book years ago and I took away three things:

  1. As soon as the idea hits you, write it down. Keep your mind uncluttered.
  2. If it takes less than five minutes, write it down and then just do it.
  3. Create a tickler file aka a long term file for things you want to get done in the someday pile. But write it down and get it out of your head.

That’s why Wunderlist wasn’t working for me – I wasn’t reaching for the Mac app or my phone the moment something hit me that I needed or wanted to do. I don’t always have my phone on me. I don’t take it to meetings when I’m in the office and if I’m at my home office, I’ll leave it there when I go to the kitchen or if I go for a walk. If I think of something at a particular moment, I’m not writing it down right then and there.

So now I’m going old school. I grabbed the small Moleskin notebook I had abandoned and over the last couple of weeks, I’m filling it as fast I think of something that I want to do or needs to be done.

I have also added two tabs to my notebook. The first 70% of the notebook will be dedicated to my to-do list (and crossing them off!). I then have a tab for “Big Projects”, things that aren’t going to be done on a specific day. It needs to be more than a “someday” list, but I haven’t figured it out yet. Then there is a third tab, a “notes” tab. This tab is for anything I want to capture – ideas that I might want to write about; story ideas; or just random thoughts. Anything goes.

I think my wife might be on to something – the mental pleasure you get by crossing something off. Wunderlist makes a nice little ding when you check something as done and then archives it, making it disappear. Having the ability to see a page of things that have been done and crossed off makes you feel more productive. (Though there is an advanced feature in Wunderlist to make them not disappear, it would quickly be cluttered).

Like any productivity tip or tool, it’s about what works for you – and then sticking with it. I’m finding that not using technology for the first time in a long time is making me even more productive.

Python Jumpstart Kickstarter

My plan to learn Python was temporarily derailed by buying a new house, selling the old one, and moving.  Fear not, we’re moved in, broadband was finally installed two days ago, and I’ll be back on plan next week.

In my quest to learn Python, I came across the Talk Python to Me podcast.  I’ve listened to a handful of episodes and enjoyed them, even if most of them are over my head at this point.

Michael Kennedy, the host of the show, launched a Kickstarter this week:  Python Jumpstart by building 10 apps.  This looks absolutely perfect for me as I’ve started learning Python from a couple of online courses and books and struggled in linear learning without context.  From the Kickstarter page:

Most courses focus on teaching you hundreds of details and leave putting them together as an exercise for the student. My course is different.

You will learn all the basics, yes. But you will learn them while building 10 stand alone applications. You will see each application built from the ground up in live demos. When we hit new topics (functions for example), we will pause, discuss them, and return to our application we are building.

This sounds like it may fix or address where I’ve struggled in trying to learn from books.  While the Kickstarter does say it is for people who have some programming / scripting experience, I’m hoping by the time the course if available I’ll have a basic enough understanding of Python that this will jumpstart my Python knowledge.  (Pun intended).

I’m happy to see that after just a few days, its reached a couple of stretch goals.  I’ve pledged at the Early Access Student access.  Check it out!