…because some thoughts are worth remembering
My friends asked what disciplines would help develop critical thinking skills for their child. A quick answer would have been STEM (science, technology, engineering and mathematics), but I didn’t feel it had to do with a particular discipline but rather an approach to the discipline. It’s not a guarantee that high school biology courses will develop a student’s critical thinking skills, because one can get by approaching the science as a large volume of information to be memorized. Given the right teacher and the right mindset for the student, critical thinking can be and should be developed through various disciplines from natural sciences and mathematics to English and political science.
Computer programming definitely has potential to offer a child to create something while learning about logic through trial and error. Then came the next question, “What language is most used so I can direct my kid to learn that, to have the best potential for a career in computer science?”
My husband had a great answer, “The language itself is irrelevant. The best language is the one the child will use the most. Just like exercise, there’s no point unless you do it, no matter how great the exercise.”
Computer languages come and go. Different languages are favored at different times and for different purposes, e.g., programming at the server level vs. application level, or programming within academia vs. commercial mobile app development. We can’t predict what new languages will be developed for what purpose. While some domain familiarity is important, a solid foundation (as in the benefits of a liberal education) in programming itself, whatever the language, should serve the child well.
I then found this infographic that might give them some peace of mind (what is it about infographics that legitimizes the information we are presented??).
More fundamentally speaking, the seeds to computer programming can be sowed by asking kids why something happened, following through on “what if” questions, and not dismissing failures by encouraging them to do it over. Thinking through a larger problem and having to communicate why you are doing what you are doing are both necessary ingredients of an effective programmer, first and foremost.
Photo: Trucks are rented out for graduation celebrations where students are driven to each of their families and are offered beverages at each of the homes. They are decorated to reflect their specializations. Aarhus, Denmark. Here’s another: