Learn How To Think (Code)
In many articles and education, there have been many statements similar to "You need to learn to code" or "Coding is the future". And I will not be arguing those statements as I agree that the standard principles of coding is critical now and will be even more important in the future.
However, when you talk to almost anyone over 30 years old, a typical response is, "I wish they taught coding when I was younger." The response somewhat indicates that if you are not a child/teenagers, you do not have the capability to learn how to code. While children are more apt to absorbing knowledge and learning than their older counterparts, it does not mean that older individuals don't have the ability to learn new things. And if that were true, it would certainly be depressing.
The importance of coding isn't just about the ability to develop software, it’s about a certain way of thinking. This includes logic, algorithms, languages, and modeling, providing a different perspective on how to view and interpret most situations.
Even if we’re not teaching this subset of older people how to code, there is great value in teaching about solving problems. There are two major factors when attempting to solve a problem - knowing what the problem is and what solutions are viable, possible, or impossible.
Sometimes the best people to solve problems are the ones who live it. It is easier for people who encounter the problems to find the fundamental root of the problem; they may know outside factors and other conditions that may be hidden at a higher level.
With those individuals with more years on them, they have faced more issues than those younger than themselves. The older generation have a perspective built on years of experience. They may also have different issues.
In looking at the problems, using the thought process of coding can be beneficial. It forces you to think of the overall problem and any outside factors that you may not have considered before (e.g. systemically). It also forces one to isolate the problem into logic and various models.
Without the knowledge of what is possible, a critical limitation has been put on the solution; this is particularly true in such an advancing technological environment (and it isn't going to slow down anytime soon). Knowing the basics of programming and logical thinking can greatly help understand what is possible in creating solutions to problems. As with the real world, coders are presented with various constraints/limitations that are beyond their control; being aware of these are crucial in how one sees the problem.
Also, learning the basics of software can also greatly improve understanding current/future technology. A more informed perspective can be established. For example, with the emergence of “big data”, it is important for every to know how their personal information is used, whether for something they approve or not (e.g. privacy).
Communication between people is easier when you can empathize with how one another think. This includes the use of technology. The younger generations can watch how their parents use technology and gain another perspective.
One difference between generations is how they go about using technology mainly the pace of using it. The younger generations are more “agile” in using software; they tend to dive right in and explore what features the application has. If they do something wrong or unintentional, they know it can be fixed and figure out how to fix it.
During my time at the library helping older generations, I’ve noticed that they tend to be hesitant and want to make sure they are going down the right path all the time. Rather than click on things to see if it may lead to what they want, they tend to request for assistance to confirm what they are doing is “okay”. I assume this behavior is due to the lack of flexibility in software in the past and how non-software tends to be (e.g. it’s better to get things right the first time; mistakes may result in significantly more effort/time). I found it better to be less hands-on in showing people how to do something; that way they can see that it is okay to go “off track” and that mistakes are fixable. It’s more about changing the mindset of using software rather than teaching them how to use technology.
Coding doesn’t have to be about developing software. More importantly, it teaches you how to think.
Note: As with the last post, this is a work in progress. I would love to hear your thoughts, whether that be in comments or a conversation in person.