Essential tips for students when learning to code

When I accepted my first teaching position for Creative Coding in the winter semester of 2018, I didn’t realize what an adventurous journey I was embarking on. I couldn’t wait to stand in front of students in my own seminar for the first time. At this point, I had been dreaming of teaching at a design university since my time as a design basics tutor (2010-2011) and had spent weeks preparing for this seminar at Rhine-Waal University. I called it “Programming Posters” and it was basically about implementing typographic poster motifs with Processing. In this course, which was taught in English, there were students from a wide variety of countries such as India, Turkey, Greece, England and Russia, which I found particularly exciting. This experience showed me a completely different side of the highly exciting world of Creative Coding, and I am very happy that I am able to devote my energy to this topic today.

Since 2018, I have given almost a dozen of these courses at different universities and have also led workshops at universities in different countries such as Switzerland (écal Lausanne) or Scotland (Glasgow School of Art). In the process, I have encountered the same problems with my students over and over again, and I have learned an incredible amount myself by observing my students in the learning process.

I have come to realize that learning programming is an enormous challenge for the majority of my students, particularly at the beginning. However, it is also the case that many students give up because they do not know how to face certain problems in the learning process.Therefore, over the past few months, I have been formulating suggestions and tips that I hope will assist in overcoming these obstacles.


Discover your Why

You have chosen to discover Creative Coding – Congratulations! This field has plenty to offer and plenty for you to win. However, if you have never dealt with programming before, you may feel like you are facing an enormous hill right in front of you. 

Let me start by asking you an unusual question. How would you summarize why you are interested in the topic? Once you have answered that question for yourself, you will be rewarded by a huge additional motivation boost! 

Take a look at the following list with examples of thought-provoking impulses:

  • Maybe you have seen a work of art, that was created using Code?
  • Maybe you want to learn how to create your own design tools?
  • Maybe you want to explore what opportunities open up for you as a designer when you learn how to code?
  • Maybe you want to secure a well-paid position in an agency as a developer?
  • Maybe you are already familiar with coding itself but want to explore different, creative accesses to coding?
  • Maybe you are a digital product designer and want to learn how to develop interactive prototypes?
  • Maybe you are interested in complex design systems and are looking for an appropriate tool?

My appeal: try to write one or two sentences on what drives you personally. Take your time with this task and really dig deep. Reflect on the right words and change them as often as necessary, until the result feels truly right to you deep down. 

This appeal is strongly inspired by Simon Sine, especially his book Start with Why and his legendary TED-talk.


Learn the basics

When I was studying design in Münster in 2010 I was also taking piano lessons with a friend, Cosima, who is a very successful jazz pianist, songwriter and singer. She taught me that the true art in music lies in mastering the small elements: the intervals, scales, chords and chord progressions. One advice seemed especially absurd to me at first. Cosima told me to practice the D-minor scale over and over again, until I could truly feel it. It took some time for me to find the wisdom in this exercise. Where some people see only a necessary mechanic finger exercise, others experience a simple scale as a true musical adventure, during which the smallest elements of music manifest themselves and everything suddenly appears clear and connected.

This is how I like to look at coding. I know now that every repetition of universal principles, be it the phrasing of logic, loops or even finding explicit variable names, contribute to a long-term internalization. To truly master these basics is an artform, an artform that requires countless hours of practice, but at the same time reveals true beauty. 

The basic principles of coding with Processing 

  • Variables
    • Variables save specific information of different kinds. Processing provides you with types of variables for text, numbers, Boolean values (true or false), colors and much more. 
  • Loops
    • Loops are executing a defined code block multiple times. In the context of creative coding, they are mostly used to distribute a variable number of elements on the format in a controlled way.  
  • Conditional Statements
    • Conditional statements enable the execution of certain code blocks according to dependent conditions. 
  • Functions
    • Functions enclose functionalities within programs in small units. This enables their reutilization without having to rewrite the code again and again. 

Climb that wall

To learn Creative Coding is a huge challenge for most of my students, especially at the beginning. During the learning process there is one magical threshold which needs to be mastered, after that the effort declines rapidly and surprisingly, and the advantages and possibilities of creative coding become visible and palpable. From this point forward the students experience a kind of paradigm shift. I like to compare this phenomenon to climbing over a wall. As soon as you are on top of the wall, you can see the new territory. As a teacher, my job is to help my students climb that wall.

My appeal: Take a leap of faith and trust that you will be able to climb the wall. Try to imagine how it would feel like to have achieved this goal. Trust the process and take the time needed to reach your goal.


Overcome the trauma

I am guessing that you have probably taken a course in high school that put you in touch with coding in one way or the other. If your recollection is one of a boring, cold and technical topic, you share a similar experience with a lot of other participants in my classes. Now it is my job to help you overcome this trauma and convince you that the opposite is true. 

Creative Coding is an innovative approach to use code in a creative way. It’s not about solving boring, logical problems without practical benefits, but about a creative act which turns out exciting visual results even at the beginning. With each step forward you are creating new possibilities and tools that go way beyond the limits of proprietary software. This is why Creative Coding is hugely in demand within the design sector. 

For some of my students the entry into this field may seem very technical and might also bring back some unpleasant memories. I can assure you that this perceived discomfort will decrease dramatically after only a couple of weeks into the learning process. 

My appeal: give coding another chance and overcome the coding trauma from earlier days. I promise, it will be to your benefit if you keep at it.


Start with Processing

The variety in suitable technologies for creative coding and generative design has grown rapidly over the past years. Unfortunately, this variety can be very confusing, especially for starters in this field. If you want to find your own way, you face the challenge to choose one technology or one language, the purpose, possibilities and limits of which you can only assess with a lot of experience. Even this first obstacle can cause people to give up on exploring creative coding.  

The basic principles of the creative coding technologies tend to resemble one another. This becomes clear after looking closely at these technologies. With growing expertise, you develop the ability for a kind of bird’s eyes view, which will enable you to see the basic principles connecting all the different technologies. This realization can help to diminish the fear of making a wrong decision. 

For many different and valid reasons, I recommend Processing for the introduction to the world of creative coding. 

  • Processing has become very popular in the 20 years since its development
  • The possible applications are divers and not limited to a certain medium
  • Processing has its own editor 
  • The worldwide community is huge. There are multiple forums and Facebook groups. 
  • Processing has a complete documentation, which can be searched comfortably and which is indexed in Google, including all subpages. This makes troubleshooting much easier.
  • The possibilities for processing data are unlimited
  • Rendering of images and animation is relatively easy which simplifies sharing visual work on your own website or on social media
  • The syntax is easy to read 
  • A multitude of libraries expands the basic functions when necessary
  • The transition to p5.js and the world of web technologies is very easy
  • There is a huge range of Youtube-Tutorials which simplify autodidactical learing

The graphic on the right-hand side illustrates the learning process for Creative Coding which I developed. The red arrow stands for the learning of the basic principles using the language Processing and consequently leads to a point from which different paths can be taken.

My appeal: Don’t get intimidated by the large number of existing technologies. Processing will help you access Creative Coding easily and quickly. You will acquire the basic principles fast and efficiently and lay the groundwork for getting acquainted with any new or different technology at any given time later on.


Learn to fix problems

During the learning process you will face many problems and mistakes which you will need to solve mostly on your own. The ways in which you choose to do that will decide whether you will be successful. I made many mistakes at the beginning. I used to post my questions including the respective code unfiltered in different online forums. This in the end led to me being an unwelcome guest and even almost losing my account. In general, posing a question in a forum should be the last resort after everything else failed to yield the desired result. This applies especially for beginner questions, since these have unanimously been asked and answered in one way or the other before. In the future, proceed as follows when trying to find and cure a mistake:

Step 1: Isolate the mistake 

Delete all lines of code that have no connection with the mistake. Isolate the problem and see if this already helps in detecting the solution. 

Step 2: Describe the problem

Try to summarize the problem with as little words as possible and type it into a google search. Remember to indicate the language that you are using. Scan the results to find any possible answer. When it comes to Processing, the best answers can be found in its official forum. 

Step 3: Ask a tutor

Ask a person familiar with the technology to take a look at the problem. These persons can be fellow students, also tutors or teachers. 

Step 4: Ask the community 

As a last resort, post your question into a community forum. Draft your own post, in which you describe your problem in a succinct way. You should include the isolated code fragments. 

Oftentimes the simple act of putting your thoughts into a coherent context suddenly makes you see the solution yourself. 

Post your question in the right forum and wait, if someone gets back to you with an answer that helps you along.  


Avoid shortcuts

The range of tutorials and free code fragments you can find online is huge and generally very helpful. Youtube channels such as The Coding Train by Daniel Shiffman are offering a wide range of materials which you can use efficiently for working on your projects. Problems start to appear when you use the unfamiliar code without grasping it thoroughly. Especially connecting multiple different fragments can lead to complex errors and problems which can be almost impossible to solve. This in turn can – understandably – result in frustration and loss of motivation. 

My appeal: Question your motives. Do you want to learn how to code or do you just want to create an impressive image? The latter can be accomplished much easier with other tools. Go back to things you are already familiar with and repeat them as often as necessary until you have truly internalized them. This is the only way to stock your imaginary tool kit. Use tutorials and external sources only to build on your already existing knowledge. And remember: Repetition is key! 


Two Perspectives Podcast – Episode 3: How to get started and stay motivated

This article is the subject of an episode of my podcast called “How to get started and stay motivated”. You can listen and subscribe to the podcast on all popular platforms.

Spotify / Apple Podcasts

Published by Tim on Thursday August 12, 2021

Last modified on August 25th, 2021 at 17:35


Related

How to breathe life into an old computer with Linux/Ubuntu

Writings

VideoPortrait by Nils Heck

Films Stories

The Hidden Benefits of Learning to Code

Philosophy Stories Writings

Creative Coding Manifesto 2021

Films Philosophy Stories Writings

Thoughts about Color

Writings

My Story (part 2 – told at Taaalks Conference 2020)

Stories Talks

Learnings from the Bauhaus about Art and Technology

Writings

The Magic Triangle

Tutorials Writings

My Story (Part 1)

Stories Writings

How to pick the right technology?

Writings

Getting started with Creative Coding

Writings

4 alternative, free and well-curated resources for images, fonts and data

Writings