One of the things I don't like about webdev (among many) is that I even have to Google in the first place. Manpages are so much more immediate and accessible.
I also think that anything js-adjacent has a real culture problem. Trying to dredge an answer out of a Medium tutorial written in a cloying tone and interspersed with pointless gifs can be such a groan enducing experience. I'm hoping that the community will mature alongside its technology.
Speaking as someone who writes blog posts littered with irrelevant pictures (but never on Medium!), I acknowledge your experience trying to solve a problem based on a blog post.
Manpages and documentation are written to be references. Blog posts are written to be tutorials. They have different affordances, and as a result it is very hard to learn how to use something purely from a reference, and very different to solve a problem purely from a tutorial.
That’s why really decent reference sites have both step by-step tutorials AND references designed to answer questions quickly and to be easily searchable.
If there is an opportunity here, it is for search to understand the difference and know how to present the two kinds of results differently.
That way, if you question is, “How does this thing work?” You should get tutorials. If your question is much more specific, like “what parameters does this take?” You should get a reference.
> One of the things I don't like about webdev (among many) is that I even have to Google in the first place. Manpages are so much more immediate and accessible.
I don't really get this response. First there's the notion that "webdev" is the discipline where information is so fractured that you need to go googling around to figure out how to do everything. All the other disciplines have a magic thing called a man page that just gives you the answers. This is obviously not true, right?
The second thing is the idea that a man page for any one component, or even a set of components, could possibly contain enough information to allow you to build a complex system without consulting the experience of peers, colleagues and past practitioners, which is at least what we intend to do when we search google.
Man pages rarely are enough in my experience. When I encounter an issue with grub-install not writing to my EFI system partition, good luck finding much about it in its very short man page. You’ll have better luck using the ArchWiki, which is like a much better man page, but a simple Google search (or another search engine) will show a forum post with an easy solution as the very first result.
Piping six man pages through grep to find what I’m looking for is simply not as fast as Googling an error message.
I think there’s also a sort of cultural difference between languages and tools frequented by newer and older programmers: more experienced people look for documentation and then get working on their project, whereas less experienced programmers look for tutorials and very specific “soft” documentation.
Transitioning from modifying tutorials (the type-in-the-code-in-the-magazine of the 21st century) to glancing at the documentation is probably the surest sign of maturity. Still, you can get a ton done by copypasta.
This might have to do with learning to code with or without the Internet, I’m not sure. I’m personally very envious of people who can take a look at the docs and just get chopping without the assistance of the GIF-covered Medium posts.
I find manpages to be mostly useless because they ignore the common case to explain every single possible function. For example I use the tar command 99% of the time for extracting files and 1% of the time compressing files. When I open the manual I want to be able to quickly work out how to extract a file but the first bit of non intro text on the man page is
>Options to GNU tar can be given in three different styles. In traditional style, the first argument is a cluster of option letters and all subsequent arguments supply arguments to those options that require them. The arguments are read in the same order as the option letters. Any command line words that remain after all options has been processed are treated as non-optional arguments: file or archive member names. For example, the c option requires creating the archive, the v option requests the verbose operation, and the f option takes an argument that sets the name of the archive to operate upon. The following command, written in the traditional style, instructs tar to store all files from the directory /etc into the archive file etc.tar verbosely listing the files being archived:
Scanning through the manpage a fair way down and I can't see the one bit info that covers almost all of my use cases for tar.
And for anything more complex than a tiny cli tool the manpage is far too large to use usefully.
I’d honestly love to know what people are comparing to javascript when they complain about rate of change / having to learn, unless it’s just a mental bias on learning something new vs something they’re comfortable with. I’m in a new position working on python and spring APIs and it’s effectively the same deal — researching means filtering through bitrotted methods and advice over a 4-5 year period, new methods & libraries or api usage patterns, etc.
Anyone could divine some reasons for why javascript / “web dev” is so different but I’m seeing shades of the same thing mixed with personal biases towards trade offs and design decisions.
What you're mentioning is all just a side effect of something being extremely accessible. Webdev is very easy to start and get into, but on the deep end, it's just as deep and difficult as coding a backend of your application in Java or Go.
You don't have to search the internet for web dev any more than you have to do so for any other dev job.
Man page: find the man page, search for terms you hope might be related to what you want, read through a lot of dense paragraphs to maybe find something relevant.
Google: just type in a quick description of your issue and get a stackoverflow post with an answer as the first result.
Do you personally have recs for how to parse manpages? In my experience, I've found them far more difficult to grok than e.g. the MDN JavaScript docs. Particularly if I'm trying to look up a tool that I don't already have familiarity with, as opposed to e.g. just trying to look up the correct syntax for a flag.
The MDN is a pretty good reference complete with availability tables for browsers.
The problem with a reference is that a lot of times browsers do quirky things and things that are essentially browser-specific bugs aren’t documented in a reference.
A big part of it is that imho technology has gotten more powerful, but still no easy to use. Like, I'm imagining in 20 years the API for Amazon's drone fleet will be here and we'll still be like "wait, the address parameter is for an IP address? And the library isn't thread-safe but also doesn't connection pool so I have to maintain one dronecloud client per thread? And what's this cryptic "rotor invert" error?
It feels like half my job is googling how to do common things in popular libraries and finding completely counter-intuitive pain-points.
A great example of this is AWS. I'm not a power user but I dabble. You have to go back and forth through user docs that all have some % of the correct steps, but no single doc has all of the correct steps. Some reference deprecated api, some just never seemed to work in the first place and you wonder how it even got there.
I get that these ecosystems evolve over time but I'm not convinced that that evolution requires inability to use the underlying features effectively.
Using search engines sometimes feel like a lost art if you spend any time in Facebook groups, where people will ask mundande, simple, and easily Googleable questions.
Sometimes I wonder if people do it to fill some sort of social need, and don't particularly care for the answer.
HN seriously overestimates the technical capabilities of the average person.
Facebook now has enough reach that it includes many people who don't know how to use technology properly. Finding an answer through Google takes a little bit of skill to frame the question and pick the result that will give you the answer.
Roughly 70% of adult Americans use Facebook [1]. This study [2] is from 2015, but it says that only a third of America adults are capable of medium-difficulty technical tasks, such as tasks where you need to '[evaluate] the relevance of a set of items to discard distractors'.
Remember, 20% of American adults have below basic or no literacy skills [3], which means they are not capable of tasks such as:
- "using a television guide to find out what programs are on at a specific time"
- "comparing the ticket prices for two events" [4]
I can be both. I arrested myself typing out a “let me google that for you” reply on a small social network years ago. I realized doing that stops a conversation dead in its tracks. And sometimes people just want to have a conversation.
In some cases they may feel it's whether they are asking the right question - but I agree that people searching for themselves is often a better practice
Many times I've asked google a specific question and only got results in the form of "Top 10 vaguely related unhelpful bullshit" clickbait. So yeah, actually, it is a lot like a really big version of my own nigh-useless human memory.
So many people missed the point of this post that I ended up replying to it instead of them.
"Memory upgrade" means not relying entirely on your own memory and previous knowledge. That doesn't exclude internalizing the language, nor coming up with new solutions. It probably changes a lot depending on what you do, but I've found it imperative to keep up to date with an ever-changing engine, and it would have been malpractice to just rely on memory, and a great waste of my employer's time.
I agree; human memory is good at keeping indexes, which is augmented by the internet to retrieve the full content. You only need to store enough in your mind to know what to Google for. Memorization as a skill is less valuable now than it used to be.
I've been thinking about this topic a few months ago when considering how I go about finding out information on how various things are implemented in the Linux kernel, as someone that's not a kernel developer:
* option A is that I start by reviewing the literature (most books are quite old, but I might get lucky) to get a general idea about the topic e.g. memory management under memory pressure. Then I search the kernel docs. Then I use any references that I found to e.g. LWN or similar websites. Message groups search. Finally I would do general internet search, SO, etc. In between these steps I might look at sources, although that's hit or miss, depending on the specific topic.
At the end of this adventure, I will probably have a vague or middling understanding of what I was looking for.
* option B is that I ask our kernel expert and he tells me what I want to know, because he's continuously read all of the above resources for the past couple of decades.
So not only is the human memory not obsolete, it is daft to think that Google - which is getting amnesia to boot - could "upgrade" it.
Most of the value you create is done by your subconscious and it can't just google things, so getting things into your head is still required and the more you have there the better.
Software is not so complicated that you have to Google search everything every time. If you are not internalizing new knowledge, you are performing poorly.
I am a good back-end developer, I'm good at Googling things.
The things I tend to be Googling are typically either superficial, like syntax, or specific as in I know exactly what I want, how do I construct it in x language or y framework? It's quite rare that I have a problem and don't know how to approach it and they're the most fun. Sadly, it's also rare to need to look for algorithms. Just avoiding the run-of-the-mill complexity problems using common patterns or data-structures is sufficient. When they're not (e.g. performance or scale constraints), also fun times.
What do you do about license tainting in your code base? Stack overflow provides all of its answers under a Creative Commons license. An example may have been lifted from a GPL source, do you care that you have contributed this to your community project or corporate employers code? If the answer is no, then why care if you google or not
This is one thing that I make sure to tell any new developer. Don’t be embarrassed to google things. Understanding how to figure out the best way to solve the problem is the objective, not showing everyone that you’ve got all your tools memorized perfectly.
We have close to the summation of human knowledge at our fingertips. Why would we be embarrassed to harness that power?
I want to question this.
Sure there are many things where a google search brings up a better solution than the own spontaneous one (for example path finding algorithms for games).
But every problem beyond a trivial ‘getting started’ needs more thought than an algorithm one can copy and paste from google. Even if it’s only the glue code to bring all parts together or transferring the knowledge to the problem trying to solve.
Also what others already mentioned about noisy search results: Deciding which of the (hundreds of) possible solutions might bring the desired outcome is an engineering skill.
Another thing: When googling the same issue for the third time one should question why he has not memorized it by now (e.g. syntax of commonly used bash commandos etc.). And by internalizing one gets better as engineer every day without relying on google.
Yeah for some reason software engineers love self depreciation. It's like we've internalized management's desire to make us low status cogs
Doctors google things, captial E Engineers google things, chefs google things, everyone googles things. Yet you don't hear them talking like this to the extent we do.
Like you said it's knowing what to type into Google, knowing how to filter the results, and knowing how to apply the information you that's the hard part.
for getting started guides, it's great, although even there i'd exercise a lot of caution. there's a lot of info from people who are not experience that people just replicate in their code/setup which isn't really a good idea.
for complex issues you never drown in information. and usually when you find something it probably doesn't apply to your setup. that doesn't mean you can't, at least, get some idea or a pointer to the right solution.
however, just googling or stackoverflowing, i'd be wary of implementing any solution without any thought just because someone else solved it before me.
This is not just for webdev roles. We used to joke about this in my sysadmin days - when hiring new staff, the only test should be how effectively they could Google for a particular solution. And in all seriousness, understanding how Google works and how to use the search operators effectively, is a crucial skill in an IT career.
Edit: relevant XKCD - https://xkcd.com/979/
(and the only thing worse than that comic, is finding someone who had the same problem as you and they followed up with a simple "I solved this" with no additional details!)
Rate of change is the biggest driver for this, at least for me. It's rare that I'm covering the same territory twice, so it's novel research all the time.
That said, the search output wouldn't be of any use without being able to relate it to past experience and accepted practices.
This has not been my experience. I never take notes, almost never go to StackOverflow, and can find anything I don't know from MDN and W3 docs. Maybe it's because the things I work on are really simple, but I like to think it's because I've developed a deep enough understanding of JS/React/Redux and design my code in such a way that I'm easily able to reason through any task and resolve any bug.
I feel that over the years of doing things related to web development I actually have to Google less.
Frameworks change, idioms change, but the web itself has largely remained stable (it's still HTTP, even if we now sometimes use HTTP/2). The same security concepts apply.
I feel like I can authoratively answer on more subjects than I could 10 years ago.
Maybe this is mostly related to front-end frameworks? We've only really had one big shakeup in the backend and that's that for the past decade or so we've all moved towards preferring async code (yay Python3k).
I would agree. Frontend ecosystems and idioms have changed frequently, each time adding a new layer of concepts. Backend architecture has progressed but the concepts are pretty stable. Caching, authentication, roles, models, interpolated templates and so on. Same toolkit but more refined.
I think it's like a chemist needing to reference the periodic table less as they inherently memorize more of it. That's not the hard part of chemistry. Looking up call signatures, APIs and common patterns is not the hard part of software development.
I'm a college professor. I try to teach my students enough that they know what to Google, and that they can understand and use the result. I can't teach nearly everything they might need in the future, but I can give them the foundation.
Of course. Even MDs, despite all their years of study don't have all the procedures and possible diagnoses in their heads all the time and need to read literature and consult with other physicians to reach conclusions.
I'm not sure why people think software development (and computers in general) is somehow different. We don't know everything. We basically can't.
What we (and all other professions) have is knowledge on how to apply new information to what we already know.
So yes, you're right. You have to teach the basics, how to put them together and how to add new pieces once you inevitably hit something you don't know.
The problem is there is too much noise in Google. Its highly unlikely you can google your way to being a competent software designer
I think relying on Google, at least in the initial days of development is bad. I rather developers struggle their way through relevant documentation than google.
I agree, and often wish there was a central repository of collected tribal knowledge not about how to do things but about to do them right. Google's resources for developers provide a bit if this, but not nearly enough.
Yes exactly.
The future of schools will have to integrate "knowing how to find something quickly and efficiently"
into it's core along side "doubt anything you find online".
I know folks who've gotten pushback from clients of "I'm not paying you to just Google things, fix my problem!"
My recommended response is "Nope, you're paying me to understand what's happening, look for possibly relevant information about why, understand what results are and are not relevant, and apply what I've looked up."
This is my life. Apparently it is what sets me apart from most people; somehow I'm blessed with this ability to read things, highlight them, hit CTRL-C, open a web browser, hit CTRL-V, and hit enter. Most people, according to my empirical studies, are simply not capable of doing this...
I wish I was being snarky, but this is literally true
I think this guy wrote a great article. However I don’t know if I agree with his conclusion of him not being a good web developer.
I would bet that most great developers have googled often enough. In their defense googling is a more efficient tool than pouring through manpages all the time that have poor search indexes.
Also, in this developer’s blog, there is no reference to the fact that his code is buggy or less maintainable, or plethora of other reasons that categorically make him a bad developer.
I think it’s ok, to use help from google or stack overflow to do a good job at your task and that doesn’t make you a bad programmer.
I suspect Google Search can no longer function as well as it once did without being informed by everything Google knows about you (malicious use of SEO might very well be the reason). You could try fiddling with the privacy settings in your account, especially if you blocked anything (edit: or remove privacy protections from your web browser), and see if that makes it better. I just use DDG for most things these days.
I have indeed asked this question to several candidates, yes. They were faced with a debugging challenge and some of them weren't sure what .repeat() (JavaScript) did/what the argument meant.
I literally said "What would google for?" and then proceeded to invite them to show me in a browser. It gave us a good impression of how good they are at finding answers to coding problems.
There’s a lot of people commenting and supporting the author of the article and in his practice of googling and how normalized that is.
This leads me to a hypothesis. I would argue a large percentage of software developers are average, the bell curve for extremely brilliant engineers and extremely idiotic engineers must be be low for each end.
So what is considered average work?
I would working on mundane issues which involves a lot of googling. It would also reason that if you are googling a lot you aren’t doing anything that’s breakthrough or exciting since if the rate of your googling is high that would indicate that the problem you are solving is quite common.
There is a large difference between building things with React and learning how React works and trying to create your own.
I’m not sure why the “re-inventing the wheel” I dread the day we stop innovating and resign our career lives to “well someone else solved this problem so it must be the best solution - no need for me to innovate.”
Just do some work in a dead framework for a couple years and then you'll be good to go. Even something as recent as Ember has little to no information on places like StackOverflow for the last 3-4 years, so you actually have to look at docs and source code instead.
Love this article. THe programmer is honest and teaches us, some handy things.
The ability to work well with a good search-engine is vital, esp when you need to spew out good code.
Re-inventing the wheel is out.
Standing on the shoulders of giants is in, just like Isaac Newton did it centuries ago
So one of the things that the author should Google is “salesmanship“. Everybody uses Google as a reference, no shame in that. Everyone uses spell check also. But would you go into an interview and proclaim your a lousy typist dependent on spellcheck? Putting your full real name on a blog and announcing to the world that your a lousy developer, that is just as bad. Much like cops posting racists rants, people on disability pay posting their jet ski antics, and criminals showing off their latest score. I’m sure every one of those people thought it was a good idea at the time, but it’s not, and the internet never forgets. Author should also Google “MacGregor the brick layer”.
The interviewer who expects me to have every little detail about every single technology I've used in the past stacked up in my mind, won't be worth my time, not to mention joining their company. The comparison to spelling prowess is apples and...melons. Use your favorite search engine to look up "what is the difference between insight and information?"
I think this is true for most technical jobs. What makes us good is that we understand how to search, which leads us to the corners of the internet where other technically minded people seek help and answer questions.
I've seen friends and family search for errors or 'how do I...', and their searches mostly yield youtube videos and scraper sites. For me its mostly SE, reddit, and product specific forums.
Knowing how to ask the right questions and understanding jargon is often the greatest asset.
"The power of the unaided mind is greatly exaggerated. It is 'things' that make us smart, the cognitive artifacts that allow human beings to overcome the limitations of human memory and conscious reasoning." - Donald A. Norman, Things That Make Us Smart
Knowing how to find the answer is an often underestimated trait of successful developers.
When I interview someone I often ask them what they will do if I'm out-of-the-office, no other senior devs are around, and they need to find the answer to continue to be product - what do you do? You would be surprised how many times I hear 'wait for you to return', versus 'I'd fire up duck-duck-go or search stack overflow'.
There's nothing wrong with referencing documentation, but I do see it reasonable to look down on those who can't program without asking a malicious corporation questions. So, I pride myself on not needing to do this, I suppose.
Of course, I also pride myself on using good tools. My observation of Stack Overflow is that it's an excellent resource if you don't know what you're doing and don't want to learn what you're doing. Unfortunately, that's the only real way to operate some things. The only times I ever really need to use the Internet for such a problem is when it involves some baroque WWW nonsense some idiot caused however many years ago that's still echoing today or it involves some baroque UNIX nonsense some idiot caused however many years ago that's still echoing today.
If you use good languages and good tools, with real standards, (Common Lisp is an example.) you'll find yourself seemingly magically free from all of this stupid and pointless drudgery. Consider giving it a try some time. Imagine not needing to rewrite code constantly because something updated or some external ''API'' changed or other nonsense.
As a closing aside, it's laughable that people are pointing to man pages as examples of good documentation. GNU Info isn't perfect, but it's leagues better than man pages will ever be, if only because it's segmented and hypertextual.
it's true that in the current "move fast break everything" climate developer knowledge expires at an alarming rate and everything needs to be rechecked constantly trough internet sources to fix integration issues between ever changing libraries
it's also true that searching sources without a solid knowledge base derived from theory and practice quickly devolves into cargo-cult programming.
I too sometimes feel like my skill differential often comes only from being very fast at googling stuff, however this is a gross oversimplification on what happens after the specific knowledge piece is acquired: whether the solution is taken to solve the problem at hand or if it results in a change in one own understanding of the problem domain makes all the difference.
This just shows how shallow web programming is in intellectual content. If your expertise consists of stuff that can be looked up on the fly, all you need to join the field is a high enough IQ to comprehend those ideas at all. There’s no need for deep thinking or mastery.
In what other technical field can you simply google everything? And is that because other fields are merely more obscure, or because they’re actually harder? Could one be a mathematician or physicist by googling things?
As someone who works on math intensive back-end stuff, and routinely can't google things, I'll defend web-devs:
Most occupations are not intellectual in the slightest, nor do they require a high IQ. They do require other talents, though, such as a sense of aesthetics or technical ability, in this case.
Not being intellectually rigorous doesn't mean they don't require careful thought or mastery.
I could absolutely perform any of the individual steps required to design a website, and have done this. But I either rely on somebody else's template or my designs tend to look like shit. Mostly, I think, the sheer patience to tweak CSS, let alone testing it on a dozen browsers and mobile devices, is often beyond me. Or (Christ, be my shield) dealing with end users.
The simple act of repetitively designing many hundreds of websites and then getting feedback from actual people as to how they work with those sites, that is mastery and it does take careful thought. So, yes, they're constantly looking up "recipes" to combine into code.
Speaking as someone who is on the "tool-making" side of the house, that's the point. I want to make tools that other people can use and combine into new things; if I write a compiler, the goal is that someone can use it without having to learn compiler theory.
Maybe referring to Physicists and Mathematicians googling is a bit glib but almost certainly they do a whole lot of "Googling" by way of being familiar with what others have done...it is the only way to be effective.
Knowing how to quickly find what you need is not in conflict with mastery...besides, we are talking about web apps here, most dev teams wont have much patient with a developer spending a ton of time reinventing wheels when there are ready-made solutions.
>This just shows how shallow web programming is in intellectual content.
Not really, the same rule applies for a hell of alot of other things.
>And is that because other fields are merely more obscure, or because they’re actually harder?
It's simply because other fields don't have the same knowledge sharing culture and you end up having to use SciHub and doing the knowledge sharing yourself.
>Could one be a mathematician or physicist by googling things?
I think a number of fundamental cultural problems with mathematics needs to be fixed before this is viable for the broader population, but I do think it may become the case over time.
I found for web development that to google is simply the fastest way to a solution I'm trying to solve immediately. It is all about rushing to fix the next problem in code. Need to do something new? You can enter a few keywords and the solution pops up. For most folks this search then copy/paste is the extent of programming nowadays. The deeper stuff where we all get enjoyment from programming done without google may be a thing of the past.
Also knowing when you have found the answer. An experienced developer doesn't just paste the first thing they find. They read it and think "Ah yes, this will do what I need"
jim-jim-jim|6 years ago
I also think that anything js-adjacent has a real culture problem. Trying to dredge an answer out of a Medium tutorial written in a cloying tone and interspersed with pointless gifs can be such a groan enducing experience. I'm hoping that the community will mature alongside its technology.
braythwayt|6 years ago
Manpages and documentation are written to be references. Blog posts are written to be tutorials. They have different affordances, and as a result it is very hard to learn how to use something purely from a reference, and very different to solve a problem purely from a tutorial.
That’s why really decent reference sites have both step by-step tutorials AND references designed to answer questions quickly and to be easily searchable.
If there is an opportunity here, it is for search to understand the difference and know how to present the two kinds of results differently.
That way, if you question is, “How does this thing work?” You should get tutorials. If your question is much more specific, like “what parameters does this take?” You should get a reference.
Or something hand-wave-y along those lines.
markbnj|6 years ago
I don't really get this response. First there's the notion that "webdev" is the discipline where information is so fractured that you need to go googling around to figure out how to do everything. All the other disciplines have a magic thing called a man page that just gives you the answers. This is obviously not true, right?
The second thing is the idea that a man page for any one component, or even a set of components, could possibly contain enough information to allow you to build a complex system without consulting the experience of peers, colleagues and past practitioners, which is at least what we intend to do when we search google.
snazz|6 years ago
Piping six man pages through grep to find what I’m looking for is simply not as fast as Googling an error message.
I think there’s also a sort of cultural difference between languages and tools frequented by newer and older programmers: more experienced people look for documentation and then get working on their project, whereas less experienced programmers look for tutorials and very specific “soft” documentation.
Transitioning from modifying tutorials (the type-in-the-code-in-the-magazine of the 21st century) to glancing at the documentation is probably the surest sign of maturity. Still, you can get a ton done by copypasta.
This might have to do with learning to code with or without the Internet, I’m not sure. I’m personally very envious of people who can take a look at the docs and just get chopping without the assistance of the GIF-covered Medium posts.
baroffoos|6 years ago
>Options to GNU tar can be given in three different styles. In traditional style, the first argument is a cluster of option letters and all subsequent arguments supply arguments to those options that require them. The arguments are read in the same order as the option letters. Any command line words that remain after all options has been processed are treated as non-optional arguments: file or archive member names. For example, the c option requires creating the archive, the v option requests the verbose operation, and the f option takes an argument that sets the name of the archive to operate upon. The following command, written in the traditional style, instructs tar to store all files from the directory /etc into the archive file etc.tar verbosely listing the files being archived:
Scanning through the manpage a fair way down and I can't see the one bit info that covers almost all of my use cases for tar.
And for anything more complex than a tiny cli tool the manpage is far too large to use usefully.
awinder|6 years ago
Anyone could divine some reasons for why javascript / “web dev” is so different but I’m seeing shades of the same thing mixed with personal biases towards trade offs and design decisions.
BossingAround|6 years ago
You don't have to search the internet for web dev any more than you have to do so for any other dev job.
jimmaswell|6 years ago
Google: just type in a quick description of your issue and get a stackoverflow post with an answer as the first result.
I don't get how anyone could prefer the man page.
lazerwalker|6 years ago
bobthepanda|6 years ago
The problem with a reference is that a lot of times browsers do quirky things and things that are essentially browser-specific bugs aren’t documented in a reference.
MaxBarraclough|6 years ago
Which technology? Web development frameworks seem to have a half-life of about 12 months. 'Mature' and 'obsolete' are near synonymous.
CondensedBrain|6 years ago
onion2k|6 years ago
noir_lord|6 years ago
All that and emojii's sprinkled everywhere like cat vomit.
DonHopkins|6 years ago
hiccuphippo|6 years ago
bdcravens|6 years ago
kyriakos|6 years ago
and I hate videos cause usually skimming through text you can get to the part you want to read quickly but with videos you need to go through it
Pxtl|6 years ago
It feels like half my job is googling how to do common things in popular libraries and finding completely counter-intuitive pain-points.
thatoneuser|6 years ago
I get that these ecosystems evolve over time but I'm not convinced that that evolution requires inability to use the underlying features effectively.
unknown|6 years ago
[deleted]
kawsper|6 years ago
Sometimes I wonder if people do it to fill some sort of social need, and don't particularly care for the answer.
solidasparagus|6 years ago
Facebook now has enough reach that it includes many people who don't know how to use technology properly. Finding an answer through Google takes a little bit of skill to frame the question and pick the result that will give you the answer.
Roughly 70% of adult Americans use Facebook [1]. This study [2] is from 2015, but it says that only a third of America adults are capable of medium-difficulty technical tasks, such as tasks where you need to '[evaluate] the relevance of a set of items to discard distractors'.
Remember, 20% of American adults have below basic or no literacy skills [3], which means they are not capable of tasks such as:
- "using a television guide to find out what programs are on at a specific time"
- "comparing the ticket prices for two events" [4]
[1] https://www.pewresearch.org/fact-tank/2019/05/16/facts-about...
[2] https://www.nngroup.com/articles/computer-skill-levels/
[3] http://www.ala.org/aboutala/offices/literacy-all-adult-liter...
[4] https://nces.ed.gov/naal/perf_levels.asp
klez|6 years ago
To be fair, in some cases it's just laziness.
willart4food|6 years ago
Rerarom|6 years ago
runeb|6 years ago
dillonmckay|6 years ago
It is like organizing a library, by dumping all the books into a pile. It increases engagement at the expense of efficiently finding information.
xwdv|6 years ago
robertAngst|6 years ago
Most information is extremely niche, but Coding is all over the internet.
I have not been able to google some of my (Industry Level) Chemistry questions.
ricardo81|6 years ago
travisoneill1|6 years ago
AnIdiotOnTheNet|6 years ago
keiru|6 years ago
"Memory upgrade" means not relying entirely on your own memory and previous knowledge. That doesn't exclude internalizing the language, nor coming up with new solutions. It probably changes a lot depending on what you do, but I've found it imperative to keep up to date with an ever-changing engine, and it would have been malpractice to just rely on memory, and a great waste of my employer's time.
thejohnconway|6 years ago
maxxxxx|6 years ago
miguelmota|6 years ago
blub|6 years ago
I've been thinking about this topic a few months ago when considering how I go about finding out information on how various things are implemented in the Linux kernel, as someone that's not a kernel developer:
* option A is that I start by reviewing the literature (most books are quite old, but I might get lucky) to get a general idea about the topic e.g. memory management under memory pressure. Then I search the kernel docs. Then I use any references that I found to e.g. LWN or similar websites. Message groups search. Finally I would do general internet search, SO, etc. In between these steps I might look at sources, although that's hit or miss, depending on the specific topic. At the end of this adventure, I will probably have a vague or middling understanding of what I was looking for.
* option B is that I ask our kernel expert and he tells me what I want to know, because he's continuously read all of the above resources for the past couple of decades.
So not only is the human memory not obsolete, it is daft to think that Google - which is getting amnesia to boot - could "upgrade" it.
faissaloo|6 years ago
username90|6 years ago
agumonkey|6 years ago
xwdv|6 years ago
Software is not so complicated that you have to Google search everything every time. If you are not internalizing new knowledge, you are performing poorly.
karmakaze|6 years ago
I am a good back-end developer, I'm good at Googling things.
The things I tend to be Googling are typically either superficial, like syntax, or specific as in I know exactly what I want, how do I construct it in x language or y framework? It's quite rare that I have a problem and don't know how to approach it and they're the most fun. Sadly, it's also rare to need to look for algorithms. Just avoiding the run-of-the-mill complexity problems using common patterns or data-structures is sufficient. When they're not (e.g. performance or scale constraints), also fun times.
unknown|6 years ago
[deleted]
o-__-o|6 years ago
adamgamble|6 years ago
We have close to the summation of human knowledge at our fingertips. Why would we be embarrassed to harness that power?
hybridtupel|6 years ago
learc83|6 years ago
Doctors google things, captial E Engineers google things, chefs google things, everyone googles things. Yet you don't hear them talking like this to the extent we do.
Like you said it's knowing what to type into Google, knowing how to filter the results, and knowing how to apply the information you that's the hard part.
pi-victor|6 years ago
for getting started guides, it's great, although even there i'd exercise a lot of caution. there's a lot of info from people who are not experience that people just replicate in their code/setup which isn't really a good idea.
for complex issues you never drown in information. and usually when you find something it probably doesn't apply to your setup. that doesn't mean you can't, at least, get some idea or a pointer to the right solution.
however, just googling or stackoverflowing, i'd be wary of implementing any solution without any thought just because someone else solved it before me.
amanzi|6 years ago
Edit: relevant XKCD - https://xkcd.com/979/ (and the only thing worse than that comic, is finding someone who had the same problem as you and they followed up with a simple "I solved this" with no additional details!)
FooHentai|6 years ago
That said, the search output wouldn't be of any use without being able to relate it to past experience and accepted practices.
baron816|6 years ago
diminoten|6 years ago
robertAngst|6 years ago
This is 80% of my code, but I only spend 20% of my time doing it.
Its that obscure bug that really requires reading.
I find if I am spending lots of time Googling/Stack Overflow, its for the quick lookup of parameters and a real world example.
supakeen|6 years ago
Frameworks change, idioms change, but the web itself has largely remained stable (it's still HTTP, even if we now sometimes use HTTP/2). The same security concepts apply.
I feel like I can authoratively answer on more subjects than I could 10 years ago.
Maybe this is mostly related to front-end frameworks? We've only really had one big shakeup in the backend and that's that for the past decade or so we've all moved towards preferring async code (yay Python3k).
ehnto|6 years ago
Waterluvian|6 years ago
phalangion|6 years ago
leetrout|6 years ago
“He aggressively encourages the use of search engines”
Because every time they would ask me a question I would ask them if they tried to Google it first.
klez|6 years ago
I'm not sure why people think software development (and computers in general) is somehow different. We don't know everything. We basically can't.
What we (and all other professions) have is knowledge on how to apply new information to what we already know.
So yes, you're right. You have to teach the basics, how to put them together and how to add new pieces once you inevitably hit something you don't know.
kumarvvr|6 years ago
I think relying on Google, at least in the initial days of development is bad. I rather developers struggle their way through relevant documentation than google.
ajkjk|6 years ago
sandwall|6 years ago
You name it, it fits. Knowing when and how to ask for help is essential to everything and an important skill for everyone.
doubleorseven|6 years ago
thecrumb|6 years ago
james_s_tayler|6 years ago
fencepost|6 years ago
My recommended response is "Nope, you're paying me to understand what's happening, look for possibly relevant information about why, understand what results are and are not relevant, and apply what I've looked up."
robocat|6 years ago
thrower123|6 years ago
I wish I was being snarky, but this is literally true
thetruthseeker1|6 years ago
I would bet that most great developers have googled often enough. In their defense googling is a more efficient tool than pouring through manpages all the time that have poor search indexes.
Also, in this developer’s blog, there is no reference to the fact that his code is buggy or less maintainable, or plethora of other reasons that categorically make him a bad developer.
I think it’s ok, to use help from google or stack overflow to do a good job at your task and that doesn’t make you a bad programmer.
themark|6 years ago
mrmonkeyman|6 years ago
Damn SEO BS is killing it.
pteraspidomorph|6 years ago
faissaloo|6 years ago
alobat72|6 years ago
HillaryBriss|6 years ago
scarlac|6 years ago
I literally said "What would google for?" and then proceeded to invite them to show me in a browser. It gave us a good impression of how good they are at finding answers to coding problems.
detaro|6 years ago
julius_set|6 years ago
This leads me to a hypothesis. I would argue a large percentage of software developers are average, the bell curve for extremely brilliant engineers and extremely idiotic engineers must be be low for each end.
So what is considered average work?
I would working on mundane issues which involves a lot of googling. It would also reason that if you are googling a lot you aren’t doing anything that’s breakthrough or exciting since if the rate of your googling is high that would indicate that the problem you are solving is quite common.
There is a large difference between building things with React and learning how React works and trying to create your own.
I’m not sure why the “re-inventing the wheel” I dread the day we stop innovating and resign our career lives to “well someone else solved this problem so it must be the best solution - no need for me to innovate.”
mmcnl|6 years ago
nothrabannosir|6 years ago
jrs95|6 years ago
InafuSabi|6 years ago
Re-inventing the wheel is out.
Standing on the shoulders of giants is in, just like Isaac Newton did it centuries ago
zxcvbn4038|6 years ago
shervinafshar|6 years ago
stevewillows|6 years ago
I've seen friends and family search for errors or 'how do I...', and their searches mostly yield youtube videos and scraper sites. For me its mostly SE, reddit, and product specific forums.
Knowing how to ask the right questions and understanding jargon is often the greatest asset.
espeed|6 years ago
https://jnd.org/things_that_make_us_smart_forbes_article/
evo_9|6 years ago
When I interview someone I often ask them what they will do if I'm out-of-the-office, no other senior devs are around, and they need to find the answer to continue to be product - what do you do? You would be surprised how many times I hear 'wait for you to return', versus 'I'd fire up duck-duck-go or search stack overflow'.
verisimilitudes|6 years ago
Of course, I also pride myself on using good tools. My observation of Stack Overflow is that it's an excellent resource if you don't know what you're doing and don't want to learn what you're doing. Unfortunately, that's the only real way to operate some things. The only times I ever really need to use the Internet for such a problem is when it involves some baroque WWW nonsense some idiot caused however many years ago that's still echoing today or it involves some baroque UNIX nonsense some idiot caused however many years ago that's still echoing today.
If you use good languages and good tools, with real standards, (Common Lisp is an example.) you'll find yourself seemingly magically free from all of this stupid and pointless drudgery. Consider giving it a try some time. Imagine not needing to rewrite code constantly because something updated or some external ''API'' changed or other nonsense.
As a closing aside, it's laughable that people are pointing to man pages as examples of good documentation. GNU Info isn't perfect, but it's leagues better than man pages will ever be, if only because it's segmented and hypertextual.
LoSboccacc|6 years ago
it's true that in the current "move fast break everything" climate developer knowledge expires at an alarming rate and everything needs to be rechecked constantly trough internet sources to fix integration issues between ever changing libraries
it's also true that searching sources without a solid knowledge base derived from theory and practice quickly devolves into cargo-cult programming.
I too sometimes feel like my skill differential often comes only from being very fast at googling stuff, however this is a gross oversimplification on what happens after the specific knowledge piece is acquired: whether the solution is taken to solve the problem at hand or if it results in a change in one own understanding of the problem domain makes all the difference.
RandomBacon|6 years ago
noonespecial|6 years ago
Wisdom is knowing which result to use.
badatshipping|6 years ago
In what other technical field can you simply google everything? And is that because other fields are merely more obscure, or because they’re actually harder? Could one be a mathematician or physicist by googling things?
ben509|6 years ago
Most occupations are not intellectual in the slightest, nor do they require a high IQ. They do require other talents, though, such as a sense of aesthetics or technical ability, in this case.
Not being intellectually rigorous doesn't mean they don't require careful thought or mastery.
I could absolutely perform any of the individual steps required to design a website, and have done this. But I either rely on somebody else's template or my designs tend to look like shit. Mostly, I think, the sheer patience to tweak CSS, let alone testing it on a dozen browsers and mobile devices, is often beyond me. Or (Christ, be my shield) dealing with end users.
The simple act of repetitively designing many hundreds of websites and then getting feedback from actual people as to how they work with those sites, that is mastery and it does take careful thought. So, yes, they're constantly looking up "recipes" to combine into code.
Speaking as someone who is on the "tool-making" side of the house, that's the point. I want to make tools that other people can use and combine into new things; if I write a compiler, the goal is that someone can use it without having to learn compiler theory.
Edmond|6 years ago
Knowing how to quickly find what you need is not in conflict with mastery...besides, we are talking about web apps here, most dev teams wont have much patient with a developer spending a ton of time reinventing wheels when there are ready-made solutions.
faissaloo|6 years ago
Not really, the same rule applies for a hell of alot of other things.
>And is that because other fields are merely more obscure, or because they’re actually harder? It's simply because other fields don't have the same knowledge sharing culture and you end up having to use SciHub and doing the knowledge sharing yourself.
>Could one be a mathematician or physicist by googling things?
I think a number of fundamental cultural problems with mathematics needs to be fixed before this is viable for the broader population, but I do think it may become the case over time.
sys_64738|6 years ago
RickJWagner|6 years ago
I'm a middleware support engineer. A reasonable amount of experience, coupled with Google, will solve many problems.
janpot|6 years ago
aliswe|6 years ago
That's funny, khaliq means creator in arabic...
bengale|6 years ago
baroffoos|6 years ago
sbhn|6 years ago
tannhaeuser|6 years ago
musgrove|6 years ago
sonnyblarney|6 years ago
Every time a user has to ask a simple question and they have access to the docs, I see it as a 'product fail'.