I have been programming since I got my first Commodore VIC20 back in about 1984. Back then I would buy a Compute magazine and type in the programs, mostly games. Then debug or modify the code to see what would happen. Of course these were simple computer games. This is how I initially learned to program.
I moved onto computer programming classes in high school. We would code our lessons on Apple II, in Basic and some Pascal. Thank you Mr. Springer and Mrs. Paletta for providing excellent guidance. After that point I enlisted in the US Air Force and tried to get into their Computer Programming career field. Unfortunately I did not score high-enough on their Electronic Data Processing Test (EDPT) to get in, so I settled for Computer Operations. During my first year of duty I took some classes on Intro to Computers, or something like that, but it was my first introduction to the IBM PC and DOS. No real programming, some BasicA, but I did learn a lot of DOS.
It was many years before I returned to programming, which was on Visual Basic 3.0 and some VBA. Since that time period I have done mostly VB, scripting and C#. I did a little C, C++ and PowerShell. I have never been a strong programmer, mostly just badly written utilities to make my work easier. I just did not have the passion for it, or maybe the time to dabble in it. Not until recently.
About two years ago, for one of my MS classes we were given extra credit for taking an basic Python class at Code Academy. This was a great introduction and a bit challenging. I put this on the back burner to learn later, like many things, until recently.
In January, I decided that I need to embrace Python a bit more. This is mostly because I needed to embrace my goal in Cyber Security a bit more. I know that Python was a big part of Cyber Security, but didn't realize how big a part it is of many other solutions, from day-to-day desktop programs to web applications. I decided that I need a good book, I spent a lot of time searching and reading reviews on Amazon and finally settled on Python Crash Course by Eric Matthes.
This book restored my passion for coding. Not only was it a great book on syntax, for the first time it broke through my mental barrier on how to code better. I now wanted to not only write more stuff, but I wanted to write it to be more efficient and readable. Part of that is in how Eric wrote this book and how he explained the concepts. Part of it is how the Python is embraced in its design and in its community.
Just implementing the command "import this" at the Python command prompt give you the Zen of Python or PEP 20. These are simple guiding principles for writing Python code, or any code in any language. You follow that up with PEP 8, which is the Style Guide for Python, you get a remarkable way of coding. These are some elements that I have used in the past with other languages, but now will embrace more.
Because of how I like to learn things, I needed a motivation to learn it. Here is where my girlfriend comes in. She needed an application written to assist her with a project. What better way to hammer a lot of Python into my brain, just write this application in Python. So I began this journey, it was painful, but for the most part successful. I had to throw out some old programming habit and embrace the new. Python dictionaries and lists were my bane. I just could not grasp the use of them, the why and the how. Now I am very fond of them and I have used them a lot to save many lines of code.
I am happy to have a passion for coding again, I forgot how much I love automating and making things easier. I doubt I will be doing large applications with Python, not because of the language, because I don't plan on doing any large applications. But my mind is a fury of ideas for scripts and utilities I can write to embrace my Cyber Security career.
I have a few others to thank bring me back this passion. First of all, my girlfriend, for forcing me to painfully reach deep into ideas and solutions to write that application for her. What a pain-in-the-ass, but worth it. I also want to thank the guys at Python Bytes for pointing me to other great resources.