Develop a Sense of Code
One of the questions that comes up a lot is something like, "Are we at the point where everyone in IT needs to learn to code?"
Join the DZone community and get the full member experience.Join For Free
The more the counter next to my years-in-tech metric increments upward, the more I find myself in situations where I talk about career paths, skill decisions, and choices about specializations. It might be talking to a publication, on a panel, or one-on-one with someone who wants to get into or ahead in IT.
One of the questions that come up a lot is something like, "Are we at the point where everyone in IT needs to learn to code?"
It's a logical consideration. With everything-as-code (infrastructure, network, observability, security, and more) becoming an ongoing talking point, people who never saw themselves as coders (folks who have focused and like to focus on the physical and/or hardware aspect) and not to mention those who flat-out don't like coding, are now asking themselves whether they will be forced into it by the tidal forces of technological change.
The answer I give when asked this is, "No. And also yes." Bold of me, right? Thankfully, there's more to my answer, "You don't need to learn to code, but you will be well served by developing a sense of code."
What Is a Sense of Code?
A few years back, one of my kids was struggling with school. It was 2nd grade; nothing seemed to be clicking for them no matter what tricks we tried, and we were all trying to sort out a path forward. Finally, my wife and I expressed our anxiety to a wise and kind guidance counselor. She told us a secret:
"By the 4th grade, all we need for them to have developed is a love of reading and a sense of math. That's all they need to move forward to the next level. If they have those two things, they’ll catch up quickly."
The phrase "sense of math" was new to us, so we asked about it. The counselor described it as developing a base-level intuition of how numbers worked—the recognition that if you add 7+9, the answer must be more significant than 9 and less than 20.
Which Brings Us to a Sense of Code
I don’t believe all IT folks need to become hardcore developers. However, I also don't believe this everything-as-code movement is going to be as pervasive, all-encompassing, or reality-altering as some—mostly vendors who have a stake in things all shifting to everything-as-code—would like you to believe.
We—from sysadmin to script kiddie; from dba to disaster recovery planner; from project manager to product manager—all should have, like my daughter’s 'sense of math,' a sense of code.
By that, I mean the ability to look at an existing piece of code and understand what it’s trying to accomplish. For example, we should understand looping structures and logic statements in the broadest strokes. We should be able to understand the handoff to a subroutine, what data a call to an external API is trying to grab, and the overall contours of the program flow.
Even if—ESPECIALLY IF—we couldn’t write that code, or any code at all, or even explain precisely how the program in front of us will achieve its result. Nevertheless, we should be comfortable with what it's meant to do.
The Eternal Whine of the Third Grade Mind
"But why? I'll never use this!"
Look, I get it. We're all busy enough with the work before us without taking on a whole new skillset, let alone a skill set we may not be particularly interested in. Moreover, some of us still bear the scars of being forced to learn (and even certify) in ISO 9000, ISO 9001, and ITIL 1, 2, or 3. Trust me; NOBODY wanted to learn that stuff! So why should we spend our precious time learning to code or even develop a 'sense of code'?
Because code is an intrinsic part of how we get our job done, even when that code isn't ours, everything from installing to patching software can involve a scripted (i.e., programmed) set of actions. The same goes for troubleshooting a problem, especially when the vendor gets involved and wants you to "just run this and email me the .tar file it creates." Programmatic solutions are present during migrations from old hardware to new, from one vendor to another.
Having a sense of code will help you quickly understand whether a process labeled "rtkit" is short for "rootkit" (bad) or "realtime kit" (not bad).
A sense of code will let you look at a dashboard and draw a connection from misconfigured storage to the poorly performing order entry portal and straight on to the business impact.
A sense of code is what you need if you want to take just a single, exploratory step toward (but not into) development by allowing you to imagine and then create automated routines, turning tedious tasks into simple commands.
Developing a sense of code doesn't require us to be or become developers. But it could help us take the next step forward in our careers, even if that step has nothing to do with code.
Published at DZone with permission of Leon Adato. See the original article here.
Opinions expressed by DZone contributors are their own.