Intent of my blog
I am trying to express my views on the problem which i think google search pose to developers in terms of limiting the ability of software developer to solve problems.May be my point of view is totally irrelevant to many of you but i think getting every answer at the click of just one google search button leads to under-utilized brain.
Approach
In my personal day to day work whenever i am struck with some problem and i think i just can’t think more i just do a google search and try to find the solution to my problem. If the solution which i get by viewing the first few links(which we all normally do 🙂 ) on google search page are relevant to my problem i will integrate(after understanding the solution) that piece of solution in my code and move to the next step/task.
Problem with this Approach
- Easy way to get solution :- Once you know that you can find every solution to your problem by googling it becomes a habit and most of the time without giving proper thought or applying your mind you just do google search.
- Brain not optimally used:- Because more than often we are relying on search results to give us the solution to our problems we tend to let search engine become our brain and leaving the brain we have do nothing.
- Lazy Developers :- This also leads to developers becoming lazy in solving there problems themselves.
- Solution doesn’t work as expected:- Because you are not giving your 100% in finding the solution to your problem leads to the another problem that you have not fully understood your problem and the solution you found by googling was just a partial or incomplete or even wrong solution.
- Time Waste :- It happens that you try to put time on solution which are not the actual solution to the problem leading you to tweaking the piece of code to work the way you want and finally if it doesn’t work you just delete the whole piece of code and start thinking in a better way.
Above mentioned are few of my concerns that i can think right now but i think there will be many.
Please share your thoughts also even if you think what i am saying is totally rubbish 🙂
Ah, so it isn’t really against Google itself but Internet search in general. Although today both tend to be synonymous…
I don’t necessarily agree with your views, but I find them interesting because they are thought provocative…
I don’t know how you use your searches. Personally, I don’t really use them to “solve problems”, which they cannot do. At least in the sense of finding an algorithm or doing an optimization for you.
Searches are about productivity. If I need to efficiently open and read a file in Java, I can just try the half dozen of methods that are available, benchmark them and see what is the best method. Well, some people did that already. I found that with a search… And well, I prefer to use this existing result than re-inventing the wheel (or to use the shown code to do my own measures, analyze it and see if I can improve it).
Same if I need to read IDv3 tags from an MP3 file, to use an encryption scheme, to read an XML file or such: you just search a library (or existing method) to do that, whose license is compatible with your project, and carry on.
Of course, you can learn on the topic, read the specs, and do the job yourself. As Jeff Atwood wrote several times, it is a worthwhile learning experience, making you a better programmer. But you might have not this luxury in a job (tight schedules), and can do it wrong (particularly in encryption domain!).
It is good to know have a sort algorithm works, but you will just use Arrays.sort() call to do the job!
Same for some solutions, like one asked recently on StackOverflow: to find out if two database tables are identical. You can sit and search for hours a good solution. Or search and find an elegant solution. Which you can inspect with a critical eye, seeing if it is really adapted to your problem (just want yes/no or more detail on differences?), if it can be improved in any way, etc.
As I wrote, it doesn’t make your article total rubbish. 🙂 It is good to remind to keep a critical mind, to go beyond the first found solution, etc. But it is no a good reason to abandon Internet searches! 😀
Which became our “globally accessible manual”: it is faster to search how to use some API with samples, to find the usage of a Unix command, the syntax of a SQL element, than go grab a book and search in it! (if you have it…)
Thanks for your comment, i totally agree with you that search engine can make us more productive.You are also correct that it is a generic comment applied to all search engines not google but who uses any other search engine :). My only concern is that getting answers through search engines may lead to a problem that for every problem we just do google search.
Yes we cant know every thing so we need search engines.
So you bought a comfortable car and now you put on weight because you don’t walk anymore.
2 solutions:
– use the car only when needed -> use google only to exclude wrong solutions, not to copy and paste
– find a gym and do exercise -> copy and paste solutions at work but do open source or side projects at night, which will keep your brain busy and make you feel better about programming
I agree with your views, the point i am trying to make is that with information to see easily accessible too much of copy and paste happen.
Hello, I think the whole problem has to do with “copy and paste” programming.
I have always seen situations where frameworks contained code copied from tutorials and the like and noone was able to explain the details of that code, as a matter of facts it was a “black box” to everyone.
I agree with Philo about the usefulness of internet search when you (as always) have tight time/money constraints, but the result of using depends on one’s attitude; if it the jumpstart to know more about a topic it is good, if it is the way to find a pre-cooked solution it leads to what you describe in your article. Sadly in my experience most developer fall in the second category…
Yes you got my point i am not saying we should not use google, the problem is too much of copy paste without trying to know is this the best approach.
I wouldn’t really say Google limits developers’ abilities to solve problems. In fact, it’s quite the opposite. If you knew nothing about Java and were to get an IDE and look up a couple of examples, you would at least be able to cook up some command line applications in Java that can perform basic math.
Microsoft .NET programmers can find lots and lots and lots of information online to catch up with stuff that they’ve only heard about.
Yes, the easy access to information does make some people lazy. If you blame Google search, then the auto-complete (Intellisense, in Microsoft lingo) feature provided by IDEs and the ability to automatically find the namespace for a class that you are referencing are just as bad. The Internet and Google Search simply enable people to find the information they are looking for, and if it’s somebody who is really bad at developing software, it helps him/her find a page from which to copy-paste source code.
My policy is that I can copy and paste only as far as I have a clear understanding of what the code does. A bit out of topic, but what concerns me more than losing the ability to solve problems is the degrading of brain memory, because you know that if you forget the API function name or the trick that solved an issue you can quickly google it. It is a fact that illiterate people HAD to have a much better memory, just to make it through the day.
Very true.. Degrading of brain is one more problem.