While the definition changes, the expertise shifts and with it the field. Computers eventually became statisticians and data scientists. Printers became graphic designers.
What I found most interesting is that when positions undergo such evolution (printer -> graphic designer), a number of skills which were previously different expertise altogether, combine to create a new field. In other words, a new multidisciplinary field is born.
I think a good example is data science, the field at it's core is applied statistics using modern techniques such as data management and computing [0].
The question is, what is the new evolution of a programmer? Lots of folks like to use the term "engineer", and previously I thought this was silly. But now with LLMs, maybe that is a good descriptor; software engineer.
The moniker already exists which we need to revive and repurpose for the LLM era;
"Systems Engineer" i.e. one who does Systems Engineering - https://en.wikipedia.org/wiki/Systems_engineering Because the focus is no longer on coding alone but involves specification, verification (formal and testing), traceability and correctness. All using a whole plethora of third-party infrastructure, tools and components.
In the early days there used to be "Systems Analyst" and "Systems Designer" in addition to the above. All of them go together. The Systems Analyst is business requirements facing, The Systems Designer maps it to implementation architecture and The Systems Engineer pulls everything together (including costs/risks/specific implementation technologies etc.) to produce the complete functional system.
Eh, programmers used to be people who'd desk-check their flow charts before hand-translating them into machine code to enter into a front panel. There's been decades of growth in abstraction since then, and LLMs are just one more layer, another return of the perennial idea of "programming" by writing specifications in a natural language that a machine can automatically translate into actual code which it can run. You know, like what COBOL allows. We're still going to need people who are capable of making such specifications, ensuring the resulting code is correct, and fixing them when they're no longer sufficient.
Humanity previously experimented, many centuries, with writing math in natural language and failed; it is fundamentally unsuited for the task. Furthermore, natural language specifications are, at best, wishful thinking. Feed this into a stochastic parrot, and you have a recipe for disaster. Repeating these mistakes proves coding is still a pseudoscience.
While the definition changes, the expertise shifts and with it the field. Computers eventually became statisticians and data scientists. Printers became graphic designers.
What I found most interesting is that when positions undergo such evolution (printer -> graphic designer), a number of skills which were previously different expertise altogether, combine to create a new field. In other words, a new multidisciplinary field is born.
I think a good example is data science, the field at it's core is applied statistics using modern techniques such as data management and computing [0].
The question is, what is the new evolution of a programmer? Lots of folks like to use the term "engineer", and previously I thought this was silly. But now with LLMs, maybe that is a good descriptor; software engineer.
[0] https://www.welcometothejungle.com/en/articles/story-origin-...
The moniker already exists which we need to revive and repurpose for the LLM era;
"Systems Engineer" i.e. one who does Systems Engineering - https://en.wikipedia.org/wiki/Systems_engineering Because the focus is no longer on coding alone but involves specification, verification (formal and testing), traceability and correctness. All using a whole plethora of third-party infrastructure, tools and components.
In the early days there used to be "Systems Analyst" and "Systems Designer" in addition to the above. All of them go together. The Systems Analyst is business requirements facing, The Systems Designer maps it to implementation architecture and The Systems Engineer pulls everything together (including costs/risks/specific implementation technologies etc.) to produce the complete functional system.
See also my previous comments here - https://news.ycombinator.com/item?id=48264680
[1] https://en.wikipedia.org/wiki/Turing_machine
[2] https://en.wikipedia.org/wiki/IP_over_Avian_Carriers
[3] https://www.karriweaver.com/selvagenotes/weaving-computing-t...
Amazing how you said that like it made any sense at all.