23 comments

[ 7.4 ms ] story [ 102 ms ] thread
It's easy enough to replace "Make tea" with "Answer someone else's question." That counteracts the effect quite nicely. [edit: my stats, for what they're worth: 8 questions, 54 answers]
There's apparently a balance between questions and answers, seeing that most answers on SO get answered. If that wasn't the case, I would feel like I need to answer questions if I ask them, to give something back to the community, but right now it's apparently not neccesary.

Also, the answers on SO are usually of such a high quality, that you learn a lot in the process. Often an answer will push me in another direction than I was going, because someone gave a better way to do something.

This guy is suffering from the "I work on easy stuff" problem. I used to be like him, thought there was nothing new to learn, if something feels a bit strange, just ask someone.

But what I've actually come to realize is this: StackOverflow simply does not answer any of my questions. I probably suck at asking questions, but by the time I find even a half decent solution to my problem on stackoverflow, I've already gotten through it using the old school way.

I'm probably using stackoverflow all wrong ... then again, I find it an invaluable when I'm learning a new language and have a bunch of low-level questions. In fact, I don't even have to answer them, they're already answered and I just have to find them.

No, Stackoverflow makes hackers more efficient.

Besides, if you want the "old" way, don't post your question; instead, just search through SO until you find where somebody else has already asked almost the same thing.

I strongly disagree with this. I think the author is projecting his worldview onto Stack. Just like virtually everything else in education, you only get out what you put in. If you use it in a lazy way, then it makes you lazy but if you code until you're stuck, post a question, code more - sometimes getting the answer yourself, other times accepting an answer then you can learn plenty.
If anything, it reduces the amount of time spent by someone to find a solution to their problems/issues/quirks and enables them to move on faster and work more efficiently.

I rarely comment on such opinion pieces precisely because of them being someone else's opinion and nothing else. It might be their pet peeve or it might be their path to salvation. That need not be the case for me. To each to their own.

Hackers should be lazy, so I guess it's all right?
As Larry Wall says, the three programming virtues are laziness, impatience, and hubris.
Uh, no. If your problem is so trivial that it can easily be answered by SO and then you're done, you're not building anything complicated and in fact it should be easy to build and you shouldn't get any hacker cred. Similarly with how "Googleable" your answer is. This post is on the verge of being in the same category as those lamenting the niceness of Google or an online dictionary because in the old days with physical books they'd frequently stumble on something neat on the way to whatever it was they were looking for in the first place.

I suppose (for a contrived example) back in the day making a POST request from a browser and handling it with PHP/Perl/etc. was a task worthy of hacker cred because there wasn't any documentation on how to do it, whereas now it's example 1.4 on any decent PHP introduction, and it's something that can be easily answered by SO users. Whereas if you're trying to build an FFP Machine, there isn't even a wiki page.

Lastly, you can always force yourself not to use SO. I use SO as if launching a background process--it helps me clarify what my problem is (sometimes I don't even post after that), and after I post I can keep searching/trying instead of "sipping tea" and SO will notify me of any new answers.

In my first year of college, learning games development, I was told repeatedly that a lazy programmer is a good programmer. Why do work when someone else has done it already? (It was meant in terms of code re-use, but that transfers nicely to this. After all, I'm only re-using someone else's code)

In my opinion, it's similar to the difference between depth-first and breadth-first. You can spend a few weeks learning the ins and outs of something and become and expert at it, or you can do several things in the same time (using the jigsaw method - just find the pieces and put them together) and learn small parts of each.

There're merits to both sides. [Shameless plugging going on now] For example, for a html5 game engine I've been working on[0], we spent several weeks just learning the underlying frameworks, then looking into other game engines and how they're architected, etc. It's still not finished - we ran into college time and put it on hold. However, I've since gotten a job because of the skills I picked up through working on the engine.

However, for a geolocation alarm app [1] that I decided to work up, I used the jigsaw method. I finished it in a few days. I learned a couple of things, but nothing major. A very small addition to my skillset. On the other hand, it was enjoyable to do, and it flled a hole that I had come across.

So, I suppose, deciding on which method to use is just a matter of context. Two-day deadline? Stackoverflow. Six weeks and lots of free time? Actually learn it and add it to your CV.

[0] http://flax.ie [1] http://flax.ie/an-app-in-under-five-hours/

You always need a foundation of knowledge. It's not lazy at all to search for, find, and implement the answer. A lot of the more helpful Stack answers are really just pointers anyway.

Also, eventually with any complex problem you're going to (quickly) get to the point where some quick research is not going to work.

My stats - 2 questions in 1.5 years.

I only resort to question sites when I am at the end of my tether with a project. I enjoy knowing what the correct procedure is.

It's like 3rd party plug-ins or pre written code, I would simply not put it in my project unless I knew exactly what it does.

I think this post is generalising their own experiences, it sounds to me like no progress has been made in their programming skills since they used to do it "the old way". I used to use experts exchange all the time when I was learning to code, I occasionally come across posts now when I am trying to sort a problem.

It sounds like the authors lack of understanding of how the language works means they continue to post the most trivial questions to question sites.

This is the same argument as "the Internet is bad because it makes us lazy."

That aside, any blogger that tries to convey their opinion by starting with "Don't get me wrong," should be dragged online and shot. But not before asking about the appropriate type of buckshot on the Guns SE.

before i ask a question, i try to find out if someone else already answered a similar question. the first few posts that come up rarely produce insta-fixes to my problem, but deal with different problems. hence: learning effect - by skimming over it, i learn (something) about a problem that i don't have right now.
"Copy/paste code from answer."

Copy/pasting is one of the most obvious code smells. I don't do it, you should never do it, and anyone who does should rightly be considered at best irresponsible and at worst incompetent.

The first reason is obvious - you need to understand every line of code you check in. I won't beat a dead horse here.

There is a more subtle point, however. Every programmer writes in their own style and it's important that your code has a consistent style (yours). This doesn't just include the cosmetic aspects (e.g. indentation), but also design tendencies, word choice, etc. I've never seen a piece of code someone else has written and thought "Wow, that's exactly how I would've done it." If you're willing to tolerate a completely different style in your source, then I question the degree to which you care about your craft, and consequently all of your work the way I would an author's if I found 5 pages written by someone else in their book.

So, please, read the code, understand why it works, figure out how you would do it, then code that up.

When I have a programming problem, often the answer comes to me while writing the question on Stack Overflow.

Trying to explain your code to others forces you to simplify it by removing anything that is not relevant to the problem itself. The problem often becomes head-smacking clear once you remove all the cruft.

Yep, this is my experience too. Forming a question that can be approached by others is pretty hard and makes you think.
I've been on Stack Overflow for 2.5 years, and my current stats are: Questions asked: 4, answers posted: 1,909 (including to one of my own questions).

So, I guess that makes me still a hacker, then? Awesome! :)

My point is: not everyone uses Stack Overflow in the same way. I find it much much harder to come up with decent questions, than answering stuff. I'm quite the karma-junkie (the design works) too, and I think I'm not alone in that.

I think the projects "killed" by SO in the fashion described here were maybe not very relevant to start with. There's nothing preventing you from learning on your own, and a single answer on SO is rarely wide or deep enough to remove the need to study and learn for yourself.

In the past, they said the same thing about Google/Wikipedia/The internet in general, that it make us dumbs, etc. But it is not quite true, as we are now able to use our newly free resources (time, mind, etc) for other useful things thanks to the assistance we get from those services.

Hacking in particular, you now have more time to write more tests of your code, as you got things done earlier. you are now have time to add more features, and you are now have more time to learn new technology, language etc.

Same as the human memory is not weaker than it was 15 years ago, although, 15 years ago, every human being was able to dial out tens of numbers without looking in the phone book, while today, we simply type the name or speed dial it from the mobile device. We do remember less phone numbers, yet, those "cells" in the brain are used for other things.

Hackers -should- be lazy. They should never want to do work that's already been done. They should be working on new problems that haven't already been solved, or improving existing solutions.
(comment deleted)
Nonsense! Do you refuse to use books? Not avail yourself of libraries? Don’t wander through (pick your favorite department) the halls of your academic situation? Of course not, that would be majorly stupid. This is no different— in fact what is needed (possible weekend idea coming up here) is something to automate the process… Information is like butterflies— go net yourself some.
I agree with everyone who said "you're working on stuff that's too easy" but got me thinking that it would be interesting to put together a project made up entirely of cut and pasted fragments from SO. Probably not really possible since there's always some glue or editing needed so there's always at least some thinking involved.