Teach programming to become a better programmer
Are you bored with programming? Why not teach it?! Certainly it is one of the most rewarding feelings teaching someone programming and inspiring new leaders in our fruitful field. Who knows they might go onto building something that changes the way we live. And remember the good old saying, if you can’t do then teach! ;)
In this post I’m going to explain how exactly to teach programming, and how to relate to people who know nothing about programming. Techniques in order to get the message through, strategies in order to be a longer lasting mentor and lastly the mindset required.
Real world explanations
It’s not enough to speak in mumbo jumbo such as polymorphism, multithreading, typescript, blah blah these words mean nothing to people who don’t know programming. Start from the very beginning. What do they know? They know real world. So when explaining something like for example a Superclass, you can use something like a
vehicle being the Superclass and
plane etc as the Subclasses. People can relate to this.
Patience and reward
Teaching requires patience. It's crucial not to rush the process, however you must provide guidance at the right time. In some cases, people get annoyed or frustrated and just want to give up! This is the nature of problem-solving and programming as it requires persistence. The student will develop this over time. You can’t teach this through words, but you can elevate reward when a student gets a win, by genuinely celebrating the win!
Another key reason why we must have patience as a teacher is because everyone learns at different paces. People learn in different ways. So if someone is not getting what you’re saying, try rephrasing your words and approach it like it's a challenge on your end, not theirs.
Encouragement and positivity
You know what… you could be teaching a person who goes onto to create the next Facebook, Instagram, Trello, Slack, Microsoft, Linux, Mac, Google, and any other ball-busting Internet products/services. Don’t underestimate the power teaching and the power of influence. Offer encouragement to think bigger, to do bigger, to be bigger and reinforce it with positivity... you might just be the teacher of the next person who creates the cure for cancer.
Honestly you never know.
Share real stories
People get bored easy. A common question in teaching is - What is the point of all this? and actually it's a really, really good question. Underlying this question is an applied value function to compute whether the student is wasting their time or not. So damn.. just give them an insight into the future. Share with them what it’s like to work as a developer, and what are the fruits of our labour. This instills motivation - very, very powerful tool.
Lead and take charge
Goes without saying! It’s the mentor -> mentee relationship. Just reiterating this one as it must be clear who is leading the way. Oh.. you don’t know the answer? I thought you were a mentor? It is your job to learn on the fly and to deliver results. You’ll have a far better time following this principal.
Teaching programming is rewarding. The challenges are dynamic and you always have to be one step ahead. But it is also a very, very rewarding career. Relating a student's real-world experiences helps them to better understand new concepts, and don't forget to show positivity and patience - who knows they might just come back!