Software development as a learning activity
ยท Updated:R.D.Laing apparently said that we are all entitled to our thoughts. So, like you, i also have a lot of thoughts. This post is about some self-reflective thoughts i have been having, and finally i have i think come closer to what i have been feeling about the way AI a.k.a. our agents have taken over software development.
I recently had a chance to reflect on my relationship with software development as a thing I do and as a career. I will refer to both of them as computer programming for the rest of this post.
I will leave out all the career trajectory, progression, junior, senior, principal, senior, architect, promotions, etc out of this post, since i don’t have much to say about them. May be one thing - it was a game i never could get myself to play - i have worked with a few people who can, and hey, good on them. I tried for a bit, and i didn’t like who I needed to become to play that game.
So, computer programming. I have been programming in one form or another since 1995. My first program that i can remember that really clicked it for me was to simulate a physics experiment around convex/concave lenses, and refraction using GW Basic. Then, I picked up a few languages. But overall, it was essentially, an act of manual typing by hand, reading from books, learning from books, or a teacher, and then writing by hand literally on paper, and then on a computer.
Things have mostly been the same for me and I have kept doing it since i have enjoyed the process of problem solving. A specific type of problem solving. Features don’t interest me, they bore me, soon-ish. But, give me a bug, and then i will get so stuck on it that everything else goes out of the window. That was what prompted me to switch from software engineering roles to DevOps/SRE roles because I would then be responsible for writing tools/frameworks for spotting those bugs. But that became boring too after a while. However, i could see myself doing that for a longer period of time than working on features.
Now, what kind of a programmer have i been? I am the kind of programmer who loves the problem solving aspects of the craft. That it is a tool to solve problems. Hence, if you ask me to solve leet code, i will suck, i have sucked for as long as i have programmed. I couldn’t code a quicksort for you, or a merge sort or those large number arrays, etc basically, i cannot and haven’t made it through a lot of programming interviews. Hence, code quality - the design patterns, or writing amazing code, has never been my focus. I love unit testing, and i would definitely want to practice TDD if i wanted to. I prefer typed languages like C, Java, and Go over Python or typescript (not a typed language, something that is trying to transpile to a untyped language) - the latter two are all i code in these days, but i am flexible. And so i have worked with a few people who have been so nerdy about their type requirements that i have either hated them or felt very inferior to them, often a mix of both.
Overall, to summarize, it’s fair to say, problem solving has been the reason i have been programming since i first learned about it. Types, code quality, good design, they are all nice to haves, but i am not gonna debate anyone over your way or my way. It’s the act of writing code, building up an understanding of a system - however small it is, and then knowing how it works, the next time i come back to it, that’s what I love about computer progrmaming. It is also an act of mindfulness for me, i zone in when i am coding by hand. The noise of the brain goes away. I am developing an understanding of what i am writing. I am feeling involved. I am part of the solution designing.
That leads me nicely to my relationship with a few things in progression:
- Third party libraries
- Auto completion and configuring tools to make programming easier
- AI based Inline code assistance and auto generation
- Agentic development
This post is in progress (Last Updated: 16 September, 2026)