markdown guide

As an educator myself, I think the most important thing is to be building projects. Simple to complex. But not just the how but explaining why you are making the programming choices you make. It may not be as relevant as it sounds relatively application heavy in your case but showing the possibilities of applications or ideas that extend beyond the project is important. Another thing you should be thinking about is how to get your audience to recall what you’re telling them, how do you check for understanding and also do you want to be testing for application of that understanding.


Where a lot of courses go wrong in the project approach is failing to describe the hypothetical problem in enough detail. Real-world problems are messy. They involve trade-offs. It’s seldom about finding the best solution, but determining which of the least-bad solutions is the most resilient and can be mitigated humanely. One learns through poking at something to see how it breaks, but most scenarios are set up as straight line exercises. Do this, then that, then done!

Oh. One more; No blogs or to-dos. Just don’t


I couldn't agree more. My use of best solution is probably poor, and what you suggest is probably the better way to frame it. You want something workable, that is built upon breaking.

There isn't enough in how to think through a problem, describing in as much detail. What is known, what is something we don't know about or need to explore if it is possible. Does that way make sense ? General approaches are far more instructive than a check list of how to do something.

Sometimes we only learn whether something works until you start building which is hard to get across.

Blogs and to-do lists are just boring, the world is full of these.

yes as a student i can definitely say that is the most important skill i have learned it to grapple with a problem over and over and google it and keep working on it until i have figured it out. It teaches perseverance and that is exactly what is needed to code or do anything in the tech field. Building projects is definitely the most important and to give enough information to get there but leave just a little out so the struggle is there to learn,


Wow, that's really helpful. Thanks


Another thing to consider is if the code allows for multiple ways to do a thing, going through each situation and explaining why you recommend one way over another helps demystify the idea there is one way to do something, but also exposes students of your course that programming is about choices and forethought.


I always liked TheOdinProject approach. Teach concepts, have little code along projects, either text based or video based, and then a project to throw you into the fire. The fire always got me better results than anything.

I'm still really new, but I want to build a course that follows that format, but for the project side have a set of requirements & tests to validate those requirements. The student is forced to think about how to solve the problem without hand holding or code to reference.

The validation comes in passing the tests as you go throughout the project.


Something that gets me running a number of examples quickly. I really like Wes Bos's model of creating a number (30ish) small projects, where I get my fingers on the keyboard and code out what I am trying to learn. He takes care of a lot of the boilerplate so that I don't have to do the entire project and I can focus on the section that I am learning. He also has really good design skills and has the project very well designed. It's fun to build a really good looking project.


Keep your errors and mistakes in the course, don't edit them out!

These are mistakes your students are likely to make as well so showing how you debug and fix them is super useful. I guess this is probably aimed more at video based tutorials than text based.

Good luck with your course


Yup, the worst thing to do is to make a video tutorial by re-writing the code from already created code base from side monitor. When it comes to teaching, it's just wrong in so many levels.

By that, beginner devs got the false assumption, that solving real world problems in code is that easy - no planning is necessary, no typos are ever being made, logic of code just comes that easy, code is being written that fast, there is no need to bug as everything works on the first try.

And afterwards, when they try to write single line of code themselves, they feel hopeless and often give up as they have seen the app being re-written not actually developed. They start to blame themselves, while they should actually blame the teacher for not revealing the true nature of coding.


as a student i definitely look for coding that will lead up to a real-life project or an immediate short-term project. I think courses like freecodecamp, don't really have much meaning to a newbie because there is no immediate context to what you are doing and you can't really mess around on the tutorial and see what happens... visual learning is very important as is being able to manipulate projects. I would rather have 4 projects interspersed than 4 big ones at the end where you just think "what did i just learn? I can't do this!"
Also tutorials are good but they need to be followed with interactivity that can be graded with a pass fail or a step completed type direction like i found on Khan academy that was very helpful...


Good course should definitely have good exercises - I mean exercises that require thinking. Good course also need gradation with example apps - starting from simple stuff teaching only basics, than gradually more complex problems. Finally every good course should, in the end, have big complex app which contains most (if not all) of important problems from previous lessons and some exercises extended beyond course, just to teach looking for solutions that are not so obvious to find (for example looking in docs, searching new packages in npm, actually ask for help on forum/discord/slack/Stack Overflow, etc).

Course without exercises is worth nothing. Brainless course is also worth nothing. I personally very like big, complex courses "from zero, to hero" but at least with 40h+ lessons and exercises. This - if good - teaches most basics, some more complex stuff and teaches where to look after for solutions by myself.

  • short overview on where the presented tool stands in the bigger picture
  • the accent on practical use of tool, by actually writing the code using multiple approaches to same problems
  • follow best practices and explore different design patterns
  • quick references to previous tools to achieve the same functionality, allowing us to compare other alternatives and evaluate them based on specific needs
  • an insight on what actually happening under the hood when tool is working
  • links to quality, curated docs/posts to study more on in-depth topics of tool
  • potential drawbacks of using the tool
  • most importantly use thought-ought, beginner to advanced structure when presenting the concepts of tool and combine everything above with KISS, YAGNI and DRY.

Tech support on a personal project. Discord or Slack might be nice.


That's a good point, noted, thanks.

PS, would comments section on the course site help?


Comment sections are better for things related to the course. Nothing personal.


Most of the time, you don't really get your answer if you ask something in the comment section. So, I say nope.