Lesson 17

Ok! I started this lesson a few weeks ago. Each week I work on programming for just a few hours at PyLadies PDX and go about my business the rest of the week, sometimes coming back to whatever I’m working on during the week, but typically I have enough that keeps me occupied and away from programming Sunday through Friday.

This lesson has been difficult to get through all of the Study Drills of, as I’m having a hard time reducing the code by much, other than just taking out the print statements. I don’t see the need to count the length of the .txt file or to run the EXISTS function, but I also don’t see a need to omit them. He leaves a hint in the Common Student Questions that you ; can ; make ; a ; statement ; one ; line if you want to, but… I have never used semicolons in Python, just C++ (via a few chapters of Michael Dawson’s wonderful book), and I fail to see the good of obfuscating one’s code for sake of just making it one line, as Mr Shaw suggests he can do, I suppose, by separating the lines with a semicolon rather than a return, if that is even possible.

I am also still getting the hang of ARGV, the function that permits me to insert files into the program from the command line. It is not too complicated, it is just not something that I have seen before, and flub it up still on occasion. All the same I see its usefulness and look forward to being able to use it more effectively.

So I shall move on!


Learn Python the Hard Way, Lessons 1-16

Being nominally familiar with Python, these first lessons went by in a breeze. The biggest hiccup (if you can call it that) was going through the Command Line Crash Course, also written by Zed Shaw (the gent who wrote LPTHW). It was enormously helpful but took me approximately a week to get to the level of knowledge that I wanted. I did not finish it as I was very impatient to get back to lovey-woo-woo python, but my facility with the command line is prrrrobably as good as I’ll need it for the time being.

Several lessons went by per sitting, working things out with very satisfactory comprehension, until I got to Lesson 13! Lessons 13, 14, 15, and 16 have all begun to tax me much more than previous lessons, which is to be expected.

It’s odd, I can do all kinds of looping & sub-looping and data structures (with some effort) in Python 3.3, but in 2.7 my knowledge is developing completely laterally to that kind of capability. What that really means, at least to me, is that I am actually gaining new knowledge rather than just learning the formatting for while loops with 2.7’s idiosyncrasies and moving on. It is great.

One complaint that I have heard regarding Mr Shaw’s tone is that he is a bit short and a bit arrogant in that way that programmers are known to be. If this description is too vague for you, then you fortunately have not been over-exposed to this kind of attitude. I am a bit refreshed by his tone, however, because I find that he is right, and learning from someone with that kind of confidence in what he or she is teaching is totally instrumental in my absorption of the material, personally. Besides, I like a little sass, and I like a little old-school-style coding education.

Ok! Enough prelude! At this time, I’m at lesson 17, so let’s move on to that! “Next entry, please!” is what I know you are saying!

Code, Coding, Coder

When I was a precocious ten year old, my Dad sat me down with our 486 and showed me the essentials of BASIC, via the inimitable QBASIC, and I wrote HELLO WORLDs and flashing text and extreeemely basic calculators, and I downloaded free games on AOL that were coded in BASIC*.  Later on, I immersed myself in MUDs, or Multi-User Dungeons, the precursor to today’s MMOs, and adored the command line interface, the macros, and that I could play a huge, immersive game with just the keyboard and never have to fiddle with the mouse (with which I have always battled).

Then, despite all predictions, I dropped it!  I tried to take an intro to javascript class in the early 2000s, but something didn’t click (or I was far, far too lazy – take your pick) and it got dropped again.  Over the years, with the advent of the Electronic Frontier Foundation, open-source, linux, and actual, real-life women being represented in tech for the first time, yknow, ever, I’ve gotten excited about structure-level geekery all over again.

For my math qualifications, I was required to take an intro to computer science class, which was taught through Python.  Brilliant!  I excelled at the projects and homework, made friends of the phenomenal and warm instructors, and got my feet wet in Python 3.3.

I continued working on various side projects with 3.3, that is to say, I had no main project at any given point, until I went to OSCON, or the Open Source Convention here in Portland, at its 15-year anniversary convention.  The strength of the movement is greater than ever, and I want to be a part of it.  So I went home, dual-booted Ubuntu, and started Learn Python the Hard Way**.  I nearly named this blog “rachellearnspythonthehardway” or “rachelslpthw” but would eventually like to make this a much broader blog, outlining many of my coding adventures.  I’d like to go through Learn You A Haskell For Great Good! as well, and as a hopeful future math educator, I’ll also be discussing the ways in which I incorporate programming into the high school (or middle school, as employment will have it) classroom.

So let’s begin!

*If anyone knows the guy who made the game Elysian Fields (it’s not the one based on Halo, and it’s not the one made and sold [the one in question was a freeware, hobbyist-made game] in 1984) as well as lots of other BASIC games that he released on AOL in the mid-90s, oh god please contact me.  I’ve stumped Google.  Those games were fantastic.

**I was running python 3.3 on windows and rather than figure out the way to run two versions of python, I installed linux as well so I could re-learn that and not have to fiddle with several versions of python, as Learn Python the Hard Way only teaches in 2.7, for very good reasons that its author, Zed Shaw, has outlined here, toward the bottom.