Two years ago, in february 2016, I decided to start learning Python. I had very little programming experience, so almost everything was new to me.
My previous experiences with programming, back in my school years, included some lines of Basic just printing some text to the screen and playing some notes in the builtin speaker of an old Amstrad diskless computer, with a few
goto statements in the middle. I had no computer at home, so I didn’t explore it any further at that time. Then, a few years later, when we were asked to use graphical calculators in the Maths class, I got a new oportunity to actually do something. I made for instance a fake operating system in Casio Basic that acted as a launcher for the apps, games and scripts I had in my calculator. It was a very limited programming environment, but it was very fun.
Meanwhile, I learned a bit of HTML, a bit of C, a bit of MOO (my first and unconventional experience with Object-Oriented programming)… and then I went on to learn and do other things besides programming.
Meanwhile, some years after those last learning experiences, I decided it was time to give it another shot and try something new. I knew I wanted something practical, something that was portable between different platforms, but that was relatively easy to get on track and to start make useful stuff. I also wanted to focus on a programming language with a nice, readable (and writable) syntax. It ended up being Python.
It was a good choice, for several reasons. First, because it was very easy to make the first steps. Lots of tutorials, books, videos and courses available everywhere, and an amazing Stack Overflow community. The extensive Python Standard Library and all the PyPI packages are also great empowering tools, allowing for powerful programming with relatively small effort.
Another reason that has kept me from quitting and spending my time in something else was the fact that you have lots of stuff to learn and lots of ways you can improve your Python skills. You never run out of interesting or more complex subjects to learn.
About a month after having started from zero Python knowledge, I was able to make a useful console based application, like a working prototype of what would become PT Tracking. There was no real database, just a simple CSV file, but the web scraping for shipment status and everything else was working.
The next steps were upgrading from CSV and text mode to SQLite and a tkinter based graphical interface. In less than a month I had a pretty new shining GUI and some new functionalities. Considering everything was new to me, I found it to be very quick and relatively easy to get from zero to that point where I felt capable of doing useful programming tasks. PT Tracking (and its messy source code) was born by that time as an early stage learning project, but even now, after more than two years and having switched to other slightly more advanced programming projects, I still use it almost everyday at work.