Hacker News new | past | comments | ask | show | jobs | submit login

That's a bit rough. I think you are missing the other value proposition for SO: in a world of poorly documented interfaces, it gives cogent, vetted examples of what works. And you still need to have expertise to know which solutions are crap vs gold.

In the 'old days' you had maybe one or two languages and the language was the thing (not vast libraries like Java or .NET .. oh excuse me, the guys who used to get teased for the size of the CMS VAX reference are barely a man page in comparison to modern libraries) -- and now we have a proliferation of languages. Any web dev these days has to know at least 5, maybe more. Any old-timer has had to learn dozens during their career.

So no, I'm not going to use my precious grey-storage to remember an arcane Perl invocation when I can find it easily on SO.

Perhaps I don't meet your definition of 'programmer', but I've seen many junior devs get trapped in SO 'solutions' and wonder how I can possibly glance through 30 solutions and categorize them: "crap, crap, doesn't know what they are talking about, cargo cult, ... ah, there it is.. that's what we should try."

Benefit of experience?




I have to agree. Not necessarily on SO in particular, but on having access to resources in general.

Maybe someone who's only ever done web stuffs in javascript and RoR and the one framework that is being used for the task at the company he's applying for, it's not necessary to check facts.

When you've done two dozen programming languages, everything including low level assembly hacking, embedded & kernel development, graphics programming, network services, traditional desktop software, mobile software, video games and front end web stuffs and you've used more libraries and frameworks than you can count, it is quite possible that you're more than competent enough as a programmer. Yet you might need a bit of a refresher on whatever tech you're being asked to use because chances are it's not the only thing you focused on last year, or maybe indeed you haven't used it in a year or three.

Of course it's not black and white; if a company needs a C expert right now, somebody who knows all the pitfalls and can point at security issues & UB, then maybe he should do well on a test for that, without a reference. Although even then I'd let him use a copy of the standard (or its draft).


I just wouldn't expect to be applying for something / trying to do a test task, where I didn't already have the knowledge.

Then again, I don't really use SO anyway - I know somepeople use it daily.


What does it mean "to have knowledge"? How much information qualifies you to be a knowledgeable? Plenty of us have a knowledge. Until, for one of your project you have to use Spring Boot and Hadoop at the same time. You know them well, you work with them already. But then you put both libs into one project and something throws an exception somewhere deep down in the unknown code. This is unexpected and does not come from your code. Good luck with searching for solution by yourself. Not that it's impossible, and you would learn something, sure, but troubleshooting takes a lot of time, you'd have to keep your current tasks aside and probability is quite high that someone had that problem before you.

IMHO, what makes you a good software engineer is not an encyclopedic facts in your head but general knowledge about principles, algorithms, patterns, etc. You don't have to remember all methods of all classes of standard library, for details you can check the web or use IDE. But if someone asks you about thread safe objects you have to know what does it mean. What may go wrong if you fail to make it so? Why properties must be immutable? And what the hell immutability is in the first place? All other things you should be able find in the online documentation / language reference.

What makes you a good software engineer is the ability to ask a meaningful questions. We have a powerful tools at our hands these days. Why wouldn't we use them for our benefit? You don't have to remember everything. It is there, within a hand's reach. Sometimes I have a feeling that asking Google the right question to solve your problem should be another skill tested during interviews.

What makes you a good software engineer is the ability to switch the tools and adapt quickly to new environment. Give him Internet, give him StackOverflow and ask him to solve a problem in new language, new framework. If he got the concept well, if he knows principles, that should be more than enough to jump in. Don't get me wrong here. I not going to underestimate guys with years of experience. I am not saying he will write flawless code. But he will solve the problem - that's a good start, isn't it?


I guess that I disagree with many people on HN (and they certainly like to express this with downvotes).

Fair enough.

Thank you for your verbose reply - I'll reflect on it.


Well, let's explain the downvotes from 1 POV. The "copy/paste" comment just willfully misinterprets how StackOverflow is used.

I think that we just don't believe you. Did you arrive at every job with perfect knowledge in the areas you'd be working on? Have you not had to learn anything on the job?

If that's the case, then you're vastly overqualified. I feel like I'm being utilized as an employee the best when my manager says: "Hey, there's something weird happening in area X" or "I want you to explore feature X" and I get to dive deep into something for a few days. Our strengths are our ability to learn.


I suspect you're right in many ways.

I mention it as a copy/paste mechanism as I am surrounded by people who use it for that very purpose.

I also did have the knowledge required for the job I applied for, and whilst I have learned a lot (off my own back) over the last 18+ years, very little of it is actually required, as demonstrated by those others who get given similar tasks that they can complete using Stack Overflow.

I'm definitely in the wrong place, and after a while I sense I lost a lot of perspective due to my peers / surroundings.

Personally, I never use downvotes for things I disagree with, but perhaps some people who are luckier to work in better scenarios believe that situations like mine don't exist - I don't wish anybody to walk in my shoes.

Thank you. I appreciate you taking the time to explain.


That sounds like a crappy job to be in, I'm sorry. I've worked around people who were... negative, and were really bad at explaining things to me, and also kind of hacky. It sucked and it drained my morale.

There are good places out there, _even_ if they're low-skilled environment. I think it's totally a cultural attitude, to be willing to take the time to learn, and to have a good attitude and effort about it. You can copy/paste from SO and still be using it as a learning tool.


I've used dozens of libraries professionally over the past year or so. Some of them I use every day, others I only need to touch once a week or once a month. Why would I be expected to memorise all of this when it takes only a few seconds to look it up?

I use Python, Clojure, ClojureScript, C++11, Javascript and bash regularly. I remember all of the standard library functions and third party libraries that I use a lot. But even after 15 years of using Python, I still have to look up, for example, the datetime module or what functions exist in the collections module. I still need to look up how to use the C++11 chrono library. I still haven't memorised the entire Clojure core functions (there are so many of them!) I still need to look up the DOM API for javascript (but then, I don't use JS that much).

I'm sure part of it is the context switch: if I were using one single language 100% of the time, perhaps I could memorise its core libraries. But why bother when it takes 3 seconds to look up and every professional job I've ever had its perfectly fine (expected even) to look up online documentation on the job.

So why not during an interview too? If your interview isn't testing me on what I'll be doing when I'm on the job for real, then whats the point? Testing my memory isn't a good reflection of my skill when working on real tasks.

Now, when I learned to program, I didn't have internet and worked completely from offline documentation (I learned Visual Basic, C++ and Python this way), so its not that I'm completely incapable of it, but it seems like a terrible use of my resources.


>Then again, I don't really use SO anyway - I know some people use it daily.

Out of curiosity, what do you do professionally? I'm impressed that you have so much ___domain knowledge memorized that you seldom ever need to look up anything.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: