1) auth/identity is built in
2) the UX is highly constrained (having students lose a month to CSS issues is perhaps good prep for the real world but feels awful)
3) all of the tooling is free*
*With the restrictions on free Heroku and the removal of free orgs on fly (it seems) I’ve had to retool a bit but codespaces cover a lot of what students need.
Sure for experienced developers command line tools are used daily (at least for some developers), but for many students it can be alien world that they don't use outside the lessons.
Also overall usefulness. Simple terminal program that responds with a fixed message, is just an exerciser but otherwise useless. You need to get a lot more complicated to make useful tool. But a chatbot which responds with fixed messages (usually FAQ type stuff) is a commonly used tool for the purpose of community management.
2. The social component is fun. Students can easily show their work to each other. Don't underestimate the power of memes.
3. The Discord server provides shared history/some persistance without the students needing to implement their own servers.
Discord also supports some simple UI elements - images, buttons, form fields, and dropdowns - so it’s a nice step above a CLI for teaching UX, which is part of the course.
To anyone who wants to build and host a hobby bot, I've had a good experience with using fly.io to host mine. They don't charge you for any monthly billing periods whose total cost would be less than five dollars (USD), so for small projects that would never get close to meeting that threshold, it's free ninety nine. Hard to beat that!
(And even if you do exceed the $5 threshold, it's still waaaaaay cheaper than other options I've seen. RIP to Heroku's free hobby tier.)
Good news from Fly.io! We don’t collect bills smaller than $5.00.
This month, your bill of $2.01 falls below that threshold, so we’re discounting it by 100%.
It's a quick and easy return on investment. You see results and you can share results with friends, and the APIs aren't too hard.
No, that's just his only public repo. It only has 95 commits but he makes on average 1,000 commits per year on private repos (including Weezify, presumably). So it's really a very small fraction of his activity.
This is at heavy risk for confirmation bias, but I believe that writing chat bots is one of the best ways for people to get into and enjoy coding, because it's fun and rewarding, and simple enough (with an existing framework to use) that just uses strings. For a large generation it was MySpace and the ability to customize your page heavily with HTML. I know a number of people who learned HTML for that reason.
Chat bots seem like the closest modern day equivalent (despite the main platforms making it harder with stuff like difficult to connect to the real time websocket and force use of webhooks). 10 years ago or so when Slack was new and had a gloriously simple API, I even wrote a framework that made it as easy as implementing one function, and you could receive messages (among other metadata like the username of the sender) as strings and send replies easily as strings. It served as an entry point for a few friends who had some fun with it and learned some ruby in the process.
Anyway, if you're looking to get into coding but want to do a "real" project (or something very rewarding), start by writing simple chat bots! If you need some ideas, these are simple:
1. Start with writing a simple echo bot that just replies to every message with the same message that it received.
1. Write a bot that responds to every message with a random number between 1 and 100. For a slight increased challenge, have it do fizzbuzz where the nth message received is the counter.
2. Write a bot that that will reverse the message of whatever it receives, so it echoes replies but backwards.
3. Write a bot that will lookup a word when the message sent is "define <word>" and reply with the definition from one of the many dictionary APIs out there.
Go from there!