First of all, the argumentation of the article is wrong. And second, the automation of coding is no new thing happening in this world. At the beginning of programming people draw solutions on paper, then encoded them in machine operations and pushed holes in punchcards. All these tasks were first done by humans and then subsequently transferred to machines and computers, by assemblers, compilers and later build systems. As time passed only the jobs where algorithms had to be written remained making compilers and assemblers workless. Since then complexity of software increased and better programming languages allowed to structure programming even more. Nowadays, we have four distinct areas of software systems: Embedded systems, desktop software (which includes to some degree app programming), enterprise systmes, and high performance computing.
Embedded systems are mostly reactive systems and they have to fulfill high savety standards. Therefore, they use specific languages to achieve this combined with verification. However, standard C for example, allows for too many errors therefore they limit the use of certain constructs in the language. Furthermore, they use domain specific languages (DSL) to abstract from plain C. In addition they use libraries for specific reoccuring functions. For desktop systems, OS wirting has similarities to embedded systems, however the main effort is put into programming applications and apps. Therefore, people use any number of frameworks which provide a specific API which is also seen as internal DSLs and use external DSLs often encoded in XML to describe the UI and other typical tasks of their applications. In enterprise computing the use of DSLs is even more widespread. For example, most people use there templating languages such as JSF or GWT with various extensions. They also use DSLs to define the data model and queries on that data model. Also workflows can be formulated in BPMN or BPEL. All these technologies have been used to rise the level of abstractions. Therefore, present day coders do not need to know that much about implementing an specific algorithm, they more need to be able to find the right function in their DSL and frameworks. This even lowered the barrier for people to enter programming compared to systems around the 1980/90s when it was necessary to be able to implement quicksort. True, today it is harder to get started with programming, but that is beside the point.
In future, we will even more use people to model software. They will use any number of modeling languages to do so. And they will still be required to think logically. We might have less webdesigners, but hey when the few remaining designers would be able to not only draw "nice" interfaces, but would also understand that what they design is there to be used to communicated between human and machine, then we are in a better world than now. The only problem I see, is the unwillingness of you computer scientists to go into modelling. And that compared with the fact that most of them are not really able to code. And yes, those poeple will have a real big problem in future. People who are able to write generators, however, will have a superb future and a lot of work.