Stackoverflow is down. All programming has stopped.
stackoverflow.com
stackoverflow.com
Besides, unassisted trouble coding isn't exactly rare or new:
“I’ve assigned this problem [binary search] in courses at Bell Labs and IBM. Professional programmers had a couple of hours to convert the description into a programming language of their choice; a high-level pseudo code was fine... Ninety percent of the programmers found bugs in their programs (and I wasn’t always convinced of the correctness of the code in which no bugs were found).” - Jon Bentley, Programming Pearls, 1986
If your a senior programmer thats been working in a narrow domain and technology stack for years, it may seem amateur to rely on heavily on google/SO. But it could be an indication of their ability to leverage the internet to quickly learn new technology/how to do various tasks.
Absolutely valid point, but my (somewhat confirmed by recent interviews) worries are that people who start programming this way, do not have the ability to come up with their own solutions (for almost trivial tasks) at all.
They are unable to derive a working solution from their theoretical knowledge and even that is frequently lacking nowdays. Lead developer candidates (> 10 years experience, mainly PHP) unable to convert a decimal number into a hex string without builtins/formatting functions, WTF?
If most programmers cannot put existing knowledge together to produce a solution to a new problem, how can they possibly analyze, critique, fix existing code? By comparing with a solution on SO?
So you're betting on SO being up and accessible forever? This feels a bit too much like depending on some 3rd party cloud for crucial infrastructure (but I guess it works for many people).
I cannot entirely disagree with your approach, because far too much code nowdays can apparently be put together in this way. It suggests to me that we aren't really using appropriate tools/languages/libraries/documentation to avoid duplicate and copy/paste-style work. SO should be for hard problems, not for code stanzas everyone needs but can't come up with by reading the docs or understanding the mindset of the library/language designer. Is SO mostly compensation for crappy docs and badly constructed APIs?
Yes. And no.
There are a lot of interesting libraries and tools out there I have access to and can use. In the 90s and early 00s I bought a compiler and maybe some libraries and used it year after year, project after project. If something wasn't readily available, I'd to build it myself. Nowadays, chances are there are a number of alternative I can use. Chances are, the next project I want to use something similar there will be better alternatives. I don't use these tools and libraries much, so I don't get that much experience with them. If I want to use them for some problem, looking through the docs takes time, while SO probably has a good answer I can adapt to my situation.
Similarly, the way I use documentation has changed over the years. Where I'd get a printed version of the reference manual that I used until I'd to buy a new one, nowadays I enter a search query into a search engine to find the documentation I am looking for. Chances are, there's a SO reference as one of the first couple of hits. And sure, most projects are badly documented, if at all. Looking at the documentation isn't the same as it was before, or as it is with good documented stuff.
On the other hand, one would like the programming profession to be more than DIY-programming. Should building yet another simple CRUD application or a simple database front-end belong to the realm of professional programming? Should we want to train more people to do DIY-programming and preserve the interesting / hard problems to well-trained and experienced programmers? Similar to DIY home-improvement versus construction companies building a whole new city-center