I finally decided to sit down and learn how to code in Python. I just finished up a learning module. I took other programming courses in college. I learned some Pascal, FORTRAN, C, Javascript, and Visual Basic. I also tinkered with Java and shell scripts on my own. But, if I sat down to write a program in any of those programming languages, I wouldn't know where to start. I've forgotten all of them. What has endured in my memory are concepts of variable types, conditionals, loops, classes, functions, and arrays. The concepts are there, but the particular details have evaporated after almost 30 years.
What Triggered The Decision
The first trigger for deciding to learn Python is a bit of a tangent. I spent some time working on a spreadsheet today. It required me to set up a dropdown menu that would trigger a vlookup function in other cells to populate them with data from another sheet that acts as a data source. This, in turn, could be used to calculate things simply from choosing several dropdown menu items. Similarly, I had done this before. But I forgot the details. If you don't use a skill often enough, you lose it.
I'm not crazy about spreadsheets, in general. My problem with them is that you are so dependent on apps that run on your machine or in the cloud. Lately, I have been using markdown files for my text documents. This plays particularly well with Obsidian. I can use nano in the command line to create or edit documents, knowing that they'll be properly formatted on Obsidian. I've known for some time that I can work with data using Python in the command line as well. The advantage of using markdown for text files is that they are universal across platforms. I don't have to worry about compatibility. And the files are tiny.
It occurred to me that busting my brain to manipulate data on a spreadsheet is not too different from busting my brain to write some code. It's all about syntax in both cases.
The second trigger is that I have been using LLMs more lately. The thing is that I have not been able to use Machine Learning without knowing how to use Python. I get the sense that I'm missing out on opportunities by not knowing how to take full advantage of AI.
Why Hesitate?
The main reason why I put off learning were memories of my previous, unhealthy experience with programming. I had an unhealthy tendency to work for hours and hours to avoid losing my train of thought. It takes a while to figure out what you were doing when you stopped.
The second reason why I have put off learning Python for so many years is a bit dumb. Learning any programming language necessarily takes you through the process of learning variable types, conditionals, loops, classes, functions, arrays, and such. It's so elementary. But unless you sit through it, you won't know how Python does these things. It's not that it's mind-numbingly difficult. Instead, it's mind-numbingly boring. I simply did not want to put myself through that. It's a lame reason, I know.
It's particularly lame because it is so easy to learn programming these days. There are so many resources available.
Low Lift
Speaking of abundant resources, I have had a shell account for years that I haven't used to its potential because I haven't done programming. I've mostly used it for email, Gopher, and the occasional MUD. Fortunately, the community on the server encourages learning how to program. And they provide all I would need, including a database account.
What I hope to get out of it
I have the sense that I have been missing out on opportunities by not taking the time to learn Python. It's good for automation. It's good for working with data on AI, particularly machine learning. I suspect that learning Python will also be useful for routine IT tasks. But down the line, I think it will also come in handy for finding work opportunities.
Given that Python is great for working with data, I think there will be a natural segue to learning to work with databases. I don't know if data analytics is in my future. We'll cross that bridge when we get there. I think I'm more likely to delve into back end development.
Expectations
I think that once I get past the boring parts, learning Python will become more interesting. Obviously, when you're learning, you aren't really solving any real problems. But once you get a better grasp of what can be done with Python, some ideas will be forthcoming to put the knowledge to good use. Therefore, I expect my eyes to open a bit once I gain some insight on what Python can do. I have a better handle on the compulsive part now. I'm more likely to take breaks, eat, and sleep these days. Overall, I expect to have a positive experience this time around.
I agree. You forget it if you don't use it - at least not enough to remember, or enough after you learn it to keep it in long term memory.
It's happened to me in a lot of things.