Join Me In My Journey To Learn Python
Jason, my business partner, friend, and server guru challenged me to learn a programming language today. He said, and I quote, “if you’d learn to program we can stop these stupid conversations.” Not one to ever have stupid conversations I opted to take the learning route as I am always an avid learner. So I began to do some research. I had always considered myself a programmer of sorts having a great deal of practice with html, css, etc… until I discovered that those aren’t truly programming languages. I discovered I was merely a coder and not a programmer….arghhhh.
So…I decided that I would begin to learn a new programming language and branch off from there into other programming languages. What I gathered is that my initial decision as to which language to begin with is debatable amongst fans of the various languages; some saying learn, C, C+, C++, Ruby, etc… but I always ended up with Python being most common in my research. So without any debate on which is better, I am going to begin here and if you are interested, I will take you on the journey with me.
Lesson 1: What is Python?
To discover what it was I am getting myself into I had to first visit the python site to familiarize myself with the language.
Here is what I discovered:
[quote]Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.
[/quote]Sounds good, since whatever language I learn has to have to be able to translate that into savings and increased performance for my clients. I want to improve my ability to serve my clients on a daily basis and so whatever it is that I am learning, in essence, my clients have a stake in. Part of my sense of responsibility forces me to do things with the “big picture” in mind. Another thing I discovered from this quote is that I can see almost immediate gains in productivity and lower maintenance costs…I can’t wait to see this! This means a lot to me as a guitar player. Here’s what I mean. When I set out to learn to play the guitar, I had someone tell me that I needed to buy a cheap, throw-away guitar to see if I liked it. So, I bought one at a garage sale. Think I payed a dollar for it back in the 80’s. I brought it home and started to learn the chords. The guitar constantly went out of tune, and sounded like a tin can, so I quickly abandoned it and gave up on guitar lessons. It was not until years later that I decided to take another go at it. I bought a nice guitar, but this time at a pawn shop. I cut my teeth on the new guitar and found that I indeed had a passion to play. Fast forward several moons later. I went to a guitar store and bought an expensive, really nice guitar, and watched my playing level grow exponenetially! So what does this have to do with learning Python? Not much really, but you have to admit it is a cool story! But seriously, if I am going to learn something, I want to make sure that what I am learning will have immediate gains so that I don’t abandon the pursuite like a cheap guitar.
[quote]Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines.[/quote]Okay…I have a Mac. They say that once you go Mac you don’t go back. I like the fact that I don’t have to go in between computers and operating systems to learn something. This is a bonus for me. If you are along for the ride and are using a PC, I will forgive you. LOL. But hey, whatever works for you.
[quote]Python is free to use, even for commercial products, because of its OSI-approved open source license.[/quote]Whether you are a Mac user like me or a PC user, this is a language we can all speak. FREE. I love open source, especially when it comes to learning. Nothing worse than buying a software package and trying to learn on it only to find out that it either doesn’t do what you expected it to do, or there is a better product on the market.
Here is what else I learned:
Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Python is often compared to Tcl, Perl, Ruby, Scheme or Java. Some of its key distinguishing features include:
- very clear, readable syntax
- strong introspection capabilities
- intuitive object orientation
- natural expression of procedural code
- full modularity, supporting hierarchical packages
- exception-based error handling
- very high level dynamic data types
- extensive standard libraries and third party modules for virtually every task
- extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)
- embeddable within applications as a scripting interface
Okay…back to my guitar analogy. I am self-taught when it comes to playing guitar, but I can shred like Dave Mustaine from Megadeth on my best days. I have never taken one class on music unless you count Mr. Broker’s music class in 5th grade where we learned how to smack sticks together and chant “Ta-ta-ti-ti-ta-ti-ti-ti-ti-ta-ta.” (amazing I still remember that fascinating study on music theory. The point is that, like the bullet points above, I had no clue about music theory but discovered that I was already practicing music theory without knowing it. In a similar manner I have probably used some of the bullet points above but just did not know they called them that. Interesting.
Well, enough for today. We will pick up again later.