The importance of Human Code.
I recently read a blog post that really resonated with me, my struggles and experiences which was later expanded via tweet by Daniel Irvine 7 who said:
You’re conflating two separate things. One is the desire to write clear, well-structured code. Another is your belief that your code is more valuable than that of your colleagues. I fear you’re missing the more important lesson.
In both education and work we are told that creating the cleanest and following DRY to the core is the answer to reaching the top of your respective area. I say it’s time we cast away this idea that these are the ideals we stride for, in favour that we should use these as the constructs of writing human code. Code which is understandable and clear not clean and abstract till sharp.
Human code > clean code > clever code > dirty code
I feel this couldn’t be more true. So often in this industry are we as developers and computer Scientists expected to be geniuses, understanding the height of complex abstraction for the sake of principle and ideal of clean and DRY code. It is this, this impossible goal which leads to a more than often documented phenomenon in our industry and an issue I’ve struggled with for years, Impostors Syndrome.
With these constant judgements we put on and are put on from us, our colleagues and peers. That coding is this superpower in which we must all fight to create this perfect code, or we’re not good enough is so far wrong.
What’s most important when programming is to write HUMAN CODE. Code that is understandable, clear, and proper.
Not the ultimate prophecy of code, like an augmented plastic surgery version we so often hold up as the holy grail.
We are all human and it’s given that if you are programmer you are most likely smart, congratulations . We have chosen to, for some reason or another spend our life dealing with high level problems (as to why, beats me); but this is no reason for us to fight to be at “the top” or be “the best”.
Now as Daniel says:
Yes, I care about code quality. But I also care about people.
Let’s stop judging each other. Let’s work together to create awesome software.
Leading from the back
One important point that Dan Abramov certainly makes is that in programming; Certainly in game development is as Daniel Irvine said, “At some point it dawns on you that being a team lead means leading from the back” you’re team is only as fast as it’s slowest member. “and your job is to help everyone level-up, not just yourself.”
That working collectively to find better solutions is the only solution.
Human Code
Human code > clean code > clever code > dirty code
I’d go as far as suggesting clean code is dirty code and that good code should be understandable by not just yourself in 5 years but by your colleagues. That you should go for the easiest solution, I don’t mean be sloppy but I think we can all agree that the easiest solution is often the best as coding shouldn’t be about finding the most nuance “isn’t that clever solution” but the one that works, and works well. Doesn’t require 10minutes to map out and dissect to understand. This is the pinnacle of programming human code.
Remember:
“programming is about finding the best solution to a problem, but the best isn’t always the cleanest or most abstract.”
Comments
Post a Comment