Tech‎ > ‎

Learning Python

posted May 29, 2014, 10:41 AM by Anjuan Simmons   [ updated Jul 12, 2016, 1:42 PM ]
I recently decided to dust off my programming skills and learn a new language. My undergraduate degree in electrical engineering required me to take courses in languages like C, and I've programmed during my career in languages like Perl, PL/SQL, and some proprietary languages. However, after being promoted to management several years ago, my programming responsibilities dwindled. Instead of being a programmer, I had to manage teams of programmers.

Despite not needed to program as a job requirement, I have found that knowing how to code is extremely valuable when working with coders. First, you gain a measure of street cred if programmers know you have walked in their shoes. Second, you can know if a programmer is overestimating or underestimating how long it will take to finish a feature if you have experience implementing similar features. Finally, knowing that I can, if needed, roll up my sleeves and contribute to the code base is immensely empowering.

I didn't think that returning to the languages I knew was the right way to go because several more modern languages have emerged since I last had to seriously program. After doing some research, I narrowed it down to three: PHP, Ruby on Rails,or Python. I chose these three because they were widely used, could solve a variety of different problems, and could quickly get me to my main goal: working code. 

I felt that PHP lacked the structure I wanted in a language, and I was concerned about the numerous security vulnerabilities. Ruby on Rails almost won me over, but I eventually selected Python because of its power and readability. Some may not like its reliance on white space for formatting, but I see this as a feature instead of a flaw.

I'm working through Learn Python the Hard Way by Zed Shaw, and I'm up to Exercise 42. I've enjoyed writing Python code because it is very straightforward. Instead of trying to find clever or elegant ways to accomplish a goal, Python encourages the most reasonable approach. I'm an Occam's Razor kind of solution finder so Python works well for me.