How to teach programming
Posted by thaanis_mohamed@reddit | learnprogramming | View on Reddit | 6 comments
Hi, I’m Thaanis from Sri Lanka. I have about one year of experience in web development, and I’m passionate about coding. I’m interested in teaching programming to students but I’m unsure about where to start and which topics to begin with. I would appreciate any advice or guidance from this community on how to effectively start teaching and which foundational topics would be best to cover first. Thank you!
mlitchard@reddit
Just because you know a thing doesn’t imply you can teach it. Have you ever made a lesson plan?
CodeTinkerer@reddit
You want to teach, but you don't have students? I think that's a problem. What kind of students do you expect? Why would they come to you? Do you have opportunities to teach in a school?
There is some teaching material associated with CS50x for those who want to use their material.
You could also contact the people at Code In Place who have offered online courses in Python: https://codeinplace.stanford.edu/contact.
thaanis_mohamed@reddit (OP)
Thanks a lot buddy.
naasei@reddit
If you must ask this question, you can't be a teacher!
thaanis_mohamed@reddit (OP)
You're right that's why I am asking since i don't have any experience in teaching
Potential_Copy27@reddit
I'd suggest you gather a bit more real-world experience - a year of experience is not much to go on. A good curriculum imho requires a bit of business understanding, which is especially important when creating sellable solutions and websites.
Consider this - where do you want to have your students end up? As "code monkies"? Or as versatile designers that can carry a project?
Some of the best teachers I had, all had a good deal of real-life experience and were passionate about their subject - They even happily stayed after class to debate approaches and teach useful tricks.
The very foundation you need first and foremost, is what language or setup you want to use in your webdesign class as a foundation. Are you trained on .NET, Python, Node.js or something else?
SQL is non-negotiable whether you like it or not (same with HTML and CSS of course), but other storage/search databases are optional. Try to quantify what's popular in the world and use that as a starting point.
Depending on your foundational languages, you might need to start out with data types, doing arithmetic in code etc. Basic programming foundations.
For UI design, take a look at basic typography, control concepts and user psychology when breaking things down. User psychology is usually learned by experience, but it can be taught preventatively by setting up some real-world examples.
Globalization, notation and stuff like that is also important teaching material - eg. anyone outside India (and possibly Sri Lanka?) will have no idea wtf a crore or a lakh is.
If those are in the tool-belt of a student, I'd wager they'd be pretty well prepared - there's likely some things I forgot, but I'll leave that to other posters :-)