In terms of code completion, the complaints in the article seem more focused on it being buggy, but there's also complaints about it dictating how code is written or feeling bad for using it (??). Code completion is a win. Automatic completion of names is a speed win. The ability to get essentially an locally relevant API reference is a win. Even the ability to write code by relying on code completion giving you correct suggestions is a win: it clearly lowers the barrier to writing functional code. The issues people have with the last one boil down to "people can get the job done without knowing how everything works".
A lot of the rest of it seems more griping about VS default behavior rather than the impact it has on the code being produced.
When push comes to shove, the real issue people have with many of these things is essentially that it lowers the bar to getting a program to "work". It lets "bad coders" succeed. Sure, such tools can result in bad code, but in the end the goal of anyone writing code in any form is to getting a task done, in which case "bad" code is better than no code.
Even better is that people who start off thinking that programming is some magical impossible skill may start with some basic tutorial + stack overflow + code-completion code, but in doing so and getting something to work they may do it again, and after a while develop their skill. Maybe they'll laugh at their old code, maybe they won't, but the important thing is that the tools doing some of the work made it possible for them to do the rest.
Another simple analogy is manual vs. automatic cars. Are automatic cars bad because learning to drive in an automatic means you don't know how to drive a manual? Some people argue yes, despite the abundant evidence that the existence of automatics made driving much more accessible. It also reduces the need for a driver to focus on anything other than driving, which is very clearly a good thing.
[edit: minor (?) tone issue]