Coding is not about Code:
Carving Your Thoughts in Code
- STATIC COMMUNICATION: When the author is not present to interact with the audience. These are situations like this blog post where I do my best to clearly explain myself in writing, but you’re ultimately reading it without me over your shoulder to answer your questions or explain why I wrote what I wrote. Your understanding of my post comes from your independent experience of the words I published.
- ON-GOING COMMUNICATION: When the author is present to interact with the audience. The comments section at the bottom of this post is an example on-going communication. You get the chance to deal with me personally to clarify any confusing points in the blog post, creating a space where our understandings of this blog post can grow and evolve together. You’ll get the benefit of having your questions answered, but I’ll also benefit by being told about mistakes I made or by being shown new ways to think about what I’ve written.
FIRST, and maybe most importantly, your code needs to make sense to end users. After your code has been compiled and executed the resulting application must be intuitive, focused, and meaningful to the end user. This can be achieved with design thinking and a little empathy for the user. SECOND, your code needs to be clearly understandable to other developers. Whether they’re fixing your bugs, contributing to your project, or integrating your code into their own projects, other developers will need to read and understand your code base. You need to have other developers in mind every step of the way. From the lines of code themselves, through the directory structure, dev environment, and all the way up to documentation and the repository that hosts your code. I like to think of this as “source code UX”. THIRD, your code needs to fit it’s ultimate deployment environment. One trait of a great developer is an intimate knowledge of their tech stack and deployment environment. Details like which pre-compilers to use, what data model is best suited to your deployment, and how to write applications that scale with traffic are all key to successful launches.
I Hope this helps!
(Stay tuned for some tips on how to practice this.)
The most important skill of a true developer has nothing to do with writing code. Then what truly differentiates an excellent developer? Read how weeks of work could have been avoided by thorough analysis, spiced with a bit of laziness.
Growing up in Belgium, I was exposed to a different education system than in Kenya. In this article I talk about my experience from secondary education up, and how that shaped my thinking on education today.