The Buzz Behind Coding
Many schools, employers, and individuals are fascinated with coding skills. The assumption is that there are lots of coding jobs. Maybe that isn’t true. (See this NY Times article: Where the STEM Jobs Are And Where They Aren’t.)
What there are – and always will be – are problem solving jobs. Programming is essentially a problem-solving playground with nearly instant feedback. That’s what makes it important for schools to include coding in their curriculum. In a makerspace, that focuses on physical computing – the kind that makes computers move, light up and make noise!
Computers are fairly dumb. They need to have the solution to problems described in minute detail and in a language they can understand. Programming languages have evolved since Fortran (Formula Translator) was invented in 1957, but the nature of programming languages hasn’t changed. The programmer needs to write instructions which can be interpreted by a computer in a very detailed way. Oftentimes this includes arcane punctuation rules, formatting requirements, and the use of keywords and strange symbols. Accomplished coders have a well-deserved reputation for being ‘different’ than the rest of us!
What every good coder has in common is problem solving skills. To be more specific: the best coders know how to ‘deconstruct’ a problem into its many parts and translate that knowledge into the syntax and sequence of a solution in a particular programming language.
Wikipedia estimates there are about 700 programming languages. They suit the needs of about every purpose. Old programming languages like Fortran are good for mathematical algorithms. Newer programming languages like Python are good for Artificial Intelligence applications. Some programming languages are adapted closely to the machines they control; like Assembly and C. Some are good at image recognition, natural language processing, big data and machine learning.
They all have one thing in common: problem solving.
Schools should pay attention to this common theme. Regardless of how the economy and trends change, problem solving skills will always be in demand. There is no shortage of problems in our world to solve!
The object of a coding class may not be to learn the language or to write programs so much as to practice the ‘Art of Computer Programming.’ This skill is transferable to multiple careers – some of which we can’t even predict will exist in the future. (Note the use of the term ‘art’ to describe skill here.)
Programming a computer also takes discipline and persistence. As I mentioned above, computers are pretty dumb. You need to speak clearly and precisely in their language. You need to organize your instructions into bite-sized pieces it will understand. You need to define a ‘flow’ of processing with decisions and branches the problem-solving method employs. It’s often important to store information of different types and be able to recall it.
One method of accomplishing this is the flowchart. This simple tool reduces the programmer’s intention into a graphical rendering of the steps to accomplish it. The same method is useful in business and production planning, making decisions and understanding all sorts of complex systems.
Don’t let ‘coding’ be the purpose of your coding class! If you want to develop problem solving, persistence, creativity and critical thinking skills among your students, coding is one of the most effective (and fun) ways to do it. 1st Maker Space can help.
By Kim Brand, Co-Founder and Technology Advisor
1st Maker Space