Skip navigation

Again I keep running into annoying issues with poorly worded problems or answers.

First, the simple one.

I gave up on trying to finish that last ‘practice exercise’ because it was involving some ‘quadratic equations‘.  Those words scare me.  Big equations freak me out because they are so far beyond my level of mathematical comprehension that I simply cannot fathom.  More on that in a bit.  The simple problem is that when things are not consistent, it’s a little weird.  Our project gives us some decent outlines on how to do things without obviously giving us the direct answer.  The first outline says to “Build a helper function name_to_number(name)”  Ok, that’s easy enough for me to understand and figure out.  The second in the list says Next, you should build a second helper function number_to_name(num).  This too is easy to figure out.  For each of our exercises and this project, we are given an outline that gives us even more guidance. (This is a really good idea to help beginners speed along in their process of learning a new language).  The inconsistency happened when the project template has both of those functions outlined in reverse order.  While theoretically this does not affect the outcome of the program I learned, it is still one more thing I have to question because it doe snot seem logical to have code ‘out of order’, regardless of if it affects it or not.

Second, insufficient definitions.

There are a ton of websites that will give you a definition of a piece of code and what it does.  One would expect that official code documents to give thorough, if maybe overly techie in nature.  Well, how wrong this can be.  Allow me to introduce to the random.randrange(start,stop) function.  You might be able to guess that it creates a random number for a given range, and you would be correct.  You might even guess that the ‘start’ is the first number and the ‘stop’ would be the last number.  And you would fail.  Apparently the ‘stop’ means ‘stop before this number’, or at least that was what I was told.  Me, I think it means ‘count this many numbers and then stop.’, which seems much more logical…if you are starting at 0.  Maybe not so much if your range is starting at a higher number.  So let’s see what the Official Documentation says shall we?

random.randrange(start, stop[, step])
Return a randomly selected element from range(start, stop, step). This is equivalent to choice(range(start, stop, step)), but doesn’t actually build a range object.

I left out step because I wasn’t using it for my program.  Regardless, this really doesn’t mean anything because it doesn’t really define the code, at best it references an older(?)/different way of doing the same thing.  OK, I’ll bite and look up THAT code then.

Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.

Ok, this still doesn’t explain what the code means, let alone how to use it.

I would like to also keep in mind that this course is aimed at beginners. o_O

It really is annoying when you have to Google everything.  It’s like people are simply getting lazy.  Well guess what, if I have to Google for most of my solutions, don’t bitch if what I find and USE is not all my own code.  I’ll do my best to follow the honour code they put on each page that you have to check-mark before each submission, but until you have a proper course that gives the students all the resources they need, everything is fair game.

There is more but I won’t bother.

Now, this may sound like the worst course in the world but it really isn’t.  I happen to be only focusing on the challenges I have run into.  I didn’t mention how much I have learned BECAUSE of these challenges.  There are 9 practice exercises, of which only 3 gave me headaches like what I have outlined above.  The rest I was able to  figure out and move on to the next one fairly quickly.  Heck, last week I even wrote a little program to help me figure out some things in this goofy little game I am playing on my Galaxy Tab.  Sure it was not much more than a coded spreadsheet but it was my first real stand alone program that I may expand upon to give it more functions as I learn more.

For those that play Galaxy Empire on their Android (or iOS) device, here’s what I got so far.  The rest of you can stop reading…unless you like looking at a whack of lines of code 🙂



  1. I think it’s great that you’ve taken it upon yourself to learn to program. Keep at it! You’re just getting in on a field that is becoming accessible to a lot more people. Choosing a first language to learn is not as important as sticking with it. No programmer works in one language; everyone is multilingual. Eventually you’ll understand contexts and layers; after that you’ll always be hungry.

    • Heh…already hungry…now just impatient 😉 And yeah, researching where to start takes some time but seeing how Python is much more ‘English friendly’, it seems a good place to start. Less things to have abstractly memorize to start with. It should be fun 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: