As already mentioned I’ve been starting to use an ‘AI tutor’ to learn a new programming language.1 I’ve picked Rust for this because it has some interesting concepts that I want to understand at a deeper level (like its ownership system), and the language is not exactly known for being easy to learn… :-)
I also sometimes encounter Rust code in my day job, so knowing a bit more about it will have some additional utility and fills a niche in my ‘personal toolchain’ (where most tools are memory-managed). On top of that, Rust has some features I care about in any language, such as an expressive type system and nice developer tooling.
So, lo and behold, I have now sort-of ‘vibe-coded’2 slackrs
, a small weekend project for “SlackOps”: it ingests the message data exports from public channels that you can export from Slack for a certain time range, and then generates plots on the frequency of specific terms (see the README for more details).
This is useful for analyzing trends on specific auto-generated slack messages (e.g. for deployments, builds, or test runs and their failure rates), as well as messages between certain group or user handles, e.g. to see how the communication workload of a team fluctuates over time.
The tool is still very basic, just covering my own requirements, and will probably remain so. Still, it was a very fun exercise and you can now just try out the crate or the source.
–
AI Tutoring really flattens the learning curve, which also means I can now dive into other topics more quickly. This is a great and sometimes undervalued benefit of LLMs. Validating any claims (e.g. by checking the documentation) and thinking through code snippets is naturally part of the learning process anyhow, as well as trying them out in practice — so hallucinations do not really matter in this use case. They even make using LLMs more fun: it means your ‘tutor’ is known to be a bit unreliable and you should (just as in real life) still use your own head and challenge any statements you find implausible. ↩
It was more like “assisted coding” as I was mostly learning (new syntax etc.), so the actual programming was still mostly done by me. Obviously, all remaining bugs in the project are the LLM’s fault, not mine! ;-) ↩