4 ms·
I taught myself to code as a teenager back in the 80's on those early microcomputers (Commodore PET, Acorn Atom, BBC micro). Everything was much simpler, and ea
by marcus_holmes 9mo ago
I taught myself to code as a teenager back in the 80's on those early microcomputers (Commodore PET, Acorn Atom, BBC micro). Everything was much simpler, and easier to learn.
A career in software development 30+ years later, and I'm back learning from day one again, because LLMs are profoundly changing how we do this.
Example: two years ago, I built a website as an MVP to test a hypothesis about our customers. It took me 6 weeks, didn't look good, but worked and we used it to discover stuff about our customers. This week I've vibe-coded a much better version of that MVP in an afternoon. This is revolutionary for the industry.
The state of the art on LLM coding is changing fast and by orders of magnitude. They still get things wrong and screw up, but a lot less than they did a year ago. I fully expect that in a couple of years [0] writing code by hand will be completely archaic.
So, what does this mean for people learning to code?
Firstly, that hand-rolling code will become artisanal, a hobby. Hand-coding a program will become like hand-carving a spoon; the point is not to produce the best spoon in the most efficient manner, but to create Art.
Secondly, that commercial coding as a career will revolve around collecting business requirements, translating them into prompts, and orchestrating LLM code engines. This will be a cross between "Product Manager", "Project Manager", and "Solution Architect" in current role definitions.
Thirdly, that at least for next few years, understanding how code actually works and how to read it will be an advantage in that commercial career space. And then it'll be a disadvantage, unnecessary and potentially distracting. Soft social skills will be the primary factor in career success for this profession in the future.
The industry has been through similar changes before. Most obviously, the invention of compilers. Pre-compiler, programmers wrote machine code, and had to manage every single part of the operation of the computer themselves. Need a value from memory for an operation? You had to know where it was stored, clear a register to receive it, fetch it, and work out where to store the result.
Post-compiler, the compiler managed all of that, and we were able to move to high-level languages where the actual operation of the computer was a couple of abstraction layers below where we're thinking. We no longer need to know the actual physical memory address of every value in our program. Or even manage memory allocation at all. The compiler does that.
And yes, there was a generation of programmers who hated this, and considered it to be "not real programming". They said the compilers would write worse, less efficient, programs. And for years they were right.
So, to answer your question:
> AI is clearlly changing the game here in terms of what it means to be a programmer.
> More concretely, what strategies do you use to both be efficient and able to ship / move quickly while ensuring you are also taking the time to really process and understand and learn what you are doing?
Embrace the change. Learn to manage an LLM, and never touch the code. Just like you're not writing machine code - you're writing a high-level language and the compiler writes the machine code - the future is not going to be writing code yourself.
Good luck with it :)
[0] There are lots of questions around the finances and sustainability of the entire LLM industry. I'm assuming that nothing bad happens and the current momentum is maintained for those couple of years. That may not be the case.
- delis-thumbs-7e 9mo agoThis is unbelievably depressing. Why to learn any skills at all, since some model is going to do it pretty soon and companies only need bunch of sales people, your Musk’s and Bezos’, to sell that crap. Rest of us rotten our brains online living on goverment hand-outs and designer drugs.
- deleted 9mo ago[deleted]
- jbloggs777 9mo agoWhy learn to play the drums, when there are drum machines? Or play any music, when there are MP3s? Or cook, when there's microwave dinners? If you can't answer the above, you might want to have a chat with a psychologist. We can and do create meaning in our own lives. Programming will change, but I won't miss creating the same boilerplate again and again. I expect to focus more on translating the business & technical requirements to decent quality results. I expect good interfaces and separation of concerns will be even more important, as whole modules might be rewritten from scratch rather than being modified, changing the way we think about maintainable code.
- marcus_holmes 9mo agoI think it's incredibly liberating. I started hobby-coding, and that can continue if I want to do it. If the point is to get into the mental exercise and craftsmanship of coding. But for most of the time, the thing I really want is the product, the program, the result. Being able to skip the coding step and go direct to the result by using an LLM is really freeing. I can try different approaches, experiment with different ways of presenting it, iterate on actual product ideas without having to spend months refactoring code. It's great. As for the commercial stuff - I don't know if you've ever worked as a software dev in a large company. I have a couple of times, and it's a living nightmare of politics and compromise (hence only a couple of times, I prefer working in startups and small businesses). The average software dev spends their days doing pointless JIRA tickets in sprints designed to make their manager look good at their next review. Nothing valuable will be lost by replacing all of this with LLMs.