Learning Python – A guide to video tutorials (for beginners)
In my previous post I mentioned my pivot to security and learning about automation. The first step in that process is to learn python. I have some limited experience with hacking together scripts to do basic stuff. Reading static Cisco router configs and outputting to a comma-separated values (CSV) file.
My educational background is in Computer Science. Programming isn't off my radar but it is also NOT a core competency of mine either. I would rate my level of understanding with Python at beginner level before starting the courses below.
Learning Python series on Safari books online:
Beginning Python (Video)
Authored by: William Fiset
This course is for beginners and it does a great job of introducing the core concepts. Such as built-in functions and data types. Every section includes a video demonstration. The source files are available via Packt Publishing.
Each section is short consisting of 3-5 lessons per section. And each video is usually less than 10 minutes. The time isn't enough to cover everything in detail but the author does provide links to additional documentation. These provide other ways to practice of challenge yourself on that topic.
The final thing I would say is that the course author says it doesn't touch on object-oriented or functional programming. That is fine if you only plan very basic scripts but classes are important and will improve your code.
Highly recommend it as a refresher. Rate it 4 of 5.
Mastering Python Second Edition (Video)
Authored by: Dan Arbuckle, Narrated by someone else.
The course from on safari books online is the first edition of this course. I chose to use the second edition. The primary differences are a few extras in the second edition. Mastering Python brings a deeper level of understanding to Python. Mastering Python will help you build complex programs with packages, modules, and classes.
- git mispronounced as jit.
- Most examples are for Linux and need some changes to work on windows. Most changes for windows are NOT documented in the series. Use Linux if you want all examples to work.
- The more complex examples have no build up. The assumption is that you are using the source scripts. Not building them as you go.
This course is a PASS for beginners. Rate it 1 of 5.
Learning Python (Video)
Authored by: Mohit Raj, Bhaskar Das - Narrated by: Gwen Watson.
I found this course to be more enjoyable after Mastering Python. I skipped straight to chapter 8. I particularly liked Chapters 8, 10, and 11 (Modules and Packages, Collections, Class, and Objects). These were NOT covered or not covered well in previous material.
I did not rate this as I didn't view the majority of the course but I did think this was a practical straightforward approach.
Python from Scratch LiveLessions (Video)
Authored / Narrated by: Brian Ray
Brian uses an interesting approach by using a cookbook/recipe method. Some users will like this approach. I like the way that he uses this concept throughout to tie the python data structures and functions together.
He also uses jupyter notebook as the IDE. I prefer Atom but what you use is personal preference. This could be useful for a beginner.
At first I didn't like this course because it is NOT procedural in hitting each topic. It grew on me though. What I like was rather than say there is a data type or a built-in function. He is showing the application of a data type, function, or class beyond a basic case. He is also a wizard with strings.
Highly recommend it as a next step after learning basic syntax. Rate it 4 of 5.
Where am I now in regards to Python programming? I'm still a beginner. You can see the evolution of my knowledge from novice beginner to an intermediate beginner. Check out my github for my progress. I am creating some simple games to test myself.
Two things I found helpful were using an integrated development environment (IDE) and version control. An IDE should help you with syntax and auto-completion. I am currently using Atom. Prior I was using vi on Ubuntu. Using git will provide version control. Version control allows you to iterate or improve your code. Each time you do you can store those changes. If you use a remote repository you've also backed up your code.
Another thing I learned about while doing this is the DRY principle which stands for "Don't repeat yourself". Meaning if you create a function once re-use it rather than re-create.
My biggest concern at this point is that I "Don't know what I don't know". There are several sources I plan to follow up reading. See the reference documents below. These should help me create better (more readable) scripts that can follow the DRY principle. Also, the forensics and network tie into my pivot to security.
- Learning Python - Fabrizio Romano
- Effective Python: 59 Specific Ways to Write Better Python - Brett Slatkin
- Learning Python for Forensics - Chapin Bryce, Preston Miller
- Learning Python Network Programming - Sam Washington, Dr. M. O. Faruque Sarker
- Python Beyond The Basics - Object-Oriented Programming - David Blaikie
- Python 3 Object-oriented Programming - Second Edition - Dusty Phillips