21 comments

[ 3.2 ms ] story [ 56.2 ms ] thread
As is ServerFault
As is all (?) of stackexchange.
In other news, HN traffic soars. Programmers twiddling their thumbs.
And she's back...
stackoverflow and servfault are back. superuser is not.
still down. Fri Aug 9 17:14:24 SGT 2013
I'm playing with my social stuffs right now XD
Maybe we need some kind of distributed knowledge network for things like wikipedia, stackoverflow, and what not?
It's back, but the bitter humor has not escaped me. Far too many aspiring programmers (job interviewees) are unable to do any pen-and-paper coding, they "solve" problems by googling and ending up at SO. Very sad (or is it meant to be that way?).
I've had my computer science engineering education at an institution that taught programming the "Dijkstra way": designing and proving correct programs by hand, with pen and paper. Still, if you're asking me to solve some problem I'd rather have a look at stackoverflow first than immediately firing up the mathematical machine in my head to design a nice solution. Besides, for most problems and programmers, chances are that their pen-and-paper created solutions are either trivial, not completely correct, or take too much time to be practically feasible. Churning out something working now is often more important than be able to get a better solution tomorrow.
> Churning out something working now is often more important than be able to get a better solution tomorrow

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?

I agree with you, actually, but I fear that the current commercial situation in many a programmer shop or IT department does not allow for well-educated and well-experienced programmers for they are too expensive and difficult to find. In this situation I'd settle for experienced "SO programmers" with a good operational understanding of what they're doing, even though I'd prefer experienced academic trained programmers with a strong mathematical background.
> * In this situation I'd settle for experienced "SO programmers*

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?

> 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

Over-reliance on Google and Q/A forums has its problems, but I think it may be better than spending 4 months poring over the documentation and other books, working through everyone you know in your social circle who might know C better than you do, vainly trying to get responses on usenet, and then finally giving up and realizing you may never know why your program segfaults (me circa 1995).

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

SO has become an invaluable resource for me. I generally program alone and I don't have someone with experience with X at the ready to ask questions when I run into bullshit. And it's often faster to google a common task then check the relevant api docs as needed than to start the search in api docs. I also tend to do new unfamiliar tasks a lot and draw heavily on other peoples experience to accelerate me.

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.