re: Joel is stepping down from Stack Overflow VIEW POST


But Stack Overflow also has a lot of wrong, bad, or even outdated answers.
Stack Overflow answers also often lack the reasoning around the answers.

The danger is looking at stack overflow, and copy pasting the answer from it.

I definitely think learning to filter out bad/low quality answers is a valuable skill. And of course, straight copy-pasting code is an absolute no-no.

For what it's worth, most of my SO usage comes from looking up existing answers and seeing how it relates to my code. I treat asking a question as a sort of last resort.

Yeah, I think learning to use StackOverflow to move along and find ANOTHER problem to Google is a research skill in itself.

Whether it's because you found someone else who already asked the question or whether it's because you asked the question yourself, it ...

You know what it does?

It turns higher-level programming languages even higher-level.

Does writing assembly make you a programmer who's been through the ringer and can do harder things than just writing high-level languages that take care of memory management for you?

I'd say yes!

But would we have all the nice things we have in the world of computers if everyone still had to write assembly to get things to work?

I'd say no.

Just like higher-level programming languages took a lot of the "spend a day getting one line of code to work" out of programming, while still forcing people who want to write GOOD code to know what they're doing conceptually, StackOverflow takes a lot of the "write extremely un-Pythonic loops for years until you happen to master comprehensions" out of the task of writing higher-level languages ... but you still have to know WHAT you're doing to solve your problem.

As I just wrote in an article I'm about to post this week on using Python to convert XML to CSV:

Once I Googled “XML to CSV Python,” the tough parts of finding the correct search results were:

  • conceptual 💭:
    • figuring out that “Car” items were “flat” & “repetitive” enough to make a good “loop”
    • figuring out that the “attributes of each Car” were repetitive enough to make a good “loop”
  • technical 💻:
    • reading the documentation and Googling to learn that Python’s “ElementTree” plugin came with a way to list all the key-value attribute pairs for an item (“.attrib“) in a way that was compatible with the “Pandas” package’s “.from_dict()” command
    • understanding Python “lists,” “dicts,” looping, ElementTree, and Pandas well enough to play around, trial-and-error, until I got the output I was looking for

The important takeaway is that it’s the conceptual work that helped me realize that this transformation was “easy to do in my head.”

Once I knew it was “easy to do in my head,” that’s when I could formulate a game plan for “doing it in code.”

I must've used 5 different StackOverflow answers to write my 5-line-of-code example for the upcoming artice, because lordy, you're right: I don't work with Python enough to know that ElementTree comes with .attrib() or to remember that Pandas comes with .from_dict().

What I have retained over the years is a vague sense of "in Python, just get things into lists of lists and lists of dicts and dicts of dicts and dicts of lists and something will work."

Yes, I have to Google for that "something" every time.

But my 9-5 job is to MacGyver together whatever systems I'm given in whatever tools my company has bought.

Google and StackOverflow make me cheaper by saving me days/years. I'll go so far as to say that by turning programming into a just-in-time "build" process, rather than having to keep every "library" loaded in my head at all times, they make it affordable for my small company to stay in business, considering everyone now has to have the latest & greatest 3rd-party tool every year to keep up with "delivering Amazon/Netflix-like customer experiences."

I think there's as much of a need for skilled just-in-time research-based programming in the world as there is for skilled deep-knowledge-and-hard-knocks-based programming.

(Now ... are we going to run out of deep-knowledge-and-hard-knocks programmers? I suppose you could argue that. But I have always gotten the impression that even in this era, there're plenty of people out there who have that tinker-on-the-weekends drive and end up knowing a stack deeply. Many of them answer questions on StackOverflow!)

code of conduct - report abuse