Last week I finished my hopefully unusual and different free course, and I’m looking for any feedback. The idea was to create a highly visual picture, explain important programming concepts using real world analogies without focusing on tools or language syntax, and produce something that will be useful and friendly to a wider audience (compared to more common courses).
If you don’t have much time, check out a lesson on recursion or dynamic vs. static / weak vs. strong typing, for example.
Here is the outline briefly:
- What’s a computer in general? What is code? (link)
- Human vs. computer languages. Who to code for? (link)
- Writing the first program (link)
- Constants and calculations (link)
- Functions as magic boxes (link)
- Making computers make decisions (link)
- Four types of errors (link)
- Recursion visualized and explained with boxes (link)
- Iterative process with recursive calls. Not being lazy when computing (link)
- Variables, pens and pencils and repeating code (link)
- Strings and words. Letters on a string, literally! (link)
- Mutators and for-loop. Another way to repeat stuff (link)
- Testing code with other code: unit-testing, asserts (link)
- Dividing code into modules. Importing and exporting modules (link)
- Expression vs statement: what’s the difference and why it matters (link)
- Environment, scope, and closures. Code visibility throughout the program (link)
- Dynamic vs static typing and weak vs. strong typing (link)
- Non-deterministic vs. deterministic functions, side effects, and pure functions (link)
Here is the full course → https://en.hexlet.io/courses/intro_to_programming
(Videos alone are also available on YouTube).
Any sort of feedback is appreciated. This is my first attempt at making a course in English (apart from good old “powerpoint screencast”-style lessons).