Everyone talks about "thinking like a programmer" and "learn problem solving, not code", but it's not easy to go from those good intentions to actually teaching (or learning!) these abstract learning objectives.
This chapter contains a list of skills, exercises and resource to help you bridge the gap between good intentions and good coding.
And what is programming anyway? Before you learn it, you should have some idea what it is!
Programming is giving a computer instructions written in a language it can understand, in order to solve a problem you (or the company you work for) have. We don't necessarily need computers to solve problems, but we use them because they provide several benefits:
- They are fast
- Cheap to use
- Can work 24/7 (as long as it has power)
This is important to note: a computer is a tool
we use to make our lives easier.
{% hyf-youtube src="https://www.youtube.com/watch?v=rRSD128KWIM" %}
{% hyf-youtube src="https://www.youtube.com/watch?v=92TaQRBwPSs" %}
In order to use this tool, we need to talk to it in a way it understands (programming language) and give it commands on what to do (the act of programming). However, despite the power a computer has it is not very smart. It can't do anything without being told exactly what it needs to do to solve a problem, step-by-step. This is why we learn how to program: in order to tell the computer to do what we want it to do.
Go through the following resources to learn more about what programming is:
{% hyf-youtube src="https://www.youtube.com/watch?v=3tWMQ3ZMjbg" %}
{% hyf-youtube src="https://www.youtube.com/watch?v=kEjCfsrotAM" %}
As a software developer (synonym to 'programmer' or 'software engineer'), you will write these instructions in order to create 'software'. Look at the following video to get a better idea of what software is:
{% hyf-youtube src="https://www.youtube.com/watch?v=MSA3WsGeTNI" %}
Programming is done using a programming language. Why do we need a language to communicate with the computer? At its most basic level, a computer operates based on 0's and 1's: the 0 means 'off', and the 1 means 'on' (think of it like a light switch that either turns the light on or off).
Smart people decided to make working with this easier to understand, so that a lot of people can more simply communicate with a computer. This is how the development of programming languages started: by defining a vocabulary, grammar and syntax to put more organization to the 0's and 1's, we can more simply communicate exactly what we want to computer to do.
{% hyf-youtube src="https://www.youtube.com/watch?v=EGQh5SZctaE" %}
There are various languages, each made to fulfill a certain need. For example, Microsoft developed a language called C# in order to make applications for computers that run a Windows operating system. The language of C# is able to easily "talk" with the preexisting software.
You will be learning JavaScript, a language that has been made to "talk" to web browsers (Google Chrome, Mozilla Firefox, Safari, Internet Explorer, etc.).
If you would like to know more, have a look at the following links:
If you just can't get enough, here are some extra links that mentors/students have found useful concerning this topic: