Skip to content

Writing Before: High-Level Language, Code and Subroutinity

The weird thing about code is that you realise that language is code: the ability to direct other people lets you get more stuff done than you could by yourself…

The big insight that I had is that eventually as a programmer you have to actually stop writing code to be effective. Which is kind of disturbing. Because you that you really love it, but you realise that being effective at programming in the general sense doesn’t mean writing code, and a lot of times you can be much more sucessful by not writing code than by writing code in terms of just solving the problems you have, essentially, hiring people that are really good and setting them free and giving them basic direction on strategy and stuff.

Because a lot of the problems you encounter aren’t necessarily solved by really gnarly code, they’re solved by conceptual solutions, which can then be turned into code…

The main insight that I have is that to succeed as a programmer, you eventually kind of stop writing code… What I mean is that you’re coding in a higher level language… You’re coding in assembly language when you’re hard coded to the architecture, then you have stuff like C… and you can abstract across the architecture… I can compile that code for ARM or x86 whatever… and then even higher level than that, you’re looking at Ruby and Python, interpreted languages.

And then, to me as a programmer… how do I go even higher? How to I abstract higher than a language? Well you abstract into spoken language and written language, inspiring people to get things done, giving them guidance… you’re writing in the highest level language there is… which is whatever your spoken language is.

Jeff AtwoodLex Fridman Podcast
  • Computer Program
  • Space Program
  • Get with the program
  • TV Programme*
  • Public Health/Housing/Welfare Program
  • Undergraduate -ology Program
  • Training Program
  • Give me a look at the (concert) programme*
  • Vaccination Program
  • Arts Program
  • Postgraduate -ologyology program
  • Recycling Program
  • Pension Program
  • Reform Program
  • Literacy Program

The word from the Googleplex is that this is from the Greek pro- [before] + graphein [write], in the sense of “a written notice” – i.e. a written notice or agenda for the meeting.


All of the above are organised processes to create an effect or cause a transformation (of people, objects, the environment, information).

Most bring together people together with things.

All are scripted or coded: we make schedules, contracts, curricula, inventories, literal scripts, stage directions, running-orders, standing orders.

All make use of subroutines, either implicit or explicit: execute this function, get to this place at this time (we don’t care how), unlock the hall, greet the guests, deliver a presentation [prepare presentation, remember laptop cable, unpack laptop, plug in laptop [remove cable from bag [unzip bag, rummage in pocket, grasp cable] locate power socket, plug cable into socket and laptop, turn on power], speak compellingly, bask in rapturous applause] thank the crowd, take out the rubbish…

Value Tree

In each case, the program as a whole is more valuable than its subroutines: Space Program is more valuable than Run Canteen at Space Program HQ, which is more valuable than Wash Dishes in Canteen at Space Program HQ.

In most cases, writing the program (or subroutine) is more valuable than executing it: Design Canteen Management System is more valuable than Write SOP for Dish Washing which is more valuable than Execute Dish Washing SOP.

And in all cases, what is valued is in the outcome rather than the program and its subroutines. That is, the program should be written and executed with as little code as possible.

A definition of a skilled contributor to your program might be “a person who can execute their subroutine without me providing code,” either in the form of a pre-programmed specialist or a person who can write their own code.**

Such people are, of course, the product of our culture and its subroutines…

*I’m a British speller but these are the only ones that I’d double-em-ee
**Finding such people is its own, highly valuable subroutine.

I'd love to hear your thoughts and recommended resources...