<story><title>Competitive Programming with AlphaCode</title><url>https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode</url></story><parent_chain><item><author>GuB-42</author><text>I think programmers are relatively &amp;quot;safe&amp;quot; from AI for the simple reason they are the ones who talk to AI.&lt;p&gt;The job of programmers is to have machines do stuff so that humans don&amp;#x27;t have to, and of course, they do it for themselves too. Scripts, libraries, compilers, they are just tools to avoid flipping bits by hand. If something like copilot is not embraced by all programmers, it is that it is often less than helpful, and even then, some have adopted it. If we have super-advanced AI that can have a high level understanding of a problem and writes the app for you, then it is not much more than a super-compiler, and there will be programmers who will tell the super-compiler what to do, think of it as a new, super high level programming language. The job will evolve, but there will always be someone who tells the computer what to do.&lt;p&gt;And if there is no one needed to tell the computer what to do, that&amp;#x27;s what some people call &amp;quot;the singularity&amp;quot;. Programming, or its evolution will probably be the last technical job. Social jobs may continue further, simply because humans like humans because they are human. Maybe the oldest profession will also be the last profession.</text></item><item><author>atleta</author><text>The thing is that we don&amp;#x27;t know. What I also have been seeing for a while (like for at least for a decade) that &lt;i&gt;whatever&lt;/i&gt; profession seemed to be in danger, whichever profession came out on top on (guess) lists like &amp;quot;these will be replaced by AI soon&amp;quot;, each and every one of them thought that it can&amp;#x27;t happen to them and they all had (and continue to have) explanations, usually involving how that jobs needs human ingenuity. (Unlike all the others, of course :) )&lt;p&gt;Now completely I agree with you that a significant part of our job is understanding and structuring the problem, but I&amp;#x27;m not sure it can&amp;#x27;t be done in another way. We usually get taking in when we think about what machines will be able to do by thinking that just because we use intelligence (general&amp;#x2F;human intelligence) to solve the task it means that it&amp;#x27;s a requirement. Think chess. Or even calculating (as in, with numbers). Or go. Etc.&lt;p&gt;The funny thing is that we don&amp;#x27;t know, until someone does it. I&amp;#x27;ve been thinking for a while that a lot of what I do could be done by a chat bot. Asking clarification questions. Of course, I do have a lot of background knowledge and that&amp;#x27;s how I can come up with those questions, but that knowledge is probably easy to acquire from the internet and then use it as training data. (Just like we have an awful lot of code available, we have a lot of problem descriptions, questions, comments and some requirement specifications&amp;#x2F;user guides.)&lt;p&gt;The hard part would probably be not what we have learned as a software developer, but the things we have learned while we were small kids and also the things that we have learned since, on the side. I.e. being a reasonable person. Understanding what people usually do and want. So the shared context. But I&amp;#x27;m not sure it&amp;#x27;s needed that much.&lt;p&gt;So yeah, I can imagine a service that will talk to a user about what kind of app they want (first just simpler web sites, web shops, later more and more complicated ones) and then just show them &amp;quot;here is what it does and how it works&amp;quot;. And then you can say what you&amp;#x27;d like to be changed. The color or placement of a button (earlier versions) or even the association type between entities (oh, but a user can have multiple shipping addresses).</text></item><item><author>doctor_eval</author><text>I sometimes read these and wonder if I need to retrain. At my age, I’ll struggle to get a job at a similar level in a new industry.&lt;p&gt;And then I remember that the thing I bring to the table is the ability to turn domain knowledge into code.&lt;p&gt;Being able to do competitive coding challenges is impressive, but a very large segment of software engineering is about eliciting what the squishy humans in management actually want, putting it into code, and discovering as quickly as possible that it’s not what they really wanted after all.&lt;p&gt;It’s going to take a sufficiently long time for AI to take over management that I don’t think oldies like me need to worry too much.</text></item></parent_chain><comment><author>atleta</author><text>What I was trying to convey is that I&amp;#x27;m not sure at all that you&amp;#x27;ll need a programmer (i.e. someone who has the mindset and the skills of a person we call today as such) to talk to the AI. Because the AI may just be able to understand a sloppy description that the average user (or the average product owner) is able to communicate. And when&amp;#x2F;if not then it will be able to either ask clarification questions (like &amp;quot;what do you mean by account?&amp;quot;) or just generate something and then let the user figure out if it&amp;#x27;s doing the right thing for them. If not, they can ask for changes or explain what they think was misunderstood.&lt;p&gt;And my (weak) conjecture is that we may not need an AGI&amp;#x2F;human level AI for this. In which case we might still want to have some software to be written. But you&amp;#x27;re right, I&amp;#x27;m also not sure that there will be a point where we still want software but have very intelligent machines. And while saying that programmer will be the last technical job doesn&amp;#x27;t sound like a strong claim, I&amp;#x27;d say say it would probably be teachers :)&lt;p&gt;&amp;gt; The job will evolve, but there will always be someone who tells the computer what to do.&lt;p&gt;Which may very well be the users, if the machine is able to follow a conversation. Now the thing that may be the showstopper for now might exactly be this: that the machine should be able to hold a context for long enough (over multiple iterations of back and forth communication). As far as my limited knowledge goes, this is something that they have not yet figured out.&lt;p&gt;The &amp;quot;our kind will always be needed&amp;quot; is exactly the fallacy I was talking about and the one that the practitioners of every intellectual professions seem to have. They think they will be needed to interface between the machine (whether it&amp;#x27;s a legal or a medical system) and the client. Because they assume that the machine will not be able to communicate only to process the existing knowledge base.&lt;p&gt;But again, the whole field evolves through surprising leaps. Yep, Copilot is not insanely useful, but already amusing&amp;#x2F;frightening enough. It seems to pick up context from all over the code base. Sometimes it goes totally wrong, and generates gibberish (I mean generate non existent identifiers that make sense as English expressions but ones that don&amp;#x27;t exist anywhere in the code). But quite a few times it picks up the intent (the pattern&amp;#x2F;thought pattern) even if it is spread out over a file (or several ones).</text></comment>
<story><title>Competitive Programming with AlphaCode</title><url>https://deepmind.com/blog/article/Competitive-programming-with-AlphaCode</url></story><parent_chain><item><author>GuB-42</author><text>I think programmers are relatively &amp;quot;safe&amp;quot; from AI for the simple reason they are the ones who talk to AI.&lt;p&gt;The job of programmers is to have machines do stuff so that humans don&amp;#x27;t have to, and of course, they do it for themselves too. Scripts, libraries, compilers, they are just tools to avoid flipping bits by hand. If something like copilot is not embraced by all programmers, it is that it is often less than helpful, and even then, some have adopted it. If we have super-advanced AI that can have a high level understanding of a problem and writes the app for you, then it is not much more than a super-compiler, and there will be programmers who will tell the super-compiler what to do, think of it as a new, super high level programming language. The job will evolve, but there will always be someone who tells the computer what to do.&lt;p&gt;And if there is no one needed to tell the computer what to do, that&amp;#x27;s what some people call &amp;quot;the singularity&amp;quot;. Programming, or its evolution will probably be the last technical job. Social jobs may continue further, simply because humans like humans because they are human. Maybe the oldest profession will also be the last profession.</text></item><item><author>atleta</author><text>The thing is that we don&amp;#x27;t know. What I also have been seeing for a while (like for at least for a decade) that &lt;i&gt;whatever&lt;/i&gt; profession seemed to be in danger, whichever profession came out on top on (guess) lists like &amp;quot;these will be replaced by AI soon&amp;quot;, each and every one of them thought that it can&amp;#x27;t happen to them and they all had (and continue to have) explanations, usually involving how that jobs needs human ingenuity. (Unlike all the others, of course :) )&lt;p&gt;Now completely I agree with you that a significant part of our job is understanding and structuring the problem, but I&amp;#x27;m not sure it can&amp;#x27;t be done in another way. We usually get taking in when we think about what machines will be able to do by thinking that just because we use intelligence (general&amp;#x2F;human intelligence) to solve the task it means that it&amp;#x27;s a requirement. Think chess. Or even calculating (as in, with numbers). Or go. Etc.&lt;p&gt;The funny thing is that we don&amp;#x27;t know, until someone does it. I&amp;#x27;ve been thinking for a while that a lot of what I do could be done by a chat bot. Asking clarification questions. Of course, I do have a lot of background knowledge and that&amp;#x27;s how I can come up with those questions, but that knowledge is probably easy to acquire from the internet and then use it as training data. (Just like we have an awful lot of code available, we have a lot of problem descriptions, questions, comments and some requirement specifications&amp;#x2F;user guides.)&lt;p&gt;The hard part would probably be not what we have learned as a software developer, but the things we have learned while we were small kids and also the things that we have learned since, on the side. I.e. being a reasonable person. Understanding what people usually do and want. So the shared context. But I&amp;#x27;m not sure it&amp;#x27;s needed that much.&lt;p&gt;So yeah, I can imagine a service that will talk to a user about what kind of app they want (first just simpler web sites, web shops, later more and more complicated ones) and then just show them &amp;quot;here is what it does and how it works&amp;quot;. And then you can say what you&amp;#x27;d like to be changed. The color or placement of a button (earlier versions) or even the association type between entities (oh, but a user can have multiple shipping addresses).</text></item><item><author>doctor_eval</author><text>I sometimes read these and wonder if I need to retrain. At my age, I’ll struggle to get a job at a similar level in a new industry.&lt;p&gt;And then I remember that the thing I bring to the table is the ability to turn domain knowledge into code.&lt;p&gt;Being able to do competitive coding challenges is impressive, but a very large segment of software engineering is about eliciting what the squishy humans in management actually want, putting it into code, and discovering as quickly as possible that it’s not what they really wanted after all.&lt;p&gt;It’s going to take a sufficiently long time for AI to take over management that I don’t think oldies like me need to worry too much.</text></item></parent_chain><comment><author>daniel-cussen</author><text>&amp;quot;Maybe the oldest profession will also be the last profession.&amp;quot;&lt;p&gt;-- GuB-42, Wednesday February 2, 2022</text></comment>