I get asked this question – a lot – but despite what people may presume, and what coding has given me, I do not think everybody has to become a coder. What I do think is that children in schools should be far more frequently exposed (i.e. with regular lessons) to the foundations of code and they should be encouraged to take an interest in it, to be awed by it and to be positively challenged by it.
But as a fully fledged and otherwise-functioning-just-fine-without-code adult should you learn to code? I’ve had business people ask me – or rather tell me, on numerous occasions, that they’re going to learn code the next 3 months and develop the software idea they’ve had for a while. Skipping over the non-designer part, it always makes me cringe inside when hearing this. Do you think I can do a 3 month architecture course and pull together a structurally sound building that people want to live in? Of course not. The same goes for coding applications.
Once you start digging in you begin to understand why people have done this full time, for years on end to become mid-level experts. You need to know multiple coding languages to even code something functional. And you need to understand what you need to employ & when, have half-decent coding practises, know about version control, deployments, servers, packages, frameworks, security nodes and on and on. You’ll start hearing words like react, angular, django, python, ruby, heroku, NPM, grunt, gulp, yeoman, git and more. You’ll probably need to get comfortable with the command line and numerous other tools. It’s a lot to take on.
So what to tell someone who wants to learn to code? I’ve found it a delicate balance because whilst I think all adults who have an interest in code *should* familiarize themselves with it, I also want to be realistic about setting expectations of what you’re going to build alongside your other full time job. And that you know, it’s freaking hard work (unless you’re a baby genius) and you are going to have many tear-your-hair-out moments. Over and over again.
So why learn to code something, anything, or get familiar with structure, if you’re not going to be building the next big app (or even your website)?
Well, these are the other things I’ve found coding does for you…
1. It’s probably the industry that most keeps you on your toes.
Code changes constantly and you need to stay on top of it. All. The. Time. When I was half way through coding an app a few years ago, Angular upgraded from Version 1 to Version 2. It may as well have been an entirely new language (and gave me yet another reason to hate on Google). Should I rewrite everything? Do I keep going? As I write this only a couple of years on, they’re about to release Version 6. In the meantime I’ve also had to learn a bunch of new coding languages, and new systems to improve my workflow. And I’m not even anywhere close to keeping up.
2. You must adapt
Because of the consistent new technology, you will keep adapting. In the development world you literally do adapt or die (probably under a pile of computer screens screaming into the void). If you’re in a team or joining a company or taking over a project, you’ll probably have to work with other people’s code and structure too. And they will likely do it different to you. You will be forced into quick analysis of pathways to a compromise, into changing your ways and keeping something going whilst improving it.
3. You will understand that tech is simple as a user, and extremely complex as anything else.
Code starts off semi-easy. And then you start learning more. And manipulating the DOM. And working on CRON jobs. And desperately trying to get API end points that don’t do what you need them to. And understanding *why* you have that bug but having no idea how to fix it. And wandering how to connect OAuth to your app and realizing how much effort goes into creating push messages when all you need is a simple box on a user screen. And then giving a thought to security and thinking *I really need an expert or two to even start to make this comply with data and digital laws*.
Oh and then if you’re anything like me, you do at times have to get involved in server work and you realize that hardware is the least of your favorite things and you don’t even want to deal with any of that tangible stuff. The magic of technology is that it looks simple. The magic of working in tech is that you appreciate how interconnected, integrated, and complicated everything is. The illusion is gone and instead there is deep, deep appreciation. If everyone understood this, the IT community at large and particularly service desks, would have a far easier time. And programmers wouldn’t find themselves in these situations quite so much!
Also, anybody you work with in the future who works in Tech will enjoy working with you more because you understand some key foundations.
4. The open source world is code candyland
Seriously, it’s wonderful. Yes you’ll come across some snappy, egotistical people on forums, but generally speaking the open source dev world is one of the best parts of humanity. It’s people contributing, for free, major projects and months of their life worth of time to endlessly building applications and helping people with theirs. It’s people who spend days patiently explaining basic code concepts – or really difficult ones – to complete newbies. It’s companies building new software and then letting the entire community use it for free. In fact, some of those words above are part of this. Angular was created by Google and React by Facebook. AirBnB and Atlassian contribute heavily to our world. I have friends like Mike who spend years of their life training people up on a data programming language so that we can do things like study the ocean floor. Whenever I lose faith in humanity, I turn to the Slack channels, Stack Overflow questions, Git users and sub-reddits of the open source world and always, always find hope for the future here. I may have experienced a decent amount of sexism in the offline world in tech, but online, when it’s a faceless me and a few lines of code, I find the most collaborative, supportive and helpful place I’ve ever experienced.
5. You learn to learn properly
So many people want to jump from A to Z in just a few months (or preferably weeks). That is pretty much impossible with code. You have to learn one thing. Then another. Then another. Even if you knew every foundational rule of popular code languages, you don’t write something perfect from the start. You begin the project by starting somewhere and then iterate, create, start again, tweak and complete item by item. Even when you jump ahead you will inevitably come across an issue that forces you back to the very beginning to work your way through that learning. You can use this skill for nearly anything else in life.
6. Little details make up the big picture
Coding will kill you (or more appropriately, crash your application) if you don’t pay attention to the little things. Whitespace, a missing comma, an unclosed bracket – all can make your code error out and your element stop functioning. You will spend many days of your life debugging. Sometimes at a frustratingly slow space between reading documentation, staring at the errors in your console, scanning your code, and perusing the forums for answers. You will persist and your determination and consistency will do you well in every other area of your life.
7. The Feel Good Factor
Making something feels amazing. In the coming day, you could easily make a little small something. Once you’ve done that you tend to feel like you can do anything. And that’s the allure of development – that all the power to create anything you’ve ever wanted is in your hands. If you’ll just dedicate enough time to it.
So should you code? Well if you’re a web or application designer your world is intersecting with code more and more. I’ve found one of the truest areas for this to be in the animation space. It is extremely different to bridge the gap between designers and developers on animation. A designer who knows how code works, or even better has tried to work with some new technologies to implement animation, has a far higher success rate of getting that animation working like it should and a developer enjoying their work a lot more in the process. The same goes with interactive designers and more and more with website designers.
Whether you do or don’t, a small understanding and appreciation will take you far if you touch on any part of the world where code is a part of it. How much you choose to delve in doing needs to line up with how you want to spend your days and what your goals are.