Oftentimes, we can get so caught up in a trend that we don’t take a step back to understanding why we’re doing what we doing. Over the past several years, there has been a major push to teach kids how to code. The trends pointing towards a more technical future have never been clearer. However, that does not necessarily explain why we should teach kids to code or what they are actually learning.
How Do Computers Solve Problems
In many ways, the focus on teaching kids how to code should be much more focused on computational thinking. Narrowly focusing on coding or a specific programming language like Python may give kids a false sense of security.
When you abstract one level higher and focus on learning how computers solve problems, that knowledge is much more durable. One of the greatest benefits of computers is that with the right programming, they can solve similar problems over and over again at a much more accurate and repeatable rate than humans.
Let’s explore an example. If you were doing simple arithmetic, you may not need to utilize a computer. However, if you had a massive spreadsheet of a company financials that you needed to analyze, then it makes a lot more sense to utilize a computer for this task. At some point, a group of developers wrote a program to make entering, compiling and analyzing data easier.
Similarly, going forward, there are going to be any number of problems that are perhaps better solved by computers than by humans.
How Do Developers Give Computers Instructions
If we agree that there are some problems that are better solved by computers, then the question becomes how does this translate into reality.
Enter developers. Developers are skilled at figuring out how to write programs in various languages so that computers can best understand these instructions. Developers spend time learning a language and then writing code in that language to accomplish a specific task or set of tasks.
The way that these tasks are often written is through the use of an algorithm or set of rules that the computer follows based on certain use cases. If we go back to the spreadsheet example, a developer will write lines of code to make sure that whenever you add a set of numbers you always get the correct result.
However, they also need to consider what might happen when data is inputted that is not expected. For example, how should the spreadsheet treat letters that are entered as part of a numeric calculation? Or, how should the spreadsheet respond if someone enters a number with several decimal points?
The quality of the logic or the rules that the programmer makes determines the utility of the program. If every time you add up 5 numbers and the computer gets it wrong, that is not going to be a very valuable program. However, if your computer can add a series of numbers over and over again and always result in the right answer, then there is a high level of usefulness for that program.
Why are some developers better at giving computers instructions?
Once you fundamentally understand that computers are useful for solving similar problems repeatedly and developers create the instructions for the computers, then the question becomes how do I get good a programming?
Similar to science, math or really anything in the educational field; you must practice. Once you have an understanding of the structure, syntax and framework of a given language, you have to invest the time in writing programs.
You can start simple and create programs that automate very basic tasks. As you gain confidence, you can expand outwards and try more complicated programs. The reality is that you are only going to get good a programming when you invest the time to develop your skillset.
Often you will find people who have spent a very limited amount of time programming give up because it’s too hard. There is no doubt that learning a new skill can be challenging. However, just like you build an understanding with spoken languages by learning and practicing; a similar exercise must be done with technology based languages.
While the interest in kids coding programs has never been higher, its important to truly understand what is the purpose behind what is being taught. Although there are programs that focus on learning a specific language, the true skill is learning and applying computational thinking in service of solving problems. If kids can learn this during their formative years, then they will be truly setup for long term success.