Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I teach software engineering to grad students. Discord bots specifically have been fantastic:

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.



How is that different from writing command-line apps?


It is more engaging to do something related to the software students (might) be using daily or at least have some experience. It's easier to show of the final result to (non programming) friends, or get some ideas for potentially useful tools or at least fun toys.

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.


Most computer users don't use command-line apps day in and day out. Most computer users nowadays use chat apps (Discord, Slack, Whatsapp) and have probably encountered bots on those platforms before. There is an inherent familiarity that makes it feel more accessible.


1. Networking, multiplayer and multimedia are built in.

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.


"Normal" people don't use command-line apps. Making 'real' things that other people use can be a huge motivator for early learners.


The two pieces of software I'm most proud of having written in college were a simple NFS driver and a simple GET-only HTTP server. There's just something magical about seeing your software not only working, but also integrating with something else that's "real". (In this case, being able to mount a network drive in the OS and opening a page in a real browser)


It’s much easier to share a link to a Discord server than it is to convince your friends/family to install an app. Packaging and distribution alone would take up most of your development time - a semester is only 15 weeks. (This is why I used to do web-based projects.)

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: