We often run into the misconception that coding is first and foremost logical deduction and mathematical drudgery. Those same people probably think that composing music is just maths. Musical hobbies do develop mathematical skills, but music is so much more.
Just like composing or writing, coding is first and foremost artistic work. Some mechanical skills are naturally needed, but one should not focus on them too much.
Only the fundamental skills are mechanical
When talking about programming, one often mentions skills like logical thinking, mathematics, deduction and problem solving. They are the fundamental skills that a programmer needs to realise their creative vision.
Correspondingly a composer must understand scales, harmonics, time signatures, and who knows what else, to be able to compose. But creating a musical composition is much more creative than repearing intervals on a piano.
And a literary author must know letters, hyphenation, punctuation and such to be able to write. But creating a novel or a poem is clearly much more creative that demands much more than good grammar.
These mechanical skills are not unnecessary – they are absolutely needed. But they are not a goal onto themselves. No-one writes books to be able to get good at writing the letter A. And no-one codes programs to get good at conditional statements. Drawing the letter A, punctuation rules, conditional statements and writing functions are the fundamental skills that develop while one is working on the “real” outcome, which is the reason for the entire activity.
Coders are artists
While coding requires skills we know from natural sciences, programming itself is creative, artistic self-expression. Whether one is creating a digital story about a biblical event, a learning game about geography, or creating puzzles for an escape room, only ones imagination and skills are the limit.
But unlike in natural sciences, where each problem typically has only one correct answer, there is no single correct way to accomplish something in coding. Just at the level of code syntax a programmer has endless degrees of freedom to create the needed functionality in very different ways. Add to this all the multimedia, storytelling and aesthetic choices that are clearly artistic as they are apparent in the final outcome.
Source code is not visible to the user, since it is under the hood. But even code craves creative genius. Ask a professional coder if you don’t believe us. Even they will understand phrases like “beautiful code” or “surprisingly clever solution” or “a novel pattern”. Such vocabulary reveals that even at the level of code lines a coder can create basic routine stuff, or go beyond they own and their colleagues’ normal fidelity.
Challenge yourself and learn
A comfortable way to learn those mechanical fundamental skills is to pose a suitable challenge to oneself. That means choosing a project that is close to one’s skill limit. One has to push a bit to get through it. Friends, teachers and supporting materials of course will be of tremendous help. But the clue is that when a learner is pushing their limits while striving for a goal they have chosen, they will vastly develop their fundamental skills and also their ways of thinking that allow them to keep getting better – be it at coding, composing, writing or playing football.
Code School Finland’s all learning materials are based on project learning. Students are given shared goals by also freedom to choose their own individual targets, methods, and materials.