Learning Python

In my Why Automate? post I discussed how important I feel automation skills will be for engineers in the near future. I even went as far as to say that those who don’t learn to use automation will one day be left behind. Not only do I still stand by that statement, but I’d like to extend it to cover coding as well for the exact same reasons as the ones which were covered in my automation post.

With this in mind, I plan to write a series of posts covering Python. The reason I’ve chosen Python is because it’s great for those who are new to coding, it’s extremely powerful, it has a great community behind it and a countless number of useful modules available.

Getting Started

Once you’ve completed a few online courses and read through some Python books, there are three main ways to continue your learning:

  1. Think of a basic project you’d like to create.
  2. Dissect someone else’s project.
  3. A combination of the above two.

I’ve tried all three options and I now find that my preference, at the time of writing, is Option 2. The reason being that I’ve reached a point where I understand the basics and am now looking to more experienced coders to see what techniques I can learn from them and their code.

If you decide to create your own project, the best advice I can give you is to get the basics working first, then optimise and add additional features later. The reason being that if you spend your time trying to optimise every single line of code while or you try to implement too much functionality in one go, you’ll never finish a project which will therefore stunt your learning.

Stay tuned for my next post where I’ll be dissecting Kirk Byer’s fantastic Netmiko module.

Knowledge Base

See the Python section of my Knowledge Base for more information.

As always, if you have any questions or have a topic that you would like me to discuss, please feel free to post a comment at the bottom of this blog entry, e-mail at will@oznetnerd.com, or drop me a message on Twitter (@OzNetNerd).

Note: This website is my personal blog. The opinions expressed in this blog are my own and not those of my employer.