However, a different part of me gets hit with a wave of anxiety whenever these advancements make the news. I've been coding since teenage days and will graduate in a few months. I have a job lined up and am thrilled about working there. Now it feels like I'm running against a clock until the career I am working very hard for will automate itself away.
Are my feelings reasonable? How do you deal with this? Do you feel threatened?
Do you know who did, and had to deal with it decades/ centuries ago? Every other type of workers. Farmers, metalsmiths, artisans, etc, etc. Everyone gradually moved to better jobs and now everyone agrees automation is great in the end, of course.
Frankly, I’ve thought for some time that Software engineers are about the most luddite group around at this point, and I have no problems at all to say this on this website.
Seriously, every other answer in this thread offers true and valuable insights, but as always, about everyone seems to thinks Software jobs should be “different” or “more safe” than the others for Some Reasons.
Which, to me, it’s Doubly sad: for the reason that, at the beginning of computers (less than a century ago), the dream was Already to reach full automation. AI was Always the plan. What happened to that?
Why are many software engineers the ones with most problems with it now? (To the point of denying that AI will ever replace large parts of their current daily job. Of course it will- which doesn’t mean it will replace us ofcourse, just like there’s still farmers around- but the job will be pretty different. And we should be the first to know)
When did the annoying daily job of building boilerplate and knowing arcane syntax by heart become a career anyway, and an untouchable one at that?
Of course it’s easy for me because I’m fairly young, but tbh the sooner we enter the mindset that our job will change Exactly how all the others have, the better…
Sorry if this was ranty but I’ve followed these discussions for a while
That's one of the strongest safety nets you can get for you career. No one can predict whether their industry is going to be fully automated in x years or not. But knowing the right people, having a strong network, will increase your chance of survival tenfold if not more.
You're young, you already know how to code, you've got the tech part covered. You're likely competent enough to be hired. But if you're anything like most tech people, your social skills are an untapped reservoir of growth.
I wouldn’t worry about it. AI may simplify some tasks and give us new tools, but I don’t see human programmers going away. Demand for skilled programmers is higher than ever.
The first is that we could end up with a programming language that can accept natural language as its syntax. The best case scenario of this is that more people learn how to code as they don't need to learn strict specialized syntax to program. However, whenever this topic comes up it always turns out to be more of a pipe dream, because when you are programming you want precision, and to have precision you need strict specialized syntax. In other words, the advantages of not needing strict syntax are small unless you are not a programmer, and the disadvantages are massive as you might be misunderstood and end up with hard to fix bugs.
The second possibility is that we could end up with generation systems that can build small, well defined functions for us, similar to the problems that AlphaCode is already solving. The problem with this is verifying correctness. As mentioned before, the code that AlphaCode outputs is unreadable. As such, verifying correctness would likely take longer than building it yourself. As a result, anyone needing to use small, well defined functions would be better off using the existing solution of human built libraries. Because libraries are shared between so many programmers, it is much easier for bugs to be discovered and fixed.
So for my summary, all AlphaCode really is, is yet another attempt at a natural language type of compiler, which even if it succeeds wouldn't affect programmers much as languages being well defined is critical for making sure everything runs correctly.
What we humans do which is of great value is understanding problems and needs, considering known and possible unknown constraints, and finding a balanced solution which hopefully best meets the need.
Ironically, since most problems are described by humans (who tend not to be great at communicating), that big phase where we attempt to understand the real need is difficult and likely impossible for a computer to ever do. Just look at how underwhelming and frustrating current digital assistants are…
I look forward to being able to specify a class of need and some details and allowing the computer to code an implementation.
Just read the latest reports on what is happening with IBM and Watson. That is a straight-forward use case, a simple classification goal with some decision support, and the real world has hit it like a steam train hitting a bowl of jelly.
But the job of a software engineer is to solve problems and add value w/ software. A small part of that is writing code. Most of it is designing the right level of abstraction, the interfaces and so forth.
Lastly, as mentioned elsewhere, we will probably always need human debuggers.
Personally, I enjoy solving problems with computers and rather dislike the tedium of actually writing and debugging software. If a ML model could take that off my hands I'd be ecstatic.
Something almost everybody is forgetting is that this kind of technology has an asymptote embedded in it's structure and it will always be a bridesmaid but not a bride.