Traditionally the phrase ‘Hello World’ is used as a function by programmers to output the phrase to the computer screen. This phrase is used when testing systems and learning new programming languages for the first time. This phrase ‘Hello World’ is more apt than ever before in these uncertain times, especially if we link these times to the conundrum of how we get learners to continue learning how to program, without an educator in front of them. A simple solution which commonly springs to mind is to get learners to visit a coding website and follow some simple tutorials, and although this may initially work, there is a lot more involved if we want learners to become successful programmers and gain something worthwhile from the experience.
A successful programmer is someone who can ultimately apply computational thinking when writing and developing code. Computational thinking, in very simple terms, involves the process of breaking down problems into smaller problems to solve them. Some may argue that this process needs to be taught, but in fact it can be nurtured through conversations with the learner. For example, a good starting point with learners is to ask what they would like to program and create. Often learners will say I want to create “X, Y & Z”, which usually involves creating a social media platform bigger than Facebook or creating a supersized computer game! Although this ambition is to be admired, it is important that we encourage learners to be patient and realistic with what they would like to create.
Learners need to appreciate systems, such as social networking sites, are not created by one person. They are developed by teams of extensive staff, who may be dotted across the globe. Therefore, when we encourage learners to code, we should emulate this way of working by encouraging learners to work with their peers and create systems that further develop their coding ability and computational thinking. For example, if a learner wants to develop a mobile app, why not encourage them to work with a set of peers (in an online environment if social distancing is taking place) whereby one peer works on the back-end of the system in terms of the coding required, while another works on the functionality of the system, ensuring it is robust. A further person could then work on the front end of the system, focusing on how the graphical interface looks. This way of working will help learners to gain a better understanding of how the real-world works, whilst at the same time gaining the experience and benefits of working in a team.
Some learners may gain their initial programming skills without the presence of an educator and may have learnt this from online tools such as tutorials, moocs and videos. Although each of these sources have their merits, caution needs to be applied when learners are choosing which source, they would like to utilise. For example, when choosing one of these sources, learners need to consider if the content is up to date, for example is the programming language used the same one as the user has installed on their computer system, and is there support available if it's needed? Also, is the support environment moderated in terms of safeguarding? Beyond that, we need to remember that whichever source of learning is chosen by the learner, the source should be just a starting point to help them engage and build up some initial confidence and knowledge. Once the learner has that, they should then be encouraged to use these skills and develop them elsewhere.
Developing these programming skills away from resources such as moocs, tutorials and online videos may seem a little odd to pose as an idea. However, if we want learners to really learn how to code successfully, we should apply the sandpit analogy to this situation. When a child goes into a sandpit for the first time they are informed of some basic rules. Similarly, with learning a programming language, learners are informed of how the language works in terms of the standard conventions they should follow, and the rules that exist. However, when a child is left alone in a sandpit, they explore for themselves, engaging in an activity of not just exploration but also of working out what they can build and develop. This analogy needs to be applied to how we encourage learners to program; learners need to be given space and encouragement to apply and develop their programming skills in a way which suits them (providing the programming activities they carry out are both ethical and legal). To do this, learners need to be nurtured and coached.
It is a misconception that nurturing and coaching a learner how to program, requires a person who knows more about programming than the learner. Yes, if you know more than the learner initially it can help, but you should not be afraid of the learner becoming the master. Therefore, the best way in which parents, carers and educators should help learners to develop their programming skills is to have conversations with learners about what they have done. To ask them in these conversations why they have made certain decisions, and most importantly pose constructive questions, asking them what they are going to do in order to address any limitations their creation may currently have. Within these conversations, expectations need to be kept realistic as learners need to be engaged with what they are doing, and they need to enjoy doing it. If learners do not enjoy learning how to code, how can we expect them to become a successful programmer?
We need to encourage as many learners as possible to try and learn how to code and become successful programmers. Just like with anything in life, some will be better at it than others, and that is ok. Learning how to code is not just about becoming a successful programmer, it is about developing a range of transferable skills, such as: self-motivation, discipline, exploration and most importantly resilience. Resilience is a key skill which learners need more than ever in this changing world, a skill which will help them embrace the new digital world they will soon face when this crisis is over and to which they confidently say ‘Hello World’.