7 Reasons Why You Should Learn To Code

Learning how to code is fun, but did you know you get a ton of other benefits from it too? Systems thinking, problem-solving, and marketable skills improve when you learn coding. Should you learn coding, and why?

In this article, we’ll discuss a few reasons why it’s a smart idea to learn programming. Here’s what we’ll get into:

What is coding exactly, and how does it work?

How to automate things with “if this then that”

Coding is learning how to think in systems

Learning how to code helps you master low-code platforms

The meta skill of learning how to learn is super valuable

How does programming improve your problem-solving skills?

Learn to launch and build apps, to build better things

We’ll not only focus on programming as a profession, but also on the synergies you’ll find in jobs not directly related to software development. The influence of automation stretches far and wide, so we’ll also strongly focus on the benefits of learning how to code in everyday work.

What’s Coding?

Programming, or coding as it’s often called, is the activity of telling a computer what to do. You typically code with words, in a specialized syntax, that are executed by a computer to produce a desired result.

Here, check this out:

for i in 1...10
{
let result = i * 7

print("\(i) x 7 is \(result)")
}

Hide warnings

The above code will print out the multiplication table of 7, i.e. “8 x 7 = 56”. It does so by repeating a set of instructions 10 times. This is called automation.

A fundamental principle of programming is repetition. You need to be a little bit lazy if you want to become a good programmer! We’ll code it once, and repeat it an infinite number of times…

Computer code is executed line by line, from top to bottom. The code will often “jump around”, for example when we’re calling a function. Functions, and other abstractions, help us to define code that’s easy to read and maintain. Other building blocks of code are classes, types, and conditionals.

Speaking of conditionals – let’s move on to IFTTT…

You can play around with the code in the above editor. Give it a try! Change the code and then click Play. The programming language we’re using is called Swift.

Automation: “If this, then that”

You’ve probably heard that phrase before: “If this happens, then do that.” They’re called if-statements in coding, and computer code is full of them. Your code makes decisions based on input – all day every day.

Here’s the anatomy of an if-statement:

ifexpression {
do this
}

In the above code, we want to take action if a certain expression is true. A few examples:

if userIsLoggedIn == true { ···

if tweet.liked == false { ···

if status == .disconnected { ···

Once you understand how if-statements work, you see them everywhere. You start to recognize that computer systems continually evaluate parameters to take decisions. Now that you know this, you can debug these systems to figure out what’s going wrong.

Moreover, a few upcoming services are focused entirely on processing if-statements. You can use tools like Zapier, IFTTT, Automate.io, Integromat, Workato and Flow to create elaborate workflows that take action based on automated input. You can use any of them if you know how an if-statement works.

Systems Design: Thinking In Systems

When you’re learning to code, and writing a program, you don’t have to start from scratch every time. We’ve got libraries of code you can use, called Software Development Kits (SDKs).

And there’s more…

A computers’s Operating System (OS) has drivers that transform signals from peripherals to events you can use in your code – like mouse and keyboard presses, or taps on a smartphone screen.

You can use online web-based resources, such as a database with dinner recipes, and download those in your app, and work with them. The data from those webservices passes through the internet, and touches many computers in between.

Software developers often design elaborate systems, called architecture, that makes it easier for you to code with their libraries and SDKs. They’re systems you can talk to, called APIs, that make your coding a lot more productive.

See where this is going? If you’re learning how to code, you’ll learn to recognize that code consists of systems upon systems upon systems that interact with each other. Systems thinking helps you better understand the world around you.

The cool thing is that you don’t have to understand 100% how a system works, in order to use it. You can download a web-based resource in your app without knowing exactly how HTTP works. Thanks to abstraction, you can code productively fairly quickly.

At the same time, when learning how to code, you’re presented with many opportunties to dive deeper into a topic. It’s intriguing to learn how the internet works, and what happens when an HTTP request is sent. You can then apply abstractions you’ve learned to new domains. This helps you increase your understanding of systems – and that’s a skill that’s beneficial everywhere.

Learn how to build iOS apps

Get started with iOS 13 and Swift 5

Sign up for my iOS development course, and learn how to build great iOS 13 apps with Swift 5 and Xcode 11.

Get A Better Grasp Of Low Code Platforms

An upcoming category in software development are the so-called low code (or no code) platforms. With a no code platform, you can build apps, websites, software and more writing a single line of code!

How do they work? Most low code platforms have a visual editor, in which you can build scenes, pages or app screens. You can combine different building blocks and integrate them with each other, to build an application. The purpose of the app is the same as any other: take input, and provide output.

The concept of low code isn’t new. Think about Microsoft Excel, a spreadsheet program (or Google Sheets, or macOS Numbers). Within a spreadsheet, you could use dozens of predefined functions to transform the spreadsheet’s values. You could, in fact, build entire programs with it! From budgeting to taxes to planning, anything can be automated in a spreadsheet.

If you’ve got these tools, why should you learn to code? It’s simple: low code tools are based on the same building blocks as actual computer code. They evaluate user input and take action based on it. Once you grasp those fundamental concepts, working with low code platforms becomes much easier.

Learning is a skill in and of itself, too. Let’s discuss that next.

Meta: Learn To Learn A New Skill

Coding is a valuable skill to pick up, but you also gain something by learning. You learn to learn a new skill. (Read that sentence again!)

When’s the last time you learned something new? Chances are, if you don’t have a learning mindset, that your skill of learning is a bit rusty. Learning how to code will help you master the meta-skill of learning itself.

A few examples:

You learn to plan. You set a goal for yourself, and figure out the steps you need to take to get there.

You learn to persevere. Learning how to code is challenging, so it’ll train the muscle that helps you say: “OK, let’s take another look at it.”

You learn to digest. You use specific skills to deconstruct information, and to assemble it again in such a way that you’ve internalized it.

You learn to practice. Practice makes permanent, and it’s crucial in learning anything. With coding, you practice by building something new.

A learning mindset is best cultivated by learning something new. Why not learn how to code? You can apply your meta-skill of learning to different domains next, and learn a new language, how to cook, or to play a music instrument.

It’s fascinating to see what synergies emerge, when you focus on learning how to learn. You’ll start to see patterns within different skills (and systems).

Take reading music, for example. Those notes, they look an awful lot like code, right? And the ingredients you need to cook dinner, aren’t they the same building blocks you use to code program’s desired output? It’s like coding dinner!

Improve Your Problem-Solving Skills

An often heard benefit of learning how to code, is that learning coding improves your problem-solving skills. But how does that work?

The activity of coding, and building software, is essentially solving one problem after the other. First, you gotta figure out what you’re going to build. You discover that you don’t have the required software. You try to install the tools, but you see an error message appear on your screen.

What do you do? You type the error message into Google and you start to read through potential solutions. You try a few of them, and use the results to refine your Google search. Finally, you’ve found a working solution, and you successfully install the required software. Neat!

This is problem-solving. Coders do it every day. Googling is part of the job description! And so is using other tools, like debuggers and logging, to figure out what’s going wrong in a program’s code.

Learning to code improves your problem-solving skills, because coding consists for a large part of solving problems. Finding out why an error or bug happens helps you understand how a system works, and that helps you prevent errors in the future. This accumulation of problem-solving skills and insights is what makes software developers valuable.

Build & Launch To Change Your World

If you look around in the App Store, you notice two factors that successful apps have in common:

The most successful apps solve one problem well

The most successful apps improve or automate a solution to a problem

An app is nothing more than a graphical user interface around the solution to a certain problem. A few examples:

PhysiApp helps physical therapists send their clients exercises, including videos, so they can spend more time during consultations on stuff other than showing how to do exercises.

HeavySet helps people track their workout exercises. It’s not more effective than just using a pen and a notepad, but it’s more efficient – and the app has a ton of features, like graphs and calculators, that a paper notepad doesn’t have.

Plantsome tells me when to water indoor plants based on plant type and size. You water plants more accurately, and (hopefully) don’t forget to water them, thanks to reminders.

When you break down software applications to mere solutions to problems, a mindshift happens. You can use coding and building apps to solve your own problems! You can either solve them entirely, or automate an existing solution.

When you combine this insight with the ability to enroll others in your newfound solution, you’ve found a powerful approach to changing the world around you. You can launch, promote and market your solutions to problems – your apps – and help others benefit from your work. And that’s pretty cool!

Learn how to build iOS apps

Get started with iOS 13 and Swift 5

Sign up for my iOS development course, and learn how to build great iOS 13 apps with Swift 5 and Xcode 11.

Browse Topics

Swift Sandbox

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.