My teenager has asked me to teach him programming over the summer, so I'm looking for any tips from people who have done the same.
Current lesson plans are as follows...
1. Linux basics. Going to get an inexpensive Linux laptop for immersion sake and cover command line basics, package install, shiny things like htop, command piping, basics of users and permissions, basic vim (maybe SpaceVim)?
2. Simple command line Ruby just for shell scripts, irb, and calling linux commands that he just learned directly from it. Probably install asdf and explain the reasons for it. Go through a try-ruby demo on his own command line.
3. HTML & CSS basics. We'll create a simple html file and add some content with tags to get him accustomed to the structure. Look at the style attribute and then teach some basic CSS. Depending on how this goes, maybe introduce @tailwindcss as a self learning assignment.
4. Using some Ruby, show him out to write out an html file with arguments to demonstrate templating basics and pull together what he's learned so far.
5. SQL. We'll install DBeaver and #PostgreSQL, then go through the basics of a single table. Create one, add some data to it. Try some different selects, delete and update data. Connect to the database with Ruby and do the same things with sequel.
6. Update his generated HTML file to use content from his database queries.
7. Elixir. We're going to go straight into Elixir at this point by doing the Elixir for Programmers course together. This course does such a good job with code structure principles and functional code that I think it will frame his mind best. codestool.coding-gnome.com/courses/elixir…
8. From there, we play everything else by ear either moving into Phoenix or Rails to pull everything together.
And that's the plan as of right now.
• • •
Missing some Tweet in this thread? You can try to
force a refresh