How Learning to Code can change your Life
Tags: beginners, tutorial, career, webdev
Published: 2019-07-18 13:22:04

#### Coding is an absolutely valuable skill in today's world. Here's why you should learn it yourself instead of waiting for educational policy.

> "Everybody in this country should learn to program a computer, because it teaches you how to think".

That's what Steve Jobs, the former CEO of Apple and Pixar Studios, said in 2013. With this statement, he contributes to the current debate about digital literacy and the role of computer science in today's school curricula. But why do people even think it's important and how should one start to learn?

![Notebook with Lines of Code](https://images.unsplash.com/photo-1545670723-196ed0954986?ixlib=rb-1.2.1&auto=format&fit=crop&w=1952&q=80)

## Keep up with the Times
The debate about digital education and the need for digital literacy was a logical consequence of the ongoing process of digitalization in nearly every part of the labor market. In the past 10 years, many jobs and industries changed dramatically based on new technologies and their increasing affordability. In manufacturing for example, a lot of people lost their jobs due the implementation of fully automated production lines and robot technology. However, not only technical jobs are affected by the digitalization - there is also a lot of office work that got redundant and inefficient due the introduction of accounting system or automated record keeping.
 
In times like these, digital skills are more important than anything else when it comes to employability and therefore sustainable, future-proof education.

## Coding is more than Maths & Logic
Learning how to program computers, websites or apps is one of the most important skills of our time, even if you're not going to work in a field that's especially dedicated to technology or computers. Different from what a lot of people think, programming and software development isn't just a mixture of mathematics and some cryptic lines of confusing code. The job of a programmer is mainly about solving real-life problems with the help of given technologies. Jan Koum and Brian Acton, for example, solved the problem of expensive mobile bills due to high SMS fees by developing and providing WhatsApp, a mobile app that allows you to chat with others over the internet for free. In order to do so, they had to examine the problem closely and look for possibilities to not only optimize the current situation but also disrupt the way we communicate with each other. Today, WhatsApp is used by over a billion people worldwide and has completely replaced the SMS as a medium of communication.

![Whiteboard with Strategy Planning](https://images.unsplash.com/photo-1533749871411-5e21e14bcc7d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=751&q=80)

## Dealing with Problems
According to a slogan of the CODE University in Berlin, the key characteristic of a good problem solver is to *"fall in love with the problem, not the solution"*. That's a slogan that fits perfectly to the process of software development and its difference to the skills you learn in school or university. Take the school subject of mathematics as a quite accurate example. The way you solve mathematical problems in school is highly solution-oriented: first off, you learn a concept or principle like integral calculus and then you're given explicit *problem* sets that you must solve with the concepts learned before. In the field of software development, something like this is unthinkable. The main goal here is to solve a clearly defined problem with whatever technology or approach is the most suitable in this situation. You always keep the problem in mind, whereas school requires you to always keep the solution in mind without scrutinizing its plausibility. In programming, however, there are popular patterns of how one can solve a problem, but there are literally a million different ways, each with its different benefits and drawbacks. So, one can say that Steve Jobs is right when he speaks of programming as a skill that teaches you how to think because it introduces you to the concept of problem-oriented thinking and teaches you the procedure of problem-solving.

## School's Shortcomings
Today's school curricula, however, are still stuffed with the same subjects and methods students learned twenty years ago. Programming is still an optional skill that can be achieved in electives, while the understanding of digital processes and problem-solving procedures are hardly ever discussed.
This deficit in education is a huge topic in today's politics and a lot of changes are likely to come during the next decade. However, since there aren't as much computer science teachers out there as there's need for them, you should not assume that there will be a big change soon.

![Picture of average school lesson](https://images.unsplash.com/photo-1509062522246-3755977927d7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=804&q=80)

## Get your Hands dirty
So, what can you do at this point? How can you avoid the pitfalls of solution-oriented thinking and overcome the deficits of today's educational ecosystem? Well, just rethink the process of education in a problem-oriented way! As you may have recognized, thinking of your personal education as something school is responsible for, is like tackling a problem with a prefixed solution in mind. Are you sure that school or the education system in general are the perfect solution for your problem? I don't really think so.
Just do it the other way around and search for possible solutions to your problem, the deficit in digital knowledge. You will soon recognize that there are literally endless possibilities available that are so much easier, faster and more expedient than complaining about the school system and waiting for a change to come!


_Don't know where to start your journey in coding and software development? Well, here you go! These resources already helped thousands of people and I can highly recommend all of them:_

#### [freeCodeCamp](https://www.freecodecamp.org/)
The completely donor-supported nonprofit organization teaches you how to develop web applications by providing an interactive curriculum with challenges for over 1800 hours of coding, as well as hundreds of videos, articles and a forum. It's completely free to use!

#### [Codecademy](https://www.codecademy.com/)
Like freeCodeCamp, Codecademy offers an interactive curriculum that's free to use. Besides that, there's also a paid, extensive version with a broader variety of topics and more detailed insights. Other than freeCodeCamp, you can take specific learning paths like data science or machine learning.

#### [Harvard's CS50](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x)
This cryptic name is nothing less than the course name of Harvard University's *Introduction to Programming* class. CS50 combines lecture videos with weekly problem sets and is completely free. For an additional fee of €90, you can get an official certificate for your CV.

#### [hack.pledge( )](https://hackpledge.org/)
This is an online community of developers, offering free mentorship for the next generation of software engineers. You can sign up for free to either learn from experienced teachers or mentor beginners yourself. It's a new approach to connect experienced and new developers to create amazing synergies!

#### [Forrest Knight's CS Degree](https://github.com/ForrestKnight/open-source-cs)
The youtuber Forrest Knight composed a completely free computer science curriculum from a variety of online university courses. The curriculum is equivalent to the content you have to learn in an undergraduate computer science degree, including both technical and mathematical modules.

#### [Code+Design Camps](https://code.design/events/)
The nonprofit organization Code+Design arranges events all over Germany to teach young people the art of coding, designing and promoting their own applications and projects with the help of voluntary coaches. The entry fee is around €75, containing unlimited drinks and three meals per day for the time of the event.
No worries if you don't live in Germany - there are plenty of Hackathons like this all over the world! Just get in touch with you local coding community.

#### [Scrimba](https://scrimba.com/)
This interactive video platform is also free and again dedicated to web development. Through the combination of video tutorials and an interactive code editor, Scrimba enables you to directly apply the coding skills you learned from the video examples.

_What are you still waiting for? Choose one of the above mentioned courses and resources and get started right now - **it was never as easy as it is today!**_

 ![Concrete wall with mural that says: punch today in the face](https://images.unsplash.com/photo-1516062423079-7ca13cdc7f5a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1961&q=80)

*If you enjoyed this article, please share it with like-minded people and feel free to leave a comment or follow me on [Twitter](https://twitter.com/louisbeul). Thanks for your attention!*