1. 4


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).

The language used is JavaScript ES6, but the course focuses on programming concepts, not language concepts (this is explained in the 2nd lesson).

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:

  1. What’s a computer in general? What is code? (link)
  2. Human vs. computer languages. Who to code for? (link)
  3. Writing the first program (link)
  4. Constants and calculations (link)
  5. Functions as magic boxes (link)
  6. Making computers make decisions (link)
  7. Four types of errors (link)
  8. Recursion visualized and explained with boxes (link)
  9. Iterative process with recursive calls. Not being lazy when computing (link)
  10. Variables, pens and pencils and repeating code (link)
  11. Strings and words. Letters on a string, literally! (link)
  12. Mutators and for-loop. Another way to repeat stuff (link)
  13. Testing code with other code: unit-testing, asserts (link)
  14. Dividing code into modules. Importing and exporting modules (link)
  15. Expression vs statement: what’s the difference and why it matters (link)
  16. Environment, scope, and closures. Code visibility throughout the program (link)
  17. Dynamic vs static typing and weak vs. strong typing (link)
  18. 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).