Teaching NOOBS: 5 Mistakes Software Devs Make
If you’ve ever met a software engineer, you probably agree on the following: (i) they’re extremely intelligent (ii) they notice EVERY LITTLE THING (iii) if you ask them 1 question, they’ll give you 10 different answers.
Engineers are known for their patience and natural ability to problem solve, so you’d think this would make them excellent teachers, right? Not always. Many software engineers, especially if engineering is their core background, operate at such a high level of technical skill, they can forget that even simple concepts can be completely foreign to new coders. And often their brilliance in any given subject makes us feel like mere mortals. As a relatively new non-techie front-end web developer (FEWD), I have seen these mistakes happen all too often. As a fewd student, I’ve been the one neck deep in confusing waters; as a teaching assistant, I’ve seen classes full of students just trying to figure out how to download a zip and open it in a text editor. Below are five mistakes I think software engineers make when teaching beginners. Though most of my examples will relate to teaching a fewd course, I think they are relatable to all areas of code!
- JARGON, JARGON, JARGON.
DOM, BEM, VIM, Node, React, Angular, Git, push, AJAX, API, CMS, CRUD, Babel, ECMAScript, JQUERY, JSON, npm, clone, repo.
Teachers, I will give you $100 if a newbie coder can tell you what any of this means. Think this is a losing bet? You’re right!
Teachers, I get it. Day in and day out you’re used to throwing around these terms with colleagues that understand you. Keep things simple with your students. If there are more than 2 acronyms in each paragraph of speech, that’s two too many. If you notice, you’re a heavy acronym user, consider asking your TA or another designated student in class to call you out immediately to define your words.
2) THEIR “REAL WORLD” EXAMPLES ARE NOT RELATABLE.
I had a great FEWD teacher that once tried to demonstrate conditional code by asking the class how a radiator worked… Mind you, this was a class of mostly 25 year-olds and our answer was collectively “What’s a Radiator?”
3) THEY FOCUS ON THE DETAILS INSTEAD OF THE BIG PICTURE
I’m sure you’ve heard “syntax, syntax, syntax.” Is code syntax important? Of course! Is HTML indentation more important than the content of the code? Absolutely NOT!
As a student, I found that I would start of asking a question about content inside a div or a span tag and end up with a lecture on proper alignment. If your students are eager to solve a content problem, that is priority! Don’t encourage form over substance unless it’s impeding the code from actually working. Keep the focus on “does it work?” instead of “does it look good?,” at least in the beginning.
4) THEY FOCUS ON THE HOW AND NOT THE WHY
I was in a class once where a teacher instructed the class to download a zip file, save it onto the desktop, and put all related files into that folder. Then he proceeded to continue on with the rest of the exercises. Toward the end of the class, half of the students were complaining that their website were not rendering picture files etc. I’m sure you can guess the reason why. However, because the teacher had never explained the importance of putting all related files into a single folder that the browser can find, a lot of students dismissed it.
Teachers, explain EVERYTHING. Instead of waiting on your students to ask the questions, use the methodology of the ‘five whys’ upfront to anticipate the gaps.
TEACHER: We are going to be talking about css frameworks today. Frameworks are helpful and you should use them when necessary.
Why? — Because they are helpful libraries with built in pieces of code that will help you build sites faster
Why?- Because you don’t want to have to repeat yourself when you code.
Why?- Website building can be complex and you want to save time to work on the more complex parts
5) TANGENTIAL THINKING
We’ve all met someone who starts off talking about browser capability and ends up giving an hour lecture about the future of artificial intelligence. Or tells you about 10 plug-in packages that are necessary to install to your text editor. I get it, you’re excited, eager to teach, and you want to introduce your students to every cool, untouched part of tech. However, try to zoom in on the conceptual matter at hand. Teaching code should be like making a pizza. Pizzas can be made with 100 different toppings and they all add a different flavor to the end creation. BUT, what you want to impart to your students, is that every pizza needs to have a solid crust.