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:

  1. Third party libraries
  2. Auto completion and configuring tools to make programming easier
  3. AI based Inline code assistance and auto generation
  4. Agentic development

This post is in progress (Last Updated: 16 September, 2026)