ā€œBegin at the beginningā€, the King said gravely, ā€œand go on till you come to the end, then stopā€. – Lewis Carroll, Alice in Wonderland


I want to learn to think right of computer programs–I want to be very skillied and proficient software craftsman. I’m intrigued by software and I want to be grounded in it’s historical context, and attune with it’s futuristic perspective. I want to build great models of abstraction.

I’m not afraid of the computational complexity zoo, for these computational structures were pioneered by mere mortals like me. I want to have an intuitive appreciation for the simplicity of the abstraction of these complex systems. Coming from an electrical engineering background, I’m so much fascinated by how silicon is able to run python code, for instance. Feels like magic…..from silicon (and all the semiconductor materials being invented) to trasistors to logic gates to flip flops and decoders and adders to ALUs to the microcode to ISA to compilers and low level languages to high level languages to applications, etc….etc. It’s one level of ingenuity to another.

I will be thorough in my learning and have a strong grasp of the fundamentals and soar!I really hope to be a great software craftsman….and I think that’s not too much of a thing!

But trying to learn something simple can sometimes send you down a rabbit hole just like Alice. What seems like a straightforward idea can turn into a maze of details and dependencies. It’s both super frustrating and crazily exciting at the same time. One minute you think you’ve got it, and the next you’re knee-deep in a whole new set of questions. It’s like peeling an onion—there’s always another layer.

And let’s not even start on all the noise in the programming community. There’s so much advice flying around, and a lot of it is really rigid and not very nuanced. Everyone has their own strong opinions about the best languages, frameworks, and practices, and it can be tough to figure out what’s actually useful for a beginner. It’s easy to get lost in all the do’s and don’ts that people throw around. It’s also a very strong temptation to get lost in the programming languages and paradigms religious wars. OOP vs Functional goes brrrrr…..

Through all this, I keep reminding myself to stay true to my own journey. I think self awareness is an important skill in this journey, that is, knowing what is and what is not, knowing what you should hold on to and what you shouldn’t take seriously. I’ll sift through the noise and dive into the complexity, knowing that every challenge is a chance to learn and grow. I’m here for the adventure, ready to become the software craftsman I dream of being. And hey, I think that’s a pretty awesome thing!


<
Blog Archive
Archive of all previous blog posts
>
Next Post
On Reading And Writing