Abstraction levels
I’ve grown up as a programmer. When I started, we coded pretty close to the metal. My first language was BASIC. Then it was assembly. Z80 to be specific. It taught me a lot about the low levels of computers. Stuff that has been incredibly useful throughout my career. But another aspect of my career has become increasingly important.
In programming we deal with levels of abstraction. It’s complicated but think of going from binary to assembler to low level languages to high level languages and beyond. That kind of ladder of abstraction has always been easy for me to follow. Don’t get me wrong, there’s effort in really understanding what each level represents, but in general they are logical and connected.
My struggle is that I also have to do a similar level of abstraction, but for a different reason. This is the other part of my career. How do I go from the individual contributor (binary or even assembler) to higher level contributor (beyond C, beyond Python, beyond Lisp, etc.) as a contributor to the organization. My abstraction level has to be more of a team and then a team of teams and then a team of loosely organized teams. It feels like I have to invent the higher level languages. But, I do see glimmers of it in the teachings and books that I read. I recognize moments of clarity and moments of utter failure. Is this something to be expected? I’m finding out as I go.