Friday, August 05, 2022

Continuous Education - or where does learning stop.

Analysis paralysis is that state where you keep working on something, never finish it, because you're constantly thinking that you can make it better. You just keep doing the studying, the analysis, and never really engage on the project.

Learning and education can be like that as well. I remember, as a student, when I had a project to do, I'd start off in the library. It would take a really long time to get the work started, because I needed to make sure that I'd read absolutely everything I could about the subject before I started working on it.

But, of course, you can never really know everything. You can only know, what you know at that moment. And there's this fear that either, you don't know enough to do the work, or that if you knew more, you'd do a better job.

And it does not matter what career you're in, as The Desiderata says, "...for always there will be greater and lesser persons than yourself."

I like working with software and doing software development. I enjoy automating processes using computer programming. And in my life, I've worked with so many different languages, getting really good at some, and superficially competent in others. For a big part of my career, I wrote desktop applications and now, it's all either web-based, or mobile. And ultimately, I think that responsive mobile technology that also fits the web will win.

And this means learning new ways of writing software. Unlike the world of the 80's and 90's and even the 2000's, the choice of what tools to write software with is astounding. You cannot master everything, but can try to be really good at one or two.

And I have finally fixed my attention on the Python programming language. It's not the best, but it certainly is quite popular. It's easy to use and learn, and if you are a software algorithm fanatic, you can do some really cool things with it - both on the web side of things and also on the mobile and desktop app side of things.

My love for complex programming languages like C++ is still there - and I may keep flexing those muscles on non-work related things, just to keep interested and busy.

Something like this blog (and it's sister blogs about software development) which were originally so focussed on being good, but are now focussed on discussing what goes on in this mind of mine.

Python is a great language for doing so many things with information - after all, we are living in the information age. And like typing and writing, computer programming should be one of the basic tools that students leave college with. Arguably, being able to write comprehensively in any language is a good skill, but it's not a necessary skill for all types of work. Being able to write competent software helps build logic skills, which, like reading, writing and arithmetic, go a long way to keeping the brain flexible.

But having learned Python the next step was to select different frameworks for doing some of the work that I need to do. For web programs, I started learning how to use the Django framework, but soon gave that up for a lighter, easier, simpler framework called Flask. Django is a pre-built house, you just go in and move a few walls, paint and furnish and you're done. Django comes with database connectivity and security built in.

Flask, on the other hand, is like cement, bricks, wall and floor components as well as some fixtures. You assemble them yourself, build the house. Unlike Django, there's no house for you to start with, you need to assemble the basic stuff but that's very quick. You can get a simple Flask application running faster than a Django one (though the Django crowd may disagree).

And for desktop apps, I had settled on the Tcl/Tk interface (tkinter) that ships with Python. However, I discovered Kivy, which while takes some time to learn, does things a little faster once you have learned how to use it. With the added bonus that Kivy allows you to build mobile apps.

I'm ignoring everything else for now.

And hey, that doesn't mean that I won't start building apps until I've learned the entire language. Nope, apps are already being baked. And I have the added audacity of planning some tutorials which I'll release on my Python blog. For me, teaching is a way of learning.

No comments: