What to learn, of computers, of agents?
Here's basically how I would learn, or rather, teach a newcomer in computer science (or anyone) about the subject/domain. The trends and tides have shifted massively, and I think a new paradigm shift is a big enough reason for *teachers *to rethink education. Now that we are moving towards a future where agents ~= compute, and natural language dominates how we interact with our modes of computation, we must design education differently.
Before we begin, a few things:
- Syntax really is dead, but underlying paradigms are not. Would I use Javascript for making an application which deals with very high data volume? Or Rust for a website? Probably not. (Or maybe? Sure, but at least not if you actually care about your end goal). Hence, *knowing *your language, not syntax-wise, but how it works is still really useful!
- The above point, but generalized to concepts. Would I use Postgres to store high volume monetary transactions? Would I use it for storing graphical connections? Why or why not? These questions are really basic, but need to be answered correctly, or at least by deeply considering what your end goal is. Even choosing between AWS, Cloudflare or Digital Ocean can really affect your end goal, or what you can do with your projects.
- There's always more things to learn. A new technology not only just wipes out an older domain, but also births newer ones. Identify them, and adapt! Identifying what to learn comes with the added, rather solemn but obvious-in-hindsight perspective that computation was always a tool to achieve some other goal. The fact that it took us ~60 years to go from the first computers to agents only meant that during that time, there existed an entire profession that specialized in an aspect of the field which may no longer be needed. Before, it happened to an aspect of the field, and now, we have seen probably one of the biggest impacts yet.
But still, a lot of questions remain:
-> Will the average person care about writing/making applications? Dealing with code, databases, security vs simply using the software for other means? => Well ... yes and no. The current generation may not want to deal with this new shiny technology, or treat it with caution. But the next generation will grow up with AI at the back of their hands. They'll know how to truly leverage it, use it and extend it. That being said, there's always two sides: a consumer and a producer. I believe in the long run, one always had to choose one or the other, because a person focusing on both will be out-produced and out-consumed.
-> Will we even require people who know what different frameworks do, who understand the underlying components of a software? Will we need producers even, given agents can already pseudo-autonomously produce software? => In short: I think yes. Just the requirements would be for a new kind of software, or just basically highly advanced versions of the current, existing ones. I personally am already experimenting with software where I feel anything less than the current frontier models wouldn't suffice. Humans always match the demand and if the pace of improvements slows down, we outmatch it even.
-> And, rather simply, what'll be the nature of work itself, given a new kind of digital revolution? => There's no answer, only predictions, and most of them would probably turn out to be wrong. Hence, I would rather localize to what I know now, make smaller predictions and try to keep up based on that.
Well, and with that, we can finally move forward to the actual crux, or the topics that I think I'd want to learn in this age of agents. There's three parts to this, as far as I can see:
- The data science part: Or basically learning the internals of LLMs and somewhat about agents. This in itself may not be necessary/required commercially as much, unless one is into research, but it's still extremely useful if one needs a good understanding and grasp of the tools we are using.
- The computation part: On the easier level, there's data structures and algorithms, databases and cloud micro-services and what they offer, server setups and optimizations and such. On the more difficult part, we can delve into more niche concepts like domain languages, compilers, distributed systems and formal languages.
- The other domain part: Most common here would be business, but also any adjacent STEM fields or Humanities, where we can utilize the above mentioned knowledge. Robotics maybe a very close up and coming example. Another very common one is finance. These are the domains where before, they relied heavily on engineers, and now can benefit vastly from agents. Now that no one field offers a set advantage, we must learn to adapt ourselves and newcomers to be well-versed in all three (any other domain for the third part) and a bit more.