Am I really a developer or just a good googler?
I got a very earnest and well-phrased email from a young person overseas recently.
Some time in my mind sounds come that Is that I am really a developer or just a good googler. I don't know what is the answer I am googler or I am developer. Scott Please clear on my mind on this please.
This is a really profound question that deserved an answer. Since I only have so many keystrokes left in my life, I am blogging my thoughts and emailing a link.
I've felt the same way sometimes when playing a video game. It'll get hard as I progress through the levels, but not crushingly hard. Each level I squeak by I'll find myself asking, "did I deserve to pass that level? I'm not sure I could do it again."
You get that feeling like you're in over your head, but just a bit. Just enough that you can feel the water getting into your nose but you're not drowning yet.
First, remember you are not alone. I think that we grow when we are outside our comfort zone. If it's not breaking you down, it's not building you up.
Second, anything that you want to be good at is worth practicing. Do Code Katas. Do a Project Euler problem every few weeks, if not weekly.
Third, try programming for a day without Googling. Then two days, maybe a week. See how it feels. Remember that there was a time we programmed without copying our work.
Fourth, think about the problem, deeply. Read about algorithms, read Programming Pearls, read about Design Patterns. Rather than copying code from Stack Overflow, copy patterns from the greats.
Fifth, get involved. Go to User Groups, Nerd Dinners, meet with others who feel the same way you do about technology. Stretch.
What do you think?
Sponsor: A big thanks and a warm welcome to Aspose for sponsoring the feed this week! Check out their Aspose.Total for .NET has all the APIs you need to create, manipulate and convert Microsoft Office documents and a host of other file formats in your applications. Curious? Start a free trial today.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
Being a web developer isn't always easy. HTML and CSS and jQuery come easy. AJAX, XML, JSON, API work often comes in copied and altered from existing code. But if I didn't understand it, then I couldn't effectively alter it I guess. I couldn't make things work at all from examples, if I did not understand those examples and some fundamental programming concepts and data structures.
Great post, you really have me re-thinking things. And that is a good thing.
This post really hit home for me today. I've been thinking about this a fair bit lately - that I use stackoverflow way more than I contribute, and that I'm not a very good whiteboard developer (I'm addicted to my IDE and google).
But I was thinking about this quote:
"Never commit to memory what can be easily looked up in books" - Albert Einstein
I think as long as we keep our reason skills sharp, and use google as a reference more than a guide, we're on the right path.
On the other hand, faster computers and better IDEs don't give you the answers and let you skip over all of the analytical thinking just to get a quick answer to why you're getting a NullPointerException so I guess the argument could be made either way.
P.S. Plz send me the code.
>>would be like saying that using books, a better IDE or faster computer is also a form of >>"cheating".
@ami
People have said that in the past.
I honestly believe I fall into the latter category ... and would consider myself a proud graduate of 'Google University'.
I think the true test of the question is whether you could pass a grilling job interview. I would guess that without a *lot* of studying, I wouldn't.
However, ultimately, is that really a good test of what you're capable of creating?
I took Fortran and C++ in college, and then didn't do any "real" programming for about 10-15 years. I got back into C, with an opportunity to create a gui tool and learned the toolkit solely through Google and by reading message boards. The tool was ultimately released by my company and is one of the most focused and intuitive we have.
When it came time to rewrite the tool in C++, I began research (Google) into C++ programming structures, and found Misko Hervey talking about how to write 'testable code' through dependency injection.
I'm currently learning Android almost exclusively through Stack Overflow.
So, in summary, while it's true that a 'real' developer would likely be quicker with a task, what ultimately matters is the end product.
And, the end product, at least if you're dealing with GUI, is a mixture of many many more things beyond just programming prowess.
I think the key is, do you change what you're trying to do to fit the code you've found or do you use the ideas you found to craft what you're trying to do?
I equate it to music. A musician friend of mine who writes songs says that there's nothing really new under the sun. Every piece of music has some element of another and that's okay.
Of course I learned programming by typing in code listings from PC Magazine (TSR anyone?) so really, not much has changed.
But @Scott, as a fan of your edutainment I gotta know... do you still play games? What did/are you playing? Whats your preferred platform?
Also, yes, we did write programs before the intertubes, but in today's world the number of disparate layers, frameworks, and choices etc are vastly larger. Remember when all we had was a console?
I mean hell, let's build a data-driven single page application (SPA) in the Microsoft stack by ourselves... let's see, what do we need to know?
Database Modeling
Some form of data access (Entity Framework, ADO, Hibernate, Dapper, etc)
Some .NET Language
Either ASP.NET Webforms or MVC
Oh snap, those aren't useful without knowing some HTML and CSS
Single Page App? Crap, now I need to know something like Knockout, jQuery, might want a framework like Bootstrap so it looks nicer...
Personally, I think the vast amount of choices we have a strength, but at the same time it's information overload out here, especially given the rapid pace of change.
If you're not good at searching and interpreting what you find... a Googler... good luck to you my friends.
But Googling and reference books are a problem when it comes time for job interviews. You have to recall all that stuff once again. No book and no search available, though ironic that in practice at work, those things are not disallowed but they are in an interview.
Curious question for Patrick, the data structures you mention, can you code them off the top of your head without a reference book or Google? To me, unless one uses those on a day to day basis, one can get rusty with the implementation details over time, where a reference book or Google comes in handy to remind you of what you forgot. But man that's lot of stuff to have to remember to ace an interview...
Junior developer: I bet I could build that
Senior developer: I bet someone else has already built that
Where do you think senior developers find the answer to that? ;)
If you're copy and pasting without reading and thinking about the code you found online, you're doing it wrong. But if you learn from it and keep its patterns and capabilities in your back pocket - that's learning new things.
Like others, I started programming many years before Google existed. But the program structures did not leap from my head fully formed as Athena. Instead of Google, I used Gutenberg: lots of programming books (and magazines) containing code (or at least pseudocode).
Our problem domains were smaller back then, so printed material was an acceptable resource; these days a programmer *must* hone his Google-fu. Knowledge of algorithms and patterns help you identify what kind of problem you're working on, which empowers you to use better search keywords.
But whether you copy code from books or the Internet, the same principles should apply: do not ever copy code blindly. Instead, examine the code and understand it; break it apart into its elements. Then combine the elements and build towards the solution, following your own coding patterns. Code samples are often poorly designed on purpose in order to emphasize the elements of the solution; by deconstructing and reconstructing, you end up with a solution that has the correct elements, that fits the design of your existing code base, and that you understand inside and out.
In fact, I would say that deconstruction and reconstruction are the key skills of a developer. Taking requirements (desired behavior) and tearing them down logically into patterns and structures, and then building those pieces together into a cohesive whole - that is software development. Writing the code is just an after-effect. (Almost)
The Internet's liberating ability of linking us to the rest of the world's experience has provided us with quick answers to problems already tackled by other people. Most answers come in minutes, hours, or days. Compared to weeks and months. Some remain unsolved for a long time of course (i have plenty) but developers on a whole are getting more stuff done, and can move on to the next work item, and the next, towards their project completion.
The downside of that is most developers would just quickly focus on the next task after they've found a solution "that works". There is little time in today's work reality to really sit down to read and experiment to gather the deep understanding that is actually required to solve those problems. The law of project schedules dictates you have less time to finish the work than the time required to learn the technologies proficiently to do the work in the first place.
This is a work culture that needs to be solved by both developers and managers/bosses; especially the latter who almost never allocate enough time for tired staff to catch their breath.
In that case, a good developer who knows coding practices, and have already have fixed the algorithm in mind - will just need to google about implementing the stages he does not know how to .. yet.
It's based on this entry at Geek and Poke.
We are not building console apps anymore, where the added value of your programming is the algorithm you are writing. We more and more trying to compose and connecting existing technologies and frameworks.
- Why do we manually search, cut & paste code snippets from StackOverflow ?
- Why doesn't a flowchart step in a compilable spec automatically pull functional code chunks based on pre & post conditions from a common code repository ?
- How much code is duplicated across organisations , let alone projects ?
- Is software engineering stagnating ?
I am a good Googler and very proud of it; I have used this tool to absorb the wisdom and knowledge that others have so graciously left for me on the world wide web. Unless you are building systems to support the research of nuclear fission or perform neurosurgery, I firmly believe there is no problem that you will encounter that someone else hasn't encountered and solved before, and their code is simply an expression of how they did it.
That said, what marks the men from the boys is surely having the inquisitive mind to ask what's going on underneath. Not just asking whether a copied passage of code solves the problem but how. Never hitting Ctrl+V unless you are happy that you can confidently stand up in front of your peers and justify your decision. Any idiot can, with enough time, knock up a simple dynamic website using a modern IDE, Google and a bit of time; but can they tell you what's ACTUALLY happening on the TCP/IP stack, at the HTTP protocol level or in the request pipeline?
Code is just code. Great developers take the time to ask why and how.
With that said, to improve critical thinking and development speed then its nice to not have to Google everything
And having standard ways of solving common problems, or accomplishing run of the mill tasks frees me up to focus on the aspects that are unique, challenging and lacking any form of google provided answers.
And even if you particular project is lacking in the challenging department, it still takes skill to adapt googled answers into your program.
Thanks for the post.
I develop business web apps. As I work alone, no, I don't work in a cubicle in a large office, I need to know way too many technologies to know them well enough.
So although I lack "enterprise skills", my interrogation technique is second to none and I never need to torture anyone.
If you google the right question, you get the right answer. That is why Google is Google.
But...
The strategy falls apart when you start working with new-ish technologies like Orchard CMS. There simply isn't (yet) enough on the net about Orchard. And the Orchard team have no concept of the lone developer. They presume that your ground zero is a cubicle in a large office and that you think and breathe enterprise skills.
If you are talking to Bertrand Le Roy et al over at Orchard, put a word in for the lone developer who has great interrogation skills but no enterprise programming skills. It hasn't dawned on them that there are a lot of people like me.
And our numbers will only grow.
I've always seen myself as a problem solver and solution finder. The internet has certainly made this process a whole lot faster. When working on a web based UI, I will always have the jQuery API documentation open in one of my browser tabs, with another tab being a search engine. The internet has become my instruction manual
I typically don't copy and paste my way through a problem. With that said, code samples go a long way in helping me to understand a new technology or framework.
In the olden days we had instruction manuals which we could not do without. All googling (or binging) is is reading a more sophisticated and up-to-date instruction manual.
If I wasn't a good googler I would never have found Scott's wonderful blogs - and be troubled by such philosophical wonderings!
Keep on writing the good blogs, Scott. Thanks.
I used to save all of my code for reference for future projects. It was a valued treasure at the time since I was building a useful arsenal. But because I can find much of what I am doing online Ive realized that I no longer need to retain such knowledge long term .
But since we often use many tools and languages and platforms today, Google is the most efficient way. but, if you taught yourself many of the new tools and languages then you are a developer. Google cant give you the experience that time and repetition gives you.
but google can make you better because you also learn from those who have taken the hard road before you. There is a plus to learning from those who have become experts in an area.
In fact, why not stop using any kind of IDE and just use command line? That's how a *real* developer should work!
Please read Phil Haack'article We are not paid to write code and then you'll start using more tools, APIs or whatever helps you deliver in a faster way better products, because in real life, the client usually wants a product, not some code.
But I often have that feeling I use google too much. I'm writing some code .. ooh I do not know what to do here .. google .. oh facepalm!
But that's a very philosophical question. What do you want to be? Do you want to be a developer or you simply want to close only the next work item?
I am a generalist MS programmer. I'm expected to deal with several versions of Visual Studio each with mutiple service packs and hot fixes, several versions of SQL Server, several browsers with mutiple versions (there's a lifetime of pain and suffering for you), Sharepoint 3.0, 2007 2010, etc, ASP, ASP.NET Webforms (and MVC), VB, VB Script, C# (with how many versions of .NET?), 32 bit OS's, 64 bit OS's, how many versions of windows? multiple source control platforms, javascript, html, html 5, Win NT, Win RT, Windows Phone 7, and on, and on.
And this is just windows development. Now add Mac, Linux, Android each with their own universes. Honestly, the vastness boggles the mind.
Sometimes when I read resumes, I just laugh at what companies expect their devs to 'know'. For the average, generalist developer, there's just no way to know it all.
The need for and value of google (does anybody bing? or maybe 'bing(oog)le') is built into the complex nature of the vast programming universe.
If you are a generalist like I am and keep your customers happy, give yourself a pat on the back.
stack overflow has value in that for general purpose problems (which they encourage you to ask about) it is a great ressource, like: i want to use this framework in this language, with this database, how do i set this up or why isn't this working etc...
But when it comes to the business logic of your real application you can't expect producing your own code and thus having to do some
i find that actually most professional developpers i have worked with would copy/paste code from their colleagues who are working on the same application not from the internet
by the way before the internet: people would actually read books, with some of those books called cookbooks that give you recipes for a technology or a language. Stackoverflow is a huge unorganised very messy cookbook
When I first started working with Windows, there was virtually no information available. As an independent developer, the only choice was to go to Redmond and visit Microsoft University to learn the "secrets" of Windows or to buy a book.
I remember the day when MSDN came out. Finally the playing field was somewhat leveled and I could have access to the inside information I needed. The internet only made things easier. It's rare that I or my team come across a problem the *someone* out on the web hasn't encountered. It's an amazing resource.
The problem that I see is many young developers use the web as a crutch. They are quick to Google or go to Stack Overflow and many times just cut-and-paste blocks of code into the project without even taking time to understand what the code does.
I've even seen developers who graduate with a CS degree and have trouble writing a program from scratch. They are so dependent on the Web for answers that they have trouble when asked to build something from the ground up.
Don't get me wrong. I'm a fan of having access to information. But if you are a developer, you have an obligation to build quality code and to understand how it works. Using Google doesn't make you less than a real programmer. Not understanding your code and your craft does.
Many times I have found myself having trouble getting some framework or library to do what I need it to do and have had to resort to Google and/or Stack Overflow to help me get some running code because the original library is poorly documented; but then I always force myself to go back and take the code apart to make 100% certain I know what I've actually done. I guess that's my way of enforcing some kind of learning process...
In the same way, any time I come across a supposed answer to my problem in a technical blog, I always take the time to read the comments fully - you never know when what you're being shown is just plain wrong, for reasons that only a full on flame war in the comments section can explain :)
Now on the other hand, I have broken my own rules when it comes to *algorithms*; if it's on SO and highly upvoted then I will confess I have on rare occasion just copy-pasta'd and forgot about it...mind you I do unit test so I don't get caught out too often ha ha.
One thing I would recommend over not using Google for a day is actually going a week without using CTRL+C; if you really need some code from the internet, and you really find your eye glazing over as you scan it, then force yourself to type it out manually; change the variable names, method names, refactor it on the fly; you will find yourself then having to fix a broken implementation of algorithm X (no better way to learn it!) whilst a the same time having a working reference. It's really surprising how quickly you can learn an algorithm or a concept this way.
So in the end if a person uses the internet as a replacement for dead trees that contain information that's out of date by the time you read it, and as a repository of knowledge that will constantly inspire and challenge their assumptions, then they're going in the right direction. But if as Dennis mentioned above they use it as a way of not taking intellectual responsibility for their own craft, then this is a bad thing.
Just my 2c.
I'm going to try to work on something while I'm there, but fear not having my coding buddy, Google by my side.
This is because all the software libraries and APIs we rely on are now geared this way. The quality of documentation was of a much higher calibre than we what we have now - out of necessity. I rarely bother with official docs anymore, since places like stackoverflow render them obsolete.
But I also believe that if you are one of those who ask yourself that question (Am I a developer or just a Googler?) then you *are* pushing yourself, are always learning, are growing as a developer and in your career.
It's those who do not question such things that we must worry about... Those who are so supremely confident and thing they are so very clever. I have walked out of an interview by such a person already, because I refuse to work with somebody like that.
- You should fully understand the code that You are copying. Not only bits and pieces. Everything.
- Googling and copy/paste the code should be significantly faster than coding it Yourself or it has no purpose.
- The main focus should be on solving the problem for the end-user/customer - You are a developer and not a coder/programmer. Your solution should be elegant and solve the problem. Nothing more - nothing less.
- The code snippet that You are copying should be well written according to Clean Code or some other guidelines.
- Pay respect for the original coder and the copyrights. Name Your source. That might also come handy when six months later going back to the code and doing some rework.
And I agree with Jerome; If You don't ask Yourself this question - then You aren't pushing Yourself.
My current development position has me living in an area without internet during the week and commuting home on weekends. Yes, it stinks. Pain helps you remember.
I think I'm a horrible developer that can't live without Google until I run into something that I struggled to figure out and remember the solution better than when I Google the code. There is no copy and paste with a softcover. Google to learn, not get a new line. This is how I finally learned RegEx - handcuffed to a hotel with no internet I actually remembered the syntax afterwards after tons of tries.
If you can read a text, digital or analog, Understand it, Apply it, and Learn it - you'll be awesome in any field or vocation.
I had a job interview once where I needed to perform a programming test in front of a group of people. They wouldn't allow me to use the internet or resharper. I guess I understand it as a critical thinking exercise, but as a test for how a person will perform in their job, it's total BS. I wouldn't build a deck without a drill or a saw. It was a big factor in me taking a different job.
Thanks Scott for this great post! 8-)
I, personally, tend to go back and read Scott Meyers' and Herb Sutter's books, and sometimes Uncle Bob. I don't look as much for the technology or even the written code, as much as the ability to reason through with them on the problems.
All kidding aside, knowing what to ask (google) is the important part. Whether you ask it to yourself, to your peers, to your books, or to google is irrelevant.
I appreciate not having to dig through hundreds of pages of manuals to get my questions answered, but the dark side of this is that it's made a whole legion of software "developers" incredibly lazy, so lazy they won't even perform their own searches anymore, and I wonder what that says for the future of our profession and the software that gets produced.
The point is, you shouldn't feel bad by using any and all tools available to you to do your work. The skill of reading a whitepaper about an algorithm (even one with example code), and then applying that algorithm to your codebase effectively is the core of being a programmer in the first place. If you don't agree with this, then you're basically saying that any developer who hasn't contributed a unique searching or sorting algorithm (for example) to the programming community isn't really a developer. If any field of science was conducted this way, we'd still be in the stone ages.
Had too much time on my hands and tried to solve it without the internet...
The problem was on reportviewer usercontrol and guess what...all the methods have 0 (ZERO) comments saying what they do...had to download dotpeek to reverse all the code and dissect it manually.
In the end it took me 6h to do what I after found in 5min of googling...
Where the 6h waste? Hell no. Learned a lot of what the control was doing but also that google is faster although you won't get that deeper knowledge most of the times.
My approach is this:
1: I watch a lot of pluralsight/lynda videos
2: I read a lot of technical books
3: I listen to podcasts such as dotnetrocks/hanselminutes etc every day on my commute
4: I subscribe to blogs from respected developers in the community
This gives me a high level overview of many technical topics, obviously I can't remember it all but at least I know of the existence of a particular language, framework, best practice or upcoming technology.
Then when am I am faced with a problem to solve, I can pick the right tool for the job and google to get the finer details.
IMHO, good developers are people who have a passion for the craft, who are constantly learning and improving and have the ability to find the right answer, it doesn't matter if that answer came from a blog post or stackoverflow question or from the depths of your mind.
That being said, practice is essential so doing programming katas regularly will improve memory retention and productivity.
But don't feel too ashamed if you need to google for the answer.
But can you imagine my confusion if I was looking for the parameter reference for a handle to a Library Manager from New South Wales? None of the code in this blog will even compile against the Antipodean Public Services Lookup framework. Sheesh.
So you see, there is proof that you shouldn't trust everything you find on the internet. Does that makes me a bad googler?
I believe that you have to be a programmer of at least some skill in order to
A. Know what questions to ask the almighty Google and,
B. Know how to find and utilize the best answer once the results are magically delivered.
I wonder more frequently about the increasing levels of abstraction created by various frameworks, piled upon various other frameworks, piled upon libraries.
Am I a programmer, or simply a Framework Assembler?
I remember the old days without internet and remember the following:
1. The programming surface was much smaller than now
2. We rely on mags and books to learn new things
3. We have to shuffle some MSDN cds for help when things go wrong.
I'm glad those days are over, I'm much more productive now.
Experience developers that had a wealth of knowledge but didn't what to share with those less experienced. I couldn't afford to compete with their library and I truly began to resent these gate keepers. To me the internet took away their keys and gave us all access to resources that previously were hoarded.
This was my personal experience and I'm not trying to generalize. I've also worked with very helpful developers, though much later in my career.
The internet has greatly expanded my developer world view.
I thought as humans we are supposed to evolve and build tech so we go even further.
Not googling would require a longer period of searching in books. (Manual text processing)
As humans your memory is meant to degrade as you grow older.
So I would consider somewhat no evolving if you still go through a pile of text books to look up an academic concept you don't remember form the top of your head.
I think that interviewer or companies instead of the interview with academic algorithms should instead go to Harvard get their Final exam for Computer science graduates and submit interviewers to that.
Google Effects on Memory: Cognitive Consequences of Having Information at Our Fingertips - http://www.sciencemag.org/content/333/6043/776.abstract
And even if I can remember a lot, I find easier to remember where to find the information instead of remembering it.
In fact this is a bad habit and quite difficult to get rid. We want to have information and we want to have it "now". As fast as possible.
We talk about Google (or enter your search engine here) but what we did before without Internet? To find a solution for our issue or even to get in touch with more people about a specific topic.
"try programming for a day without Googling". Yes I'm sure we can all do it but sometimes we need information about something really specific and it can be hard to find the answer without Internet (or even a book).
Nothing is original. What a good artist (developer) understands is that nothing comes from nowhere. All creative work builds on what came before. Nothing is completely original.
In my office, sometimes when we have problems with internet connectivity, most of us get up from our work stations and roam around, practically we could be still working but since we cannot "google" we feel we cannot "code" as well.
I'm old enough to remember how we coders did it without Google.
We would read books.
We would thoroughly read our favorite language's documentation -- I still have Turbo Pascal's, Turbo C++' 1.0's and Visual C++ 2.0's, hunt for great books on the topic, read technical magazine that used to include technical articles (in Italy we had MC-MicroComputer, published from 1981 to 2001, and the first 120 issues or so did have a section devoted to coding )
We would consult the online help. (Even Turbo Pascal 5.5 for DOS had one!). I still work off-line, when commuting, and I read lots of PDF and wget dumps.
We'd try the examples included in the package, understand them and adapt them to our needs.
And when BBSs came out, in the late eighties/early nineties, we would download libraries, toolkits, sample code and try them. If you dabbled with Turbo Pascal, as lots of european young coders did, you'd download and cherish SWAG -- "An elegant weapon for a more civilized time.".
And we'd experiment a lot.
However, there's one thing that must be said: in those times, you learned one-two languages, their standard libraries, windows API / MacOS api and you were set (sort of). Today, as Joel Spolsky pointed out in 2001, that's no longer the case for the majority of professional coders I know. And API grew more and more complicated and numerous.
if you find a solution via google that solves your problem BUT
It isn't written in your programming language so you have to translate it, or/and
It's written in an awkward style so you have to refactor it
then if you perform these task you almost certainly are a Good Developer, even if you resort to Google.
Case in point:
Translating Java Code to C# to write an external program to drive Open Office
Translate and refactor PL/SQL code to C#.
Convert some old Delphi code in QT.
That being said, I agree with Scott's suggested exercises. I think they will make you a better developer. I learned that I could code without the crutch of an IDE when I wrote code Ruby without one. I still write Ruby without an IDE. I hope to do the same with C someday.
As a developer in the modern world, I would never condone copy/paste programming but on any typical day, with the myriad of detail, on the various development vehicles, programming languages and more, required to get the job done in the enterprise world, IMHO, it’s simply not feasible to program without references.
I certainly agree with the remaining points.
I Google a lot of things. I spend a lot of my time in developer blogs, code samples, and documentation.
But that is part of that makes me a developer. I have the capacity to unlearn and relearn as the field evolves, and to figure out how to do things that I was not taught how to do.
I now find myself back programming, in both C and C# for Windows.
I can't imagine getting anything done without Google and all the wonderful developer sites I find through it - but that's because it's all about using libraries and APIs.
The only way to find documentation - even from Microsoft - seems to be a search engine, and even then it's confusing and ambiguous, so you really have to find someone who got it to work and base your work on theirs.
I really just don't believe it's possible to program for Windows based solely on Microsoft documentation. At least, not in a timely fashion.
I think - Google/Searching on internet makes someone specifically aware about the problem only and not allow you to understand what is there actually.
There is difference between "SEARCH" & "EXPLORE". The important thing is "EXPLORE", I guess. You can search the things on Google but we should also "EXPLORE" them deeply - What these things are, What they can do/or else, etc, None will say "Googleing" is not good or efficient. But, Important is to take the best of your logical skills and material/medium to achieve them (which may be most of the times provided by Google/Bing).
You may get best taste by this funda of mixology...
"You can't even code C# from memory? Why not?"
"You have to use C# to build programs that you can build in assembly? Why?"
"You can't even build programs in machine code? Why not?"
"You can't even manually enter the binary signals using a turing machine? Why not?"
"You can't even mine the raw materials to physically construct the turing machine yourself? Why not?"
"You can't even initiate the big bang to generate the raw materials with which to construct the turing machine yourself? Why not?"
If you don't remember things you copied and used in your program; is not advisable. In this case you did not learn anything.
I rarely just copy and paste code of others.
Thank you for your nice article.
I wrote something similar: What makes a great developer
On the more flippant side of things, every mistake today is job security tomorrow!
The only important thing is to have task well done. It's a matter of preference whether to keep everything in local brain storage, or in a clouds ;) So actually it doesn't matter - to remember everything or google on demand.
I guess you should provide nice solution first. Remebering is just what makes you a bit more cool comparing to others, who just googling. But both of you could create pretty cool solutions.
Comments are closed.
While it might be causing us to slack a bit on our actual computer skills, it also advances us because we don't have to constantly reinvent the wheel as we did in the old days. If you never found a given library already out there somewhere what other choice did you have :-)
But also in the old days it seems you had to know a whole less stuff - it was easier to keep what you needed to know in your head. Now we context switch all day between technologies, languages, paradigms etc. etc. Some days I fondly remember working in a single tool building a desktop application where I had all the pieces in my head. No more...