A recent post by [Christian Heilmann] is one of several I’ve read lately talking about how Web sites–Stack Overflow, in particular–are breeding a new kind of developer. The kind of developer that simply copies and pastes example code or schematics with no real understanding of what’s going on. His conclusion is that developers who don’t fully understand what they are doing will become disinterested and burn out. He’s talking about software developers, but I think you could extend the argument to developers of all kinds, including hardware hackers. He concluded that–at least while learning–you stick to the old ways of doing things.
I have trouble disagreeing with [Christian] on the details, but I do disagree with the conclusion. People have copied work from other sources for a very long time. We’ve all seen circuits that were clearly either torn from a datasheet or even glued together from multiple datasheet examples way before there was an Internet.
There’s two things that are slightly different today: First, everyone has easy access to lots of examples. You don’t have to go find a book (possibly at a library), search through it, and find one or two examples. A quick Google will find dozens or hundreds of examples.
The second thing that is different is that there are places exist like Stack Overflow where you don’t even have to go looking. You can simply ask, “How do I do X?” and you will get answers from someone. It might be wrong. You might not understand it. But you’ll probably get some kind of answer.
I suspect the hacker community does this less than the general population. We want to build our own things, even when it sometimes doesn’t make a lot of sense. But even so, most of us draw the line somewhere. Do you really want to develop a BSP and port Linux to every board you build, or do you buy a Raspberry PI or BeagleBone? (And, yes, before you comment, we know that YOU, in fact, write your own custom OS in machine code for each and every project.)
However, if you don’t have that hacker mentality–and not everyone doing hardware and software development today does–grabbing something off the shelf is a big win. In the workplace, in particular, this is encouraged even though it isn’t always the best idea. I think the problem is we are in a period of transition. The Internet has fundamentally changed how we work, but how we teach people hasn’t fully caught up.
Being an engineer or designer or creator years ago meant you had to know how to solve tough problems. Sometimes that took research and part of that skill was knowing where you had a high likelihood of finding information on a particular topic. Being a research savvy problem solver (and a hacker, by our definition of the word, nearly always fits that description) still has value, of course. But it isn’t as valuable as it used to be. We need to learn (and teach) a new skill: using Internet research. Off hand, I’d say this has several key components:
- Formulating a relevant query
- Asking relevant, complete, and reasonable questions
- Evaluating the relative merit of what you find
- Adapting what you find to suit your exact problem
While there are some courses that talk about how to do search, most of them focus on the first aspect–the query. Only a few (like this one from Berkeley or this one from the UK) consider critically evaluating what you find, but even that doesn’t go far enough if you are trying to incorporate a schematic or piece of code into a working design.
Formulating a Query
This seems stupid, I know. But over and over again I have people ask me a question that can be answered with the first result from a Google search. They’ve usually tried, but there’s clearly a division between people who can come up with the right search terms (and know how to use the advanced operators that Google provides) and those who can’t. I try to resist the urge to shame the people who ask me questions like that.
Asking Questions
I wish they required a class in asking questions before you could graduate high school. Go to any Q&A site and you’ll find general questions like: How do I build a robot? On the opposite end of the spectrum, you have the 42-page questions that only the most bored person will bother to read and internalize to provide a reasonable answer. There’s a good document available online about how to ask good questions, that’s worth a read.
Evaluating the Merit
Shockingly, not everything on the Internet is correct. Even when things are correct, they might not apply in your situation. For example, if I asked you “What’s the best truck?” You might give me a pretty reasonable answer until I reveal I need to transport gasoline. In the old days, you figured anything that was printed in a book, magazine, or vendor’s data sheet had at least some vetting from someone other than the author. That didn’t ensure it was correct and high quality, but it did tend to weed out the most obvious bad content. A corollary to this: to evaluate it, you are going to have to understand it, not just take it on faith. You need to consider the source and match up against what you know to decide if the information is correct or not.
Adapting Answers
No answer is likely to meet your requirements completely. In fact, I often see people struggle badly to make something fit when it would have been easier to do new development (or use a different tool). Reuse is often a good thing, but it isn’t always. Ideally, you will fully understand something before you use it so you can fit it to your exact situation.
Ban the Internet?
I like to think most of us are smart enough not to cheat ourselves. You know that if you cheat your way through a class, you aren’t really getting benefit out of it, and I would imagine that anyone motivated enough to build projects on their own are going to take time to understand what they reuse, and that’s great. It gets more complicated when you have an external entity (like a boss or a teacher) pressuring you.
However, I think reusing things from the Internet is part of the new landscape and it won’t go away. It was easy to, for example, lament that calculators made math too easy for students. But the answer has not been to ban calculators. You had to change how math is taught at a fundamental level.
So when [Christian] talks about the “full Stack Overflow Developer,” I think he’s missing the point. The developer that can effectively mine the Internet for possible solutions, evaluate them, and adapt them is going to win. We just need to get people in that mindset and to stop blindly reusing things we don’t understand. We should teach handling Internet-based reuse as yet another tool that you need to master.
Not knowing how to build a nut and bolt doesn’t make them less useful for building something better.
But using them when you should have used a machine screw and a tapped hole does.
Which is kind of the whole point.
Which is why Stack Overflow has a moderation system for solutions.
The entire point is learning to ask the right questions. If you use a metric wrench on a standard bolt: that isn’t a problem with the tools.
My take on the software/programmer industry as a whole is that there are many vocal advocates of bible study who don’t respect anyone who can’t write “bubblesort” in bare-metal c using vim over an SSH connection .
Personally: I’m more interested in the developer who can use X11 forwarding with Codeblocks and knows what an “Arraylist” or “Vector” is.
The “Simulink” philosophy from Mathworks acknowledges what a small percentage of real world problems are deserving of the high total cost of ownership that comes with lovingly hand-crafted/custom tailored solutions which require a subject matter expert to be kept on payroll/or what is effectively “time-and-motion studies” via documentation(a revision control/support white-elephant).
As a fraction of economic inefficiencies that can be eliminated with software: the ones deserving of non-stackoverflow solutions are so small it’s barely worth mentioning. What’s left is a small army of artisan cobblers all engaged in the same marketing shenanigans as “Monster Cables” trying to differentiate themselves on anything but cost.
Why does the world need millions of people who have all read the same books and done the same programming exercises? If you can distill that expertise in to blobs of reusable code which address the vast majority of boring everyday problems: you can solve all the boring challenges which compose the vast majority of problems which pay people’s salaries.
Somewhere out there: there is an open source project like LMDB which requires a guy who can run a Swiss screw machine. For the rest of the world: thingiverse or mcmaster-carr probably represent a 95% solution at 1% of the cost of single-point cutting threads or owning a screw manufacturing plant.
The methodology described here solves these problems very effectively. I haven’t seen very many problems which can justify the efficiency gains of “elegant”/”fast” code vs. the time it takes(and additional expense) vs. what can be produced as a proof of concept by a code monkey.
TLDR: I have open contempt for rote memorization in anticipation of the need for that knowledge based on the frequently false assumption that it will come in useful later.
I see this as one of the most expensive of sacred cows breaking windows out of the economy. Mostly for the sake of soaking up student loan dollars and/or selling certification/self-esteem and achievement to parents/HR departments.
c2.com/xp/YouArentGonnaNeedIt.html
A programmer is someone who can write code to solve a problem fast enough to where the code is still useful for solving that problem. The more problems you solve per day: the better the programmer. The Stackoverflow method reduces debugging time because code that doesn’t compile gets moderated out of existence.
Yes, yes it does.
Im godsmacked by the things my nephew does, i used to think every generation is (on average) smarter then the last, but this whole iphone/social media generation is pretty much lost, and their kids even more so.
“Gobsmacked”, not gobsmacked. This iphone/social media generation pretty much doesn’t know how language works, so their points are not made as effectively and crisply.
NOTE: I’m just saying this to be funny. But actually I agree with jacobchrist. People can create great code with C without knowing Assembly. We advance by standing on the shoulders of those that came before us. I also agree with what you may be implying, which is that you can’t skip out on the fundamentals.
And in my own comment I screwed up.
“Gobsmacked”, not godsmacked.
Internet justice for ya!
;P
Not sure how to break this to you, but the parents, grand parents, and often Great Grand parents where the sharpest tacks in the box themselves. Your social media generation is undefinable, because multiple generations use is to great extent. Why not? Certainly can be quite useful..
So where you use the word ‘where” did you mean “were”, and in the negative form of it as in “weren’t”?
Because I feel like I stepped on a tack reading your comment, and being a person who visits the internet am not sure I have the capacity to decipher it.
And incidentally, the ‘iphone generation’ refers to people who grew up with iphones, and isn’t referring to anybody that uses iphones.
Does hilarious commentator recognize every generation ever said the same thing? you should be weary of growing old and how it it might fossilize your thinking, for these statements are just a symptom of your failure to adapt like a younger mind. And even if it were ever remotely true, one would only have to look in the mirror to find the root of the problem. But the obvious and only potential cause of this make believe problem never leads to reexamination. haha, I wonder why…
This is one reason I avoid the Arduino GUI — too much of a black box for me. But at some point you have to rely on black boxes (unless you want to write your own compiler, mine and smelt your own metals). Examples are something else. I love a good example.
The problem is not generally the tool no matter how easy the tool may be but rather that the user of said tool just gets lazy and expects things to happen. The Arduino GUI is not a problem per se but more that if a problem occurs, the user is to afraid or uninterested in checking what happened in the background and tearing the thing apart.
Similar to technology, the convenience of a smart phone is amazing but it should always be used with the knowledge that it could one day just vanish and you need to do things the old way.
Embrace technologies but never solely rely on them. Even if it is something like the Arduino GUI. I am not rage defending Arduino as I am mostly doing Python related stuff but do feel that it gets attacked more than it should sometimes.
“Similar to technology, the convenience of a smart phone is amazing but it should always be used with the knowledge that it could one day just vanish and you need to do things the old way.”
Can you name some examples of this happening?
It was more an analogy to don’t forget the old ways… I did not mean your phone will literally vanish. :P
Like, say, when the power goes out and I can’t bill customers with my POS machine. I have to hand write *GASP* an invoice. This obviously doesn’t happen often, but when it does it is a good thing I have the ability to read and write effectively.
A few years ago I took a group to a popular eatery in Galveston. They turned us away because their cash registers were down. I was thinking cigar box and legal pad.
I once was at a supermarket and the power went out, the girl at the cash register not only knew all prices but could add them up at a speed rivaling the register. It was quite amazing to me to be honest.
Of course she probably could only finish the line because you are suppose to have a receipt on request and have records for tax reasons an inventory and all that stuff. But it was 7 or so people and it was no issue for her to handle things.
Katrina, Sandy, Joplin Mo… Just a few examples of people losing modern communications, even if for a relatively “short” period of time. It took 4 days to restore cell phone coverage in Joplin. And there are times, like during 9-11, when the system just becomes saturated when you need to communicate the most.
The ham radio people point to incidents like this to try to validate their hobby.
Because I’m a ham radio operator is how I became aware of the following. In many places law enforcement and emergecy services are given priority use of the mobile phone network. When the civilians het access they may have to wait hours for a time slot that could be as little as five minutes. I believe we can expect the service provider aren’ going to let this become common knowledge so their customers can plan how to use the time slot wisely. The closer you live to important to the cities important to the economy and security of the nation the more likely one will find themselves subject to that. However even those in rural area could feel the system overload because of events far distant emergencies if cross country emcomm is involved. Much of emergency services and security emcomm is being built atop what would think as private commercial infrastructure. There is name for it but I can put my hands on the papers from the Local Emergency Planning Committee meeting where I learn of that.
After some incidents the government in the US mandated backup power systems in all cell-towers though as I recall reading, so it’s more robust than it used to be and you should keep that in mind when quoting examples.
Not that there aren’t other things that can go wrong than simply a (short) power outage.
I’m basically an industrial hacker at my workplace. Because I know not only the ins and outs of all the equipment, but also have the ability to run the numbers and design on the fly, my work is invaluable. In the past month I’ve saved us over 100k in down time when Things Go Bad. Of course, my skill set isn’t in demand all the time, but when we need a new custom saw air control and timing manifold, and the soonest one can be bought is a week out…
Sometimes having obscure skills and knowledge really is a great benefit.
Back around 2000, the Marine Corps and Navy were using an outrageously awful aircraft maintenance tracking program called NALCOMIS. We actually rejoiced when the system went down, because the fallback pen-and-paper VIDS/MAF system was far more efficient.
NALCOMIS was just the electronic version of VIDS/MAF (Sort of). Maybe if i came up in VIDS/MAF I’d have thought different but when we lost NALCOMIS on deployment and had to do everything paper and pen, it was very very inefficient. Just having to run around getting signatures was more time consuming than it needed to be. Not sure what exactly you think was the problem with it was.
As a developer of malware I can’t complain. The more advanced tech gets and the dumber people become the better for me.
And that is the problem. More advancement in technology should not make people less intelligent but sadly you may be right in one way or another.
So you are the one who has been posting all this example code with no security checks :)
I avoid it because it’s gross
“The developer that can effectively mine the Internet for possible solutions, evaluate them, and adapt them is going to win. ”
The second part of that, evaluate, is where the ball is getting dropped. Using a solution without evaluating it and fully understanding it causes problems and doesn’t educate. Deadlines can be a harsh mistress though and push for a quick answer when more thought would be better.
This is where I land when it comes to the “I don’t use the Arduino IDE” comment above. I mistrust libraries that are too big for me to actually evaluate. Where do you draw that line? Is it just looking that other projects with a proven track record depend on the libraries you have chosen?
Do you trust the Windows API? The fact is that GUI-driven software requires a complex layer just handling the interface, and sometimes you just have to give up and accept and use the layers provided. I spent a couple of years trying to develop my own platform-independent GUI toolkit, and while I did learn a few things along the way, it was mostly wasted time. Now I’m using vxWidgets (which is HUGE by comparison), because I don’t have even more years to waste. As [Ronald Reagan] said, “trust but verify”. Sure, he was talking about nuclear disarmament and we’re just talking about software tools, but the principle is the same. As long as I have the source code I can be relatively confident that I’m not at the mercy of the whims of others.
Most of us drive cars that were manufactured for us, because building our own cars just wouldn’t make sense.
And btw, I’ve gotten a LOT of good information from Stack Overflow. Not just cookie-cutter code, but explanations of why things are done the way they are on a starship.
I like the Arduino IDE, as it seems opposed to most people here.
It’s a tool, it’s not a black box. Most people use it as a black box, because most of the time they don’t need to do anything with it. However, at it’s heart it’s C (with a little bit of C++ in some libraries.) If you know how to write C, you can deal with any portion of it.
The best (and worst) thing about it is the libraries. Most of the time they just work. If they don’t you can go dig in. If you’ve got a board that’s not supported, as long as the core is in there, it’s easy to add it. (if not, it’s more work, but you can still add it.)
The greatest thing about it however, is you can start someone off and say, look at these examples. You can blink a light, great. Let’s start adding to that, and eventually you get to the point where using the same tool, they can program robots, or make whatever. The point is adding understanding to them.
The Arduino IDE: Is it annoying at times, hell yes. Is it worth it to use, hell yes. (It’s like makefiles. Especially with the auto* tools.)
That’s the point of a tool, to understand it enough to be able to use it. If you don’t to ask for help, in understanding. Frankly, I think that for a lot of people, being able to show LEDs, and physical processes gets them to a higher level of understanding faster, because they can see it as compared to software development in general. Now, for both of those, you need to learn many of the same things. The level of understanding required for a small computer, as opposed to a program with a GUI, is generally more accessible, since you don’t have the added layers of complexity. A lot of the questions I’ve gone looking for in complicated environments, have been How do I do X, because to fix one thing, I don’t want to read an entire API.
The Interwebs help smart people be smarter. It also helps lazy people be more lazy.
I think it’s been said before, the internet does not make developers dumber, however it does lower the average skill level by lowering the bar for entry. On the flip side, it also helps good developers become great developers because it turns every query into a learning opportunity. You may argue about dependency, since back in the day developers had to memorize language features and thick documentation manuals, while I merely google the documentation or let auto-complete help me browse the API. However back then you could only learn from the manuals or your co-workers. I can learn from some of the best developers in the world. In fact, speaking of SO, i routinely read answers by people who helped implement C# and .NET. Back then your run of the mill developer didn’t get to pick the brains of those types of people.
Agreed. I consider myself a fairly competent programmer but I’ve often found that sometimes the documentation for certain functions to be lacking. With a little bit of searching I can usually find a code snippet somewhere of the function actually in use. It really cuts down a lot of the trial and error that comes with such things. On top of that I’ll sometimes stumble across a different way of doing something that I’ve already been doing for a long time and then be able to apply what I’ve learned to my everyday practice.
I agree, for a simple example I was looking for a quick and dirty(unpolished/easy) way to generate reasonably secure disposable 64 character hexadecimal passwords, and found the xxd command which I had never heard about. Many moons ago (pre-perl/python) I would traditionally have used hexdump, tr, awk, cut, head and tail. The end result would be the same, but it can add new tools to your toolbox by looking over peoples shoulders People whose shoulders are a few thousand miles away.
dd if=/dev/random bs=128 count=1 2>/dev/null | xxd -c 32 -u -ps
470019EC225F377F0E754A35CEB2DDB6C6E4F76D763E3F39B0DAA434EB899986
CAC07EAADD5A74312E2F6C7E4824DD48A6B4D86C0EBF2C72649FD54728FC515
269EBFF4DC1382AB9EABBC71E28E0E1F11565E83CADEF55ED380E82BBF9945CE
094DC664E82BC399C067D81D8DE4215B1670CD01EFD772E7A8D2557CE3B13B4C
That’s actual production code used to generate a password.
Agree. Instead of dumbing down people that would be developers anyway it’s lowering the bar for entry. Linus resisted the inclusion of a debugger in linux because it made it too easy for people to add bad code. I think obfuscating the technology is a really bad way to do this, as a user or programmer it should be as easy as possible for me to do what I want and some other way needs to be used to grade code.
Feynmann coined the term Cargo Cult programming IIRC, this is not a new problem.
Personally, I find that formulating a decent question usually gets me about half way to the answer.
This is a great point!
Thanks for a great article, Al! I like these editorials that question some of the community groupthink.
It bothers me when the won’t-use-a-chip-I-didn’t-diffuse-myself crowd bashes someone’s work because it uses a canned component or is similar to an existing project. None of us entered this hobby / field starting from first principles, and we shouldn’t insist that others do the same. The Internet can be a great resource for some of these canned pieces, and even the bad advice can lead to good lessons on how to evaluate these answers.
I agree. There are clearly cases where people use trial and error to overcome lack of grounding in theory, but at the same time even the won’t-use-a-chip-I-didn’t-diffuse-myself needs to realize that what they think of as the ground-floor fundamentals are actually resting on the shoulders of giants. It’s giants all the way down, it’s just that if you go far enough back it starts to seem like obvious fact that everybody has always known. This has always been true, and it’s a big part of why every generation has bemoaned the laziness, ignorance, and especially the impatience of the next.
The other root of this problem is that because the experience of consciousness is continuous and the accumulation of experience gradual, people think they weren’t ever as ignorant or foolish as people they see around them. They’re wrong.
On the other side of the argument, we now live in a world where we have instant, unlimited access to almost whatever information and knowledge we want. We may no longer require a bottom-up approach in order to build something, but I think a top-down approach is perfectly fine.
What I mean is that if I want to build a robot, I don’t have to know how to script very thoroughly, I can just find code that’s relevant to me on the internet and modify it to suit my needs. If I keep playing with the robot though, I’ll learn how to script better. I feel like this is a good thing, it keeps the project fun and interesting, which opens the door to a lot more people to get involved in projects like this.
This unprecedented access to knowledge and information can only be a good thing.
I write large MRP database systems for companies, I do it on my own and do it by “building on the shoulders of giants”, a lot of abstraction layers, hardware, operating system drivers, visual programming languages, database servers and places like stack overflow and forums to help me when I reach a problem.
I simply could not do this in 1988 when I started I had to write my own printer drivers, flat file database system all in turbo pascal for DOS and If I stalled due to a problem you were on your own with the PC Internals manual to fix it. Likewise the only info on hardware I had was the TTL databook, Intel CPU manuals (ahhh the 8031..) and electronics magazines.
There will always be “black boxes”. For example I consider myself to be fairly good at C but I am definitely going to include “usb.h” rather than trying to understand the complexities behind it, why? I recently tried to understand the Microchip USB stack to see if I could, the code was Macros within macros, #ifdefs within #ifdefs and totally incomprehensible without knowing the pic32 USB hardware and CPU . Moreover GPL versions of this stack added more #ifdefs and macros and coding styles to the mix to the point that the only thing that could understand what was going on was the compiler. I am sure it could be reduced to a single few hundred line state machine for my device but who has the time and that is just one include file!
So yes there is a lot of copy and paste going on and yes someone could copy and paste my code into their project and just change the name to theirs without understanding it, but the option is there if they want or need to and this allows you to concentrate on the bigger picture and achieve more faster.
You leave out a very important element in effective vetting of information found online:
Always search for how NOT to do it. Or why not to do it in some way. Or if you are working with a simple debate (does X really?), make sure you look up the opposition to what you want to be true.
I use this method because I am lazy, but I almost NEVER find an answer that can be pasted without modification. I usually need to combine many pieces into the one. Google translate is often in the mix as well. I’m going from point A to B and any shortcut I can find is valid, with more time to spend on what I am required to come up with myself.
Remember Larry Walls maxims, that the three virtues of a good programmer are laziness, hubris, and impatience (if I got that right). It is silly to reinvent the wheel over and over ) though I do it all the time. In other words beware of the “not invented here” syndrome — which infects many good engineers. I always rewrite and improve every bit of code I steal because I am just smarter than everyone else. I am getting better at not doing that, but it has taken me over 40 years of experience programming to get that lazy.
Also consider motives. The true hacker wants to understand how things work, so he tears them apart to find out. I have bought things at surplus auctions just for the pleasure of taking them apart to see what is inside. The other motivation for folks working for a paycheck and facing deadlines is to get something to work RIGHT AWAY. Some people thrive and are creative under this kind of pressure, but it gets tempting to look for every short cut. I have certainly found myself saying, “I would love to take time to understand how this really works, but I can’t afford to do that right now.
And the ad displayed at the bottom of this article is “100k reference designs”, irony defined.
Implementing a solution has always been integrating black boxes to work together so that you have a solution. Every high level programming language is some form of black box. Patterns are a form of black box. If you are part of a dev-team you rely on the modules of each other, which are black boxes for you. I do however believe that the question has merit. As it asks what a developer is nowadays. Coding and developing is becoming easier. And that is a good thing. 40 Years ago every dev could use Assembler. There were always ideas, how to abstract the binary world from the language that codifies the solution of a problem. In 40 Years a developer will be a problem solver, who is able to craft an algorithm in his language… maybe computing will be intelligent enough to make that possible (IFTTT and automatic try that already for the Laypeople).
I would say copying code if you forget syntax but not logic is ok. My job does not involve coding but i enjoy it for hobbies, I cannot count the amount of times I need to google the correct “for loop” syntax for bash, js, php, c++, or python. If I professionally coded I would hope I would remember that kind of thing.
Before Google and Stack Overflow, we had cheat sheets (“Reference Charts”). There is no shame in this.
There where slide rules of sorts for DOS commands. Only if I could find something similar for Linux. My DOS learning without a slide rule tool where decades and a TBI ago.
https://en.wikipedia.org/wiki/Cargo_cult_programming
Anyone who has never written anything sufficiently complex will observe an open documented solution with scepticism.
As someone who regularly suffers poorly documented 3rd party APIs…
I can confirm you pretty much end up buying 8 year old $60 books for a page with a poorly constructed commented example, or reverse engineering other peoples’ similar projects to build your own examples.
You know why?
Google became a inferential profile engine a few years ago, and is no longer helpful to those who are looking for something specific/obscure. Sure you could ask for help, but mostly you’ll get a snide RTFM in most groups… you know, the manual that was and will never be written.
Guess how many grads are on Facebook during work hours still asking their friends for help?
These ones usually can’t keep their jobs longer than 10 months…
I was often turning in my programming assignments late.
I insisted that I wouldn’t search the web for a solution for a programming homework problem, but work it out on my own,
maybe be a bit of help from the instructor.
Just as a response to the “Let me Google that for you” part…
I detest whatever it is that Google has done with their algorithms in the last year or two. The + operator no longer works as it always has, as a result of Google+ probably. Quotes are now required to force Google to search for exactly the word I used and even that is not always a solution. Quoted phrases are not considered as “search for exactly this phrase as I typed it” any more either, as far as I can tell. Those advanced search techniques only remain useful until Google decides we’re all to stupid to use them.
Over the last two years, roughly, Google has begun offering me fewer and fewer relevant results. Perhaps it is a consequence of the creeping malware pages and aggregators, but there is clearly something different – I haven’t yet found an alternative that gives me a better result.
Seems there is somewhat of a fix
“We’ve made the ways you can tell Google exactly what you want more consistent by expanding the functionality of the quotation marks operator. In addition to using this operator to search for an exact phrase, you can now add quotation marks around a single word to tell Google to match that word precisely. So, if in the past you would have searched for [magazine +latina], you should now search for [magazine “latina”].”
Addendum: And for multiple ones you quote each word separately I understand.
While there’s many good books on the subject (Smarter Than You Think, Mind Change, The Shallows, etc) that are worth a read.. there’s 2 fantastic episodes of the You Are Not So Smart’ podcast, that anyone even remotely interested in this subject should listen to!
http://youarenotsosmart.com/2015/10/14/058-why-technology-isnt-making-us-dumb-in-fact-it-is-making-us-smarter-than-you-think/
http://youarenotsosmart.com/2015/11/25/yanss-063-how-search-engines-make-us-feel-smarter-than-we-really-are/
I find the best use of the Internet, the one that makes me look morther smarter, is in looking up things quickly to check if my smart-ass comments on HaD have any validity whatever.
“Stupid” is clearly defined;
1stupid
adjective stu·pid \ˈstü-pəd, ˈstyü-\
: not intelligent : having or showing a lack of ability to learn and understand things
: not sensible or logical
: not able to think normally because you are drunk, tired, etc.
Stupid is not using the internet to learn more what yo need to need or want to know; strangely enough, stupid could also be not using the internet to learn. What are or not stupid question is the judgement call of the person doing the judging.. Ignorant is more often a better coice than the word stupid, stupid being often misused. Yea I know that’s an awkward twist of words, I just got tired of working it out better, call me being lazy tonight. The evidence IMO clearly shows the internet can propagate and reinforce ignorance. Stupid is a developmental hindrance that a person has no control over, but, but remaining willfully ignorant could be symptom of stupidity. The world is full of that.
Oh, what great irony! With the prevailing attitude in this article and the comments section, it’s a wonder that Hackaday has any damned readership at all… After all, the core of HaD is still project write-ups.
Unless you want to argue that the core of HaD has become a bare-metal circle-jerk. It certainly looks that way from where I’m sitting.
Hiring these “developers” makes you stupid.
I used to avoid all rote memorization like the plague. If I can look it up.. why bother I thought. And yes, I had that attitude even before the internet! But then one day I realized that even when fully concentrated on coding I was actually spending far more time in the browser, on Google than I was actually writing code. I’ve been using flashcards daily for a few years now and it is starting to come in handy!
Good discussion. Now it would seem to me that the obvious solution is to code up a web page that automagically quotes every word typed into the search box and then passes that off to google. Maybe then it would be better. :-)
I agree with Christian. It used to be that you had to read through a whole book to find a specific quote you wanted. Now, you can just go onto Google, skip interacting with the text and grappling with the authors ideas, and take the quote out of context.