People end up getting ridiculed, punished or even have mobs of people harassing them for having dissenting viewpoints online. Why bother exposing yourself to different viewpoints when all it does is bring you vitriol and sometimes real world consequences? There isn't any upside.
This place is no exception except it is done under the veneer of being objective (when it rarely is). You can be polite as you like, but if you have an actual dissenting opinion you will be downvoted or even be flagged over nothing.
> Why bother exposing yourself to different viewpoints when all it does is bring you vitriol and sometimes real world consequences? There isn't any upside.
That's why you should take care of protecting your identity online.
As for upsides, I see many. If you don't expose yourself to contrary opinions, there can be no development, you basically shut yourself to anything that could be beneficial to you, especially in the long run. I'm very grateful whenever someone makes me realize I made a mistake or didn't see the complete picture, it's priceless.
Yes, sometimes you hit the wall, but it's also important to recognize people have different worldviews and that's one of the things that make life interesting.
> That's why you should take care of protecting your identity online.
In the future, you won't be allowed to be anonymous online. Governments don't like it and sooner or later they won't allow it or make it very difficult to be anonymous.
> As for upsides, I see many. If you don't expose yourself to contrary opinions, there can be no development, you basically shut yourself to anything that could be beneficial to you, especially in the long run. I'm very grateful whenever someone makes me realize I made a mistake or didn't see the complete picture, it's priceless.
I am not talking about intellectual debate which is fine. I am specifically talking about why people end up forming bubbles that don't pay attention to those outside of their group.
What you are saying is fine if you are dealing with honest actors. But I am specifically talking about the times that you aren't. There are mobs, they specifically go after dissenters and they won't stop, they don't get punished (or very rarely there is repercussions) or push back due to this behaviour.
Thus people will go to places that gives them at least pseudo-anonymity and avoid talking to others on the outside because the risk maybe to great for them to simply express a dissenting opinion.
Also some of these dissenting opinions aren't anything normally one would even consider extreme.
> In the future, you won't be allowed to be anonymous online.
I avoid extrapolation because it can be very deceptive. We're talking about this website, now. As it is, it's very easy to have two accounts: one linked to your startup/company/real identity, and another one where you can express your opinions more freely.
Yes, of course there are many people who are aggressive about their views and basically intolerant, but if someone crosses the line they'll be downvoted here too, even if they have leftish/progressive views. Frankly, of many places on today's Internet, HN is one of the nicest to be.
> Yes, of course there are many people who are aggressive about their views and basically intolerant, but if someone crosses the line they'll be downvoted here too, even if they have leftish/progressive views.
The gamification of social interaction creates the intolerant views and all the negative incentives around it. Downvoting / Upvoting is part of that. It is literally the mob deciding whether you have a right to be heard. I rather there were the rules and nothing else.
> Frankly, of many places on today's Internet, HN is one of the nicest to be.
Which is another reason why dissenting opinion is quashed because people self-censor. Sometimes some things have to be said and they have to be said in an unpleasant manner.
It is pretty clear at this point we are just talking past one another though.
I downvoted because the comment contained tedious meta flamebait. There's a small percentage of users who insist on posting such stuff incessantly, making the site more boring for everyone else. Usually they have a long string of accounts.
Google is okay for research on how other people have achieved something. But generally these days I am of the opinion it just teaches you bad habits.
I really wish people would just read the docs instead of just googling. I am working on a large typescript solution and almost every error in the application is due to the original developers not reading the docs and instead just googling stuff from stack overflow.
Also I am against the promotion of google generally. The search engine isn't that much better than Duck Duck Go anymore (especially for dev stuff). Also we should all know the problems with Google's defacto monopoly on search.
"Just read the docs" depends on how good the docs are, and how discoverable they are.
For instance, searching for "Java read a file", I find a bunch of examples. And they mostly are good enough, call out when they aren't, and provide useful links.
A developer who is new to a technology absolutely needs to read the documents. No matter how good or bad, it's important because it probably tells you a lot of stuff you wouldn't learn on your own (or that someone else will teach you wrong).
I do a lot of GCP work anymore, and the amount of devs who make service authentication way more complicated than it needs to be is really freaking high. It's clear that the people who kicked off the project are pulling blocks from SO rather than RTFM because the FM has a simple decision tree for how to use authentication. Reading through the docs could have saved these projects each hours of time, simplified deployment and reduced the security risks associated with passing around json auth tokens (or worse: checking them into VCS.
- Beginners do not understand doc's jargon, or they need to learn too much stuffs to understand it that they'd rather quit. So they end up relying on third party sources/implementations
I agree with the criticisms, my point is that there are many beginners in a state where the most rational or practical choice is to sacrifice quality by following third party resources.
I have a spanish-speaking group where me and others teach beginners programming, and many of them cannot use the docs, whether because of a language barrier, or a lack of foundational knowledge, and all they care is to get things done, otherwise they'd get discouraged and abandon it before even starting
On the other hand: if you are developing software, you're going to have to be able to at least read English, and if you don't understand the jargon, that just means that your starting point isn't just the docs, but also a jargon lookup.
People generally just want to cut corners and 'be done with it' which simply results in lower quality.
I've often found "read the docs" leaves you with too many options for many libraries. A lot of libraries have community preferences that aren't captured in the docs. If you pick the non-standard implementation, you may paint yourself into a corner with plugins and maintenance - even though the way you choose is completely sufficient.
I personally enjoy the Javadocs that tell me nothing about how to use the damn thing. Spending hours poring over it, with no examples, just a generated Javaoc version of the static types my IDE would have told me, and through much trial and error, I eventually figure out that I need -
new Doer(UnrelatedFactory.create("foo", new WTFBar(), 5, null, null), RandomEnumFromADifferentPackage.MEANINGLESS_VALUE, true).do()
But I'm not really convinced such documents are helpful. I mean, technically they're better than nothing (as in, literally better than nothing), but the difference between nothing and those docs is so small it approaches nothing ('as the worthlessness of the documentation approaches infinity the value of reading them approaches nothing', as it were)
> I really wish people would just read the docs instead of just googling. I am working on a large typescript solution and almost every error in the application is due to the original developers not reading the docs and instead just googling stuff from stack overflow.
It's a bit more complicated than that. I do read the docs, but using the web is essential for me, for a few reasons:
- nowadays, a dev doesn't work on an area that can be included in a single book; one touches several different frameworks, and reading that docs for all of them can be just unfeasible
- the docs may not be good; you may be surprised that even the Linux API doc can be really bad
- there may be issues that require workarounds that are not described in the docs
- best practices may not be obvious even when reading the docs
- one can't assume that in a big doc, it's obvious where the solution for a problem is, which may force to read way more than expected
I think a dev can "google more than RTFM'ing" and still produce a good solution, if they intend to - that is, to process the information rather than blindly copy/pasting.
Thinking about it, the major problem seem to me unprocessed copy/paste, rather than "googling instead of RTFM'ing".
No, it's actually pretty simple. Software industry faces the similar problem that journalism faces, we increasingly skip on quality, in a race to the bottom. We hope to fix this by technology, but in the end we just create more work for ourselves.
> nowadays, a dev doesn't work on an area that can be included in a single book
Which is terrible because it means that there is less specialization and its benefits for productivity.
> the docs may not be good
You get what you pay for.
> there may be issues that require workarounds that are not described in the docs
You get what you pay for.
> best practices may not be obvious even when reading the docs
You get what you pay for.
Don't get me wrong, OSS is amazing, but in commercial software, you also pay for support & documentation. But since nobody wants to pay for the software anymore, we end up with using Google instead of reading the documentation. And this becomes self-fulfilling prophecy, why provide good documentation if nobody is gonna read it?
It would be ridiculous if somebody wrote an article stating that "googling it" is the most important skill for a mechanical engineer or a doctor. But for software engineering, it is acceptable. Looks like software engineering is becoming less and less about engineering every day.
Addendum: SW developers also seem to write less, comments or other human-readable explanations. This might also contribute to less appreciation of good SW documentation, and contributes to a worrying trend of being less literate.
> best practices may not be obvious even when reading the docs
I am right now working on a project because of the googling stuff has led to the worst practices at the moment. I have worked on many projects where people haven't bothered reading the docs and I have seen the same pattern for over a decade.
Whereas if they had read the docs the best practices would have been immediately apparent. So that argument hold no water with me.
> one can't assume that in a big doc, it's obvious where the solution for a problem is, which may force to read way more than expected
I want people reading more. Which was part of my overall point. People don't read enough. They go for the quick solution (which is copy and paste from stack overflow) produce something which is usually quite bad and then you normally have to redo that work because the moment you try to change something (due to changing requirements) the whole thing falls to pieces.
I've been guilty of it too. It is a bad habit that is produced through laziness.
I literally wrote docs at a previous place and people kept on asking for help on IM. I wrote the document so I wouldn't have to answer the same questions many times. People getting into bad habits and not looking for or writing docs literally causes a hell of a lot more issues that you would see at first glance.
> Thinking about it, the major problem seem to me unprocessed copy/paste, rather than "googling instead of RTFM'ing".
I would rather have a unprocessed copy and paste then what you get in reality which is a "copy pasta". There are minor bits changed which make it difficult to recognise where it may have originally come from, which makes it difficult to know the original developer's intent.
It is fine for finding the docs. However people use it to find quick, frequently out of date or just wrong solutions on the net.
For example. If you are using the babel compiler and its plugins you will fine lots of answers that are wrong on Stack overflow because they were written when Babel 6 was the major version was popular. Whereas reading the docs (the doc site is quite good IMO) will get you the correct answer every time but comes much lower in search results. Using the babel 6 suggestions can lead you to into some sort of NPM hell.
As with anything, everyone has their own style of learning.
Yes, a large portion of developers just copy/paste from SO. However, many people also use the results of what they find on Google to learn concepts that the actual docs for just aren't that good.
I wish I had the time to learn everything I copy from SO/SE.
Sometimes when you need to get something done and you find something that works as is, it is easier to test it and move on to something more important.
Often it is much faster to learn things properly and get it right rather than trying to figure out why the stuff you copy pasted doesn't work together.
I agree on the first point, allocating time to design the expected outcome is also key.
But on the second point, I find myself having to use the g! Operator of ddg to get the result I need.
Recently it was looking for a workaround I knew existed for a documented defect. ( weirdly not documented on the bug tracker of the library ... go figure )
Google gave me the result, Duck Duck go was serving me the doc or the bug tracker.
Hmm. Actually maybe Google just remembered that from my previous search.
I was thought about creating a documentation search engine for the everyday frameworks. It uses the natural language to match the pattern in the docs to give the best results immediately.
I wish they would scrap them entirely. I used to do very long commutes in the car. If anyone here has done a lot of driving they will know that you tend to go into "autopilot", you are paying attention and know exactly what going on but you probably have no recollection of the last 20-30 miles.
Typically unless you are gunning it on the motorway you will be somewhere between 65-75 to be cruising with the other traffic and that variation of speed is normal unless you have cruise control.
I don't have cruise control in my car. The amount of worry and stress these things induce because I can't remember whether I was travelling at the correct speed (I didn't get a ticket so I must have been fine) drives me insane.
Pretty sure the cameras have some leeway built in, and in addition your speedometer will probably read a few mph under at 70, unless you're using one on a satnav. I do agree though, I tend to just try and find someone else who has cruise control and keep a steady distance behind them.
I have come upon a stranded car a couple of times and it is apparent that most drivers do not notice until it is almost too late. Factor in the time it takes the brain to respond and you literally have an accident waiting to happen.
I am now at the age where I am never in a hurry so, both times, managed to avoid any contact but witnessed some hair-raising near misses.
> Gave it a serious go but it still lives inside the Windows + Visual Studio bubble.
I work in a small shop and most of the developers use Visual Studio with Linux or a Mac. Most of the developers that don't bother with anything outside of Windows won't be open sourcing their libs or documenting their stuff anyways.
This may have been true back in 2016/7 when .NET Core first turned up but it just isn't true anymore.
> Trying to use .NET on Linux with Visual Studio Code is pain: .NET developers expect you to learn APIs through intellisense and don't publish API docs,
I've used VS Code for small projects fine on my Mac. However I can see it being a pain on larger projects and you will need a large IDE. However the same could be said for a large Java project.
> Windows tutorials assume you're running Visual Studio, and a lot of MS's own API docs are bewildering with .NET jargon that you won't understand.
I don't want to sound like a dick, but yes the Windows tutorials will expect you to use Visual Studio as that is the IDE that primary IDE of people using Windows.
As for complaints about jargon. As a C# developer that now transitioning to Python. The Python docs having lot of Python Jargon you won't understand (at first). Every language has its own jargon.
> Java projects publish Javadoc which is good - you can sit down and understand an API. It's not the same story on .NET.
Almost all the projects I use with .NET have sufficient docs on their sites. MSDN has the full docs on their site. If there are specific projects that are a problem that are outside of that. Well that is a problem with their project, go and complain to them.
> Yep, hence the bubble. Python doesn't have this problem, for example.
Yes Python does have similar problems. A lot of time people assume you are using a *nix machine and if you aren't then you normally have to faff with some work around. Go has the same problem a lot of things just don't work properly on Windows (at the least the last time I bothered). The same is true with Java, Go, Ruby etc.
As for the tutorials. I've just gone on the ASP.NET site and there is a tutorial for Windows, Linux and MacOS in the tabs on the site.
This place is no exception except it is done under the veneer of being objective (when it rarely is). You can be polite as you like, but if you have an actual dissenting opinion you will be downvoted or even be flagged over nothing.