I learned more about a couple of important aspects of coding today, dictionaries and modules.

A python dictionary is like a list, except it’s formatted more like the popularly known paperback dictionaries, in that it’s for reference.  One creates a dictionary in python to look up a static set of information.  Unlike our paperback versions with only words and definitions, these dictionaries can be set up with whatever organizational system you want.  

Things can be referenced by letter, by number, using colors or maybe even fruits.  It might be fun, while unproductive, to create a dictionary organized on something totally nonsensical someday...

Another interesting thing I ran into during programming today was modules.  Modules are collections of functions that have been pre-written and set aside to help better organize your code.  You can then import various modules at the beginning of your file, so you don’t have to have a bunch of functions listed there mucking things up.

From what I understand modules are all about allowing programmers access to functions that do general things.  It’s like having access to tons of books that solve problems for you, and provide you with the details if you want it.  The one drawback from this is that there are simply tons of modules out there.  Knowing if one already exists, let alone being able to correctly debug it if you’ve never interacted with it before could prove difficult.  

Many modules have the code provided so you know exactly what it’s supposed to be doing.  A common malady, it seems, is when modules are provided without any of the underlying code being accessible.  That way, if you have a problem in your code, but it’s part of that undocumented function, it makes it incredibly difficult to debug.  Your error is occurring within, but you have no idea how or where. Luckily I'm not really interacting with undocumented modules at this time. But I'm sure it will happen soon...*cue erie suspense violin*