Growing up, I definitely fit the label of the traditionally creative albeit slightly nerdy kid with a soft spot for the arts. I loved to draw, was great at languages, keen to get crafty, and hopeful for a career in writing. The only time I dabbled in programming was when I tried to get an updated version of my DIY website up and running in order to share my teenage musings with the world. At university, I studied social sciences, kept writing, started editing, and happily stuck with what some might refer to as the softer side of science for the time being.
All of this changed two years ago when I started my graduate studies. There, I had the choice to stay where I was fairly comfortable and quite content, or to push myself straight out of my comfort zone into the arms of what’s known as computational social science: the application of programming to the study of social phenomena. Since I was determined to learn as much as possible (and get my money’s worth while I was at it — an Oxford degree doesn’t exactly come cheap), I decided to embrace the exhilarating and slightly scary opportunity to start all over again. Diving headfirst into the wondrous field of data science, I started to program, and ended up spending a good chunk of my nine-month course in bed fixing bugs and collecting data. Since then, I haven’t really stopped learning. I’m now at a point where I’m pretty confident in my skills and where they can take me.
This doesn’t mean that I’ve had a change of heart — I’m no less creative than I used to be, though, admittedly, maybe slightly nerdier. But learning to program has nevertheless changed my life in a number of ways that I never expected when I first started writing clumsy code.
1. I learned that code is creative
Programming, to me, is just another way to creatively express myself. It’s the perfect mix of left-brain and right-brain activity. First, you can let your imagination go wild to figure out what it is that you want to build. Next, you have to stop to figure out how to actually get there, breaking down your idea into simple, logical steps that you can execute one after the other. Writing code is not that different from creating a piece of art, or writing a story — you’re just a little more restrained by the limits of logic.
And just like great writing, brevity and precision always trump rambling. There’s a certain beauty in getting your code to run on shaky legs (the first draft), and a lot of satisfaction in making it run faster and easier to read (the editing process). Programming keeps me up at night in the same way that working on a great idea for a new piece of collage art does. Whether I’m gluing together paper on my bedroom floor or frantically typing code in my pajamas, I find myself in the same zone.
2. It’s a blessing for my personal toolkit
I’m a doer; I don’t like coming up with ideas that I can’t implement, or that I can’t teach myself how to implement, or, at the very least, understand how they can be implemented. Knowing how to program is a blessing for anyone who feels the same. It not only enables you to do some seriously cool stuff, but it also opens up your mind to what is possible. No longer do I only have pen & paper and words at my disposal to make ideas happen. I now have the potential to build apps and programs and websites if I want to.
There’s something very empowering in having all of this knowledge at my fingertips, just a few hours (or several weekends) of hard work away. Programming has given me a very practical confidence I was lacking before in my mostly analog and textual creative pursuits. Any idea I have in future I can probably make work — and that feels pretty damn nice.
3. The joy of instant gratification
Admittedly, I can’t say that my programming habits are always healthy. Sometimes, fixing a stubborn bug makes you despair and bite your nails until there’s not much left of them — I have pretty much given up nail polish since I started programming. But when you get your code to run for the first time, the instant gratification is real. I’m still fairly new to this feeling. With most of the things I like to spend my time on, there’s no right or wrong way, and you can keep chipping away at it until you go mad. Sure, code can always be more aesthetically pleasing (and I’m the first to admit I’m not the sleekest programmer around) but if it runs, and if it runs within a reasonable amount of time, you’ve passed the test.
It’s satisfying and you feel oddly at peace for a little bit until the next challenge pops up. Getting it right and quietly whispering “yes!” to yourself in the corner is an addictive feeling I never knew I was missing out on. Programming reminds me of translating a foreign language — the end product can always be a little nicer and maybe you don’t know the perfect phrase yet, but once it works, it works, and you’ve temporarily succeeded. Little successes like that are good for the soul.
4. How to embrace the unknown
But while it’s certainly nice when your code works, programming also helps you embrace those moments when nothing at all works and you have no idea what the heck is going on. You have no choice but to get cozy with feeling completely out of your depth on the regular. Ninety percent of coding is figuring out how to do things. There is so much googling involved — whenever I program, I have about 20 tabs open in the background.
Learning to program has taught me that you don’t have to know everything to be considered good at something. The most important thing is knowing what is possible and how to look for the answers that you need. Programming teaches you that it’s okay not to remember everything by heart. Programming has allowed me to embrace uncertainty and made me confident that I have the capacity to solve most problems that will be thrown at me in my time. I’m also excellent at phrasing incredibly specific Google queries now.
5. A whole new world, career-wise
Two years out of education, I’m already pretty certain that learning to program has changed my future career trajectory. This alone has made my expensive Master’s degree worth every single penny. Most of my learning was self-taught; I’m not the type of person who can learn something as practical as code in a classroom setting, and I think anyone looking to get into programming needs to be prepared to invest their own time outside of classroom hours. But I will forever credit my graduate course for opening up this whole new world to me, nudging me in the right direction and giving me a real purpose to fall in love with Python, my programming language of choice. I don’t know where I’m going to be in a few years’ time, but I know that my love for programming is something I will carry with me wherever I will go.
Personally, I don’t regret that I didn’t study computer science at university — I feel lucky to have learned programming by applying it to another academic discipline rather than studying it on its own. I needed to learn programming to get something specific done, not for programming’s sake, and my academic heart still belongs to social science. Similarly, I don’t think I see myself as a full-time programmer in future, either — more like someone who can also program to get stuff done.
6. The future doesn’t seem so scary now
Knowing how to program makes the future feel significantly less scary. Terms like Artificial Intelligence, neural networks, and machine learning used to be little more than pretty abstract and slightly intimidating buzzwords to me. I’m by no means an expert in these topics now — I’m not a natural scientist by training and I have a lot to learn. But I’ve got a grasp of how artificial intelligence works in practice and how I can get involved and use it to my advantage — it’s no longer an impenetrable deep dark hole to me. On a similar note, the future of work and whether we are all going to be replaced by highly skilled robots in ten years is another topic I’m not particularly worried about anymore. Is your job going to be automated in the near future? If you understand the basics of programming, this question is not too hard to answer yourself — and you can up your game to future-proof your career should you be at risk.
7. I can automate the boring stuff
Luckily, mastering a programming language doesn’t only allow you to understand what might be automated in future. It can also make your life a whole lot easier in the now. If there’s a repetitive task at work that doesn’t require any active decision-making but still keeps your attention hostage for hours and hours on end, chances are, you can probably make it significantly less painful by automating it. Admittedly, if it’s a one-off task, writing a script might take you as long as doing the task in the first place, so it’s important to know when to just bite the bullet and accept you’re going to have a very bland thirty minutes ahead of you. But when it’s worth it, few things are more satisfying than putting the machines to work to spare you from hours of copy and pasting. Personally, I’ve written a little script that tells me when it’s worth it to automate a task and when you should just get it done…but that’s just me.
Ilinca is a smug morning person, Master (of Science) of the Internet, arts & crafts enthusiast and proud introvert currently living and working in Singapore. You can follow her on Instagram or Twitter.
Image via Unsplash