Python is perhaps one of the most popular programming languages among the young, hip, and cool developers on the internet. It has a syntax that is easy to get started with and a bunch of wonderful libraries that can help with many computer-related tasks ranging from simple scripting to production-ready games and applications.
In this article, I will tell how I went from a Python novice to an advanced practitioner in 6 months during the late spring, summer, and early autumn months of 2023.
Despite having in total more than 4 years of experience in programming, I never felt that I truly mastered and had learned the true basics and foundational knowledge surrounding programming. The main reason for this came from the fact that I was completely self-thought and therefore learned based on what I needed to know on the job. If the problem never presented itself, I never spent time learning about it.
Why Pyton? Why now?
My initial motivation came from participating in the "Network and Information Security" program at Noroff Vocational College, where I studied part-time. This program had a programming class based on Python. Because the program had a summer vacation in the middle of the programming class, it spanned 6 months.
As I stated in the introduction, Python seemed to be a very popular programming language. This made me intrigued to learn more about it and why it was popular. This made me motivated to get good at a programming language that I did not use every day at work or at home.
I wanted to really get my hands dirty, and use Noroff's class as an opportunity to master some of the more basic and complex parts of programming. In addition, I thought it would be a nice opportunity to add some more variety to my GitHub portfolio. This was my chance to backtrack a bit, and become the programming master I always dreamed of becoming!
In addition to my own ambition, one of my kids was aspiring to become a programmer. This made me even more motivated to learn Python programming since it would help me become a better teacher.
After spending time on TryHackMe, where I learned a lot of cyber security basics, I wanted to spend time on a similar platform honing my Python and general programming skills. After some time researching, I found that the structure of the challenges and the GUI of hackerrank.com was the platform that seemed to fit my needs best.
I wanted a platform where I was motivated to keep on learning in order to gain a rank compared to other learners. This competitive drive is important to me, and I thought it could prove valuable if I ever got into a situation where I needed to "prove" my skills, in addition to my GitHub account. Plus, I wanted a GUI with a proper dark mode for my sore night-dweller vampire eyes. 😎
Rank: 102 713
Rank: 12 417
Rank: 242 138
HackerRank proved to be much more and better than I ever could have imagined. The challenges were at just the right spot where I was challenged on both my Python syntax skills, but also my problem-solving skills.
During later classes at Noroff, I continued working on related problem categories.
Creating programs to solve real-life problems is always fun and will provide amazing learning opportunities. I wanted to learn how to create a GUI application that could be shipped as executables for Windows and Linux.
The first app I created was MathHaxor. A simple GUI program where the user can create PDFs with math problems designed for kids in the age range of 8 to 12 years. The program is open-source and available for free on the project's GitHub page. I use this daily to generate simple math problems for my kids.
The second program I created was Joy2Mouse. This program converts joystick inputs into mouse movement on the computer. Unlike normal applications designed to solve this problem, Joy2mouse is a tool for absolute aim. The mouse will follow the exact position of the mouse. This was designed to solve my own need to have a proper mouse-aim using a joystick in MechWarrior5 for PC. This mod made me enjoy the game a lot more because it mimicked the way Steel Battalion for the original Xbox was controlled. Although crude and simple, the program was noticed by some mech enthusiasts on the web.
Joy 2 Mouse
Joy 2 Mouse was designed specifically to work with MechWarrior 5, but it can be used for any other application where you want to precisely control mouse input with a joystick. Read about it in this article
Books are great for spending focused time studying subjects. When doing my deep dive into Python and programming as a whole, I read a couple of books to deepen and broaden my understanding.
Beginning Programming with Python For Dummies
John Paul Mueller - 408 sider
An introduction to Python programming, where the reader learns basic functional and object-oriented programming using Python. This book focused only on writing shell scripts.
"This book was structured just like all other "For Dummies" books I have read, but I'm not sure how beginner-friendly it actually was"
I read this book a rainy week, and it made me feel confident enough about the syntax to enable me to write my own basic scripts.
The chapter about exception handling was particularly interesting to me. In this chapter, I learned a lot I later adapted when writing programs in other languages.
24. July 2021
Python in easy steps
Mike McGrath - 192 sider
A short, sweet and colorful introduction book to the Python3 programming language.
"I really loved how easy the book was to read, and how it explained everything in a way that was easy to digest..."
This was a fantastic book, that similarly to books in the "for dummies" series, helps the reader to quickly get up to speed.
I really loved how easy the book was to read, and how it explained everything in a way that was easy to digest without using unnecessary jargon and without any assumptions about previous knowledge. The examples were on point and told a lot without using a lot of words.
This is perhaps the best introductory programming book I have ever read!
26. August 2023
The art of clean code
Christian Mayer - 176 sider
Learn eight principles to simplify your code and become a more effective (and successful) programmer.
"This was a fantastic and straightforward book written in a typical self-help book but for programmers trying to become better at their craft."
I don't think the book taught me anything new, but it was a nice mental reset for how I approach programming challenges, structure my day, and structure my code. It represented the Zen of Python (PEP 20) in many ways.
This was a fantastic and straightforward book written in a typical self-help book but for programmers trying to become better at their craft. I truly enjoyed this book on a small vacation trip, where I read it while traveling. It was very easy and entertaining to read. It might seam strange, but this was a tech page-turner!
This is a book I would encourage intermediate programmers and programmers who have some experience but want to take a step back and rebuild a stronger foundation.
19. May 2023
Since the Noroff course I was following was very basic, I decided to brush up and fill in the gaps by following a couple of extracurricular courses. I especially fell in love with the learning material provided by the OpenEDG Python Institute Certifications.
- FJ Botha, Bertram Haskins, Philip Blunt - 496t, 0m
An introduction course to programming with Python. It took us from complete beginners to building fully functional tools that run in the terminal.
"This period in my studies was a blast, and really helped me grow as both a programmer and an IT professional in general."
This very good course offered a very gentle and nice introduction to programming for students without any previous experience. The course was well-structured and is by far the best course offered by Noroff I have participated in. It's obvious that the teachers did their best to provide explanations for every part of the course material. Noroff even had two teachers provide the same lectures but with different teaching styles. To top it up, every task in the course had a complete video walkthrough that demonstrated and explained how to solve each task.
For advanced students, Noroff provided an entire module with an advanced deep dive into how Python can be used to craft custom IP packets using the "scapy" package, and as a tool to perform network management on the SNMT protocol.
I personally used this course as the backbone for a very deep dive into the fine details of Python by pursuing the certifications provided by the Python institute (PCEP, PCAP, PCPP1), working on HackerRank challenges, reading books on algorithms and data structures, and taking Udemy courses that made me understand at a much deeper level the details of programming and computer science in general.
This period in my studies was a blast, and really helped me grow as a programmer.
- 27. August 2023
Python Essentials - Part 1 (Basics)
- Python Institute - 42t, 0m
A course designed to guide you from complete programming illiteracy to a level of programming knowledge that allows you to design, write, debug, and run programs encoded in the Python language, and to understand the basic concepts of software development technology.
"An absolutely perfect fundamentals course in Python."
An absolutely perfect fundamentals course in Python. Before taking the course I felt confident in Python programming, but this course really filled in the gap I needed to fill and made me generally understand better programming fundamentals.
I have been programming daily for almost for over 5 years, and I still learned from this course.
- 3. May 2023
Python Essentials - Part 2 (Intermediate)
- Python Institute - 58t, 0m
A short and sweet course that aligns with the PCAP (Certified Associate in Python Programming) certification from the Python institute.
"This course is in no way enough to pass the certification exam."
This was a free course that was easy to follow, was well written with a good amount of humor, and had great labs. Unfortunately, the cert exam expected a lot more insight than the course prepared me for. Thanks to my general programming experience and extracurricular activity in addition to the course I was able to barely pass the certification exam.
This course is in no way enough to pass the certification exam. Since python institute is the same organization that created both the exam and the course, I think this is very strange.
The accompanying (paid) exam preparation review course and practice tests provided an excellent review, but in general, the level of in-depth understanding expected on the exam did not match this course at all.
- 23. June 2023
Python Advanced 1 (OOP)
- Python Institute - 42t, 0m
A long and thorough course on advanced OOP concepts like abstract base classes, metaclasses, decorator design patterns, and Python decorators. It also discussed how Python handles encapsulation, drilled hard on exception chaining, and touched upon the pickle and shelve module.
"The course helped me fall even more in love with Python than I previously was."
This was a very good course that helped me understand and become even more familiar with OOP design and how variables are copied and how deep the use of pointers in Python really are used behind the scenes.
The course helped me fall even more in love with Python than I previously was. This course was for me yet another proof that certifications can make you learn important things you never would have discovered on your own.
My general OOP confidence got an incredible boost after finishing this course by providing excellent labs and tasks that reinforced the learning process.
- 13. August 2023
Python Advanced 2 (Best Practices and Standardization)
- Python Institute - 10t, 0m
A short course that taught me about best practices, standardization, and coding conventions in the Python Language. Specifically PEP-8, PEP-20 and PEP-257.
"If you have not been exposed to the PEPs, this is a great starting point."
The course provided a gentle introduction to the PEPs and what role they play in the world of Python programming. I don't think the course provided me with enough material to be truly confident, but what it did provide me with was enough information to build upon, when reading the PEPs that are covered by the PCPP1 certification.
If you have not been exposed to the PEPs, this is a great starting point.
- 27. July 2023
Python Advanced 3 (GUI Programming)
- Python Institute - 21t, 0m
Thorough deep dive into building GUI applications with Python and TKinter.
"The labs were great and helped me understand the nuances of the widgets..."
This course provided an excellent way of learning how to build GUI applications with TKinter. The labs were great and helped me understand the nuances of the widgets, and how to use events to build effective and good applications.
After completing this course I feel confident in using TKinter for small, and medium GUI projects. TKinter went from being usable to being great.
I think the course missed more advanced usage like building responsive applications with the "pack" display manager, and how to run multiple windows that can interact with each other.
- 6. August 2023
Python Advanced 4 (RESTful APIs)
- Python Institute - 21t, 0m
A good introduction course on how to use web services using the sockets and request Python packages. It also touches upon serialization and deserialization using JSON and XML.
"For me, this course was a great repetition of the basics of the web and a nice introduction to the sockets package."
This was a great course, with fantastic labs that helped me prepare for the PCPP1 certification. It went pretty deep on how the HTTP protocol, JSON, and XML work.
The course had a solid overlap with the rest of the course material and the labs did a great job of connecting a lot of the material covered by all the other parts of the PCPP1 series from The Python Insititute. Because of this, I think this course should have been the last in the PCPP1 series on edube.org.
The last few labs expected insight into XML that was not covered by this course, but instead the file processing course.
For me, this course was a great repetition of the basics of the web and a nice introduction to the sockets package.
- 13. August 2023
Python Advanced 5 (File processing)
- Python Institute - 21t, 0m
A good introduction course on how to user Pyton to process data files such as SQLi databases, JSON, XML, logs, and config-files.
"This was another great course by the Python Institute."
This was another great course by the Python Institute. The material was short, on point, and easy to digest. The provided labs were great and helped me reinforce the material.
- 23. August 2023
REST APIs with Flask and Python in 2023
- Jose Salvatierra - 12t, 0m
A fast-paced introduction to medium to advanced API development with the Python web framework Flask
"I liked that the course included the use of Docker for hosting the API."
Since the OpenEDG Python Institute Certification courses were so good I decided to go all in and pursue the certifications the material was designed to make me pass.
I love to study for certifications because they help me stay on track, and force myself to learn all the boring but important stuff that I would otherwise never have been able to force myself to learn.
The OpenEDG Python Institute Certification exam syllabus for the PCEP and PCAP aligned somewhat well with the Programming class on Noroff, and the Cisco DevNet Associate certification I intended to pursue at a later stage. Because of this I initially intended to just take these two certifications. But my inner completionist could not resist the urge to take the final cert.
The PCEP and PCAP certifications were not that hard because of my previous experience with programming in general, but the Professional-level PCPP1 certificate was a very big certificate that really helped (or perhaps forced) me to dig deeper into, and really understand the core principles of object-oriented programming and GUI development using event-driven programming. Since Python was perhaps the most object-oriented programming language I had ever used, I went from feeling proficient enough to "get the job done", to feeling really confident with OOP.
OpenEDG Python Institute Certifications
OpenEDG Python Institute provides free training and high-stakes exams that validate insight and experience with the Python programming language.