Codementor Events

Why Tutorials Don’t Work For Beginning Programmers?

Published Mar 14, 2022
Why Tutorials Don’t Work For Beginning Programmers?

Introduction

Beginning programmers are inundated with the largest collection of information on the topic of programming that has ever existed. Many beginning programmers enter this information promise land with hopes that they will become great programmers by learning from people who already have the skills they want. This learning model promises so much to the consumers but, can it truly deliver?

The truth is that learning from the programming tutorials on Youtube is on its face a horrible idea because the content is not curated. Each tutorial is essentially the Bible of [Insert Language Name Here] according to some guy with a screen-recorder. There just isn’t an effective way for programming neophytes to know for certain what content is worth consuming. This can lead new programmers down a long frustrating road bouncing from tutorial series to tutorial series and never making any real progress on their dream of becoming a programmer.

Programming tutorials often provide the new programmers with simple syntax examples of sometimes complicated computer science topics and some of the explanations are so vague and limited that a new programmer has almost no hope of knowing when it is appropriate to use the tools he is being given by his virtual instructor. Instead what programmers end up with is the illusion of learning by mimicking the keystrokes of the instructor and getting a successful compilation at the end.

The Illusion of Learning

Barbara Oakley, one of my favorite learning Guru’s describes this phenomenon in her book “Learning How To Learn”. As humans we deal with a great number of stresses and competency stress can be one of our most troubling stressors. One of the worst problems with tutorials is the idea that following a typing exercise to its completion, pressing compile, and getting the desired outcome in the console window is a success. That is only successful if your goal was to compile the example. Did the content provider explain what you were doing? Why you were doing it? Were you listening and processing or simply typing? Getting to the goal of compiling code gives us a sense of competence but, if that is all we are doing or all the instructor is giving us to do we are failing at our greater goal of learning to program.

The zombie mind is a dangerous foe. The zombie mind is another phenomenon where the brain essentially sets itself on cruise control when performing a mundane task. A mundane task like typing stroke for stroke the letters you see on the screen during a tutorial. The zombie mind helps us avoid our feelings of inadequacy by allowing us to tune out what we don’t understand and get the cheese at the end of the maze with minimal confusion. Unfortunately, clarification of the things we find perplexing is a big part of learning.
A Failure to Communicate

Another big problem with Tutorial based learning is that it fails to connect the beginning learners with a community to facilitate their growth. I have learned more about programming through conversations with fellow developers than I have from any tutorial, college lecture, or book. If you aren’t talking to other programmers you are missing a golden opportunity to accelerate your learning. Tutorial-based learners also can find it complicated to engage with other programmers as they often lack the vocabulary and conceptual knowledge to properly express their questions or formulate answers for others. This is where books can be exceptionally helpful to new programmers. Books particularly college textbooks do a really good job of helping familiarize learners with terminology. I would also recommend that new learners seek out blogs and forums to help them become conversational on software engineering topics. This is actually something that even the best programmer sometimes struggles with. The ability to reach out to others to be understood and to understand is one of the best skills a programmer can have.

Why You Are Doing It Wrong

The biggest problem with tutorials is the beginning programmer. In the beginning, the self-taught programmer often is unaware of what steps to take to become proficient with the language of their choice. Most of them don’t ever delve into the underlying computer science concepts that bind these languages together. They are syntax hounds with only a surface understanding of the semantics required to create eloquent expressions. They not only lack the perspective to determine what is quality information but, in most cases, they fail to realize the limitations of the tutorials.

Tutorials have a place in your programming journey but, their use is limited…very limited. Tutorials are certainly not a complete learning experience. Tutorials are meant to provide the learner with a simple example of the implementation of a computer science concept in some programming language. That is all. In that sense tutorials can be a solid part of your learning experience but, they are tantamount to dipping your toe in the ocean before sailing the Seven Seas. A complete college lecture on a computer science concept is only wading knee-deep. A tutorial even at its best cannot hope to be more than that and you cannot imagine it to be more. The only value a tutorial has for a programmer is that it can facilitate project-based learning or clarify academic study with colloquialisms that the learner understands. In short dipping, your toe in the water only matters if you intend to undertake the full journey. If you’re not actively working on your own code you aren’t making progress. If you aren’t constantly bumping your head on the ceiling you won’t ever have the breakthrough you are hoping for.
Are There Any Good Ones?

Well, the simple answer to this question is…Yes! There is plenty of good content on the internet for learning programming. So what makes a good tutorial? First things first look for content providers who do more than have you type along. The type along is the weakest part of the content and often serves as a distraction from the information.

The ideal format for a tutorial series is that each video will begin with learning objectives. What the instructor plans to teach and then context. Before you being to learn about a concept you should have an idea of what problems you can solve using the information you are given. You want to see videos with multiple examples of problems that can be solved and you would also like to have access to the code used in the video so you can tinker and learn from it after the video presentation. Most of all you do not want to be concentrating on keystrokes while code and concepts are being explained. When the instructor is done he should give you some requirements for a similar project that you should be able to create on your own given what you have learned.

This method provides the beginning programmer with a few things that are beneficial. One is a clear expectation of the information to be presented. A clear presentation of the information without distraction. A demonstration of how the concept can be applied to solve problems. Finally and most importantly a task by which they can measure his competency.

Discover and read more posts from Wynne Nicholas
get started