6 ms·
How to avoid humiliating newcomers: A guide for advanced developers
- internetman55 9y agoIt's fine to humiliate newcomers as long as you're fine making enemies. As a recent university grad, most people entering CS today are not geeks or nerds or whatever--they're more and more the high IQ people who just want to make money. These people have higher social skills and self-esteem then traditional geeks. The truth is that most programming done today is pretty easy and does not require deep technical skills, so these guys can really advance without problem anyway. Being an asshole means that you're 2-10 years out from people with better social skills than you and hate you advancing into management. At least that's how I read the current trends.
- PeterStuer 9y ago"most people entering CS today are not geeks or nerds or whatever--they're more and more the high IQ people who just want to make money. " Hey, that's what we said in the 90's as well ;-) Well, tbh, we left out the 'high IQ' part.
- bitwize 9y agoWell, it's even more true than ever now.
- cosban 9y agoI'm willing to admit that maybe I'm not the best at social interaction. I think this article is on point though. I am unable to count the number of times I've gone to some random project community for assistance dealing with whatever problem I was having at the time to be met with someone telling me that what I'm doing is insane and shouldn't be done in the first place. It's taught me that I should just use these outlets as a last resort. I'd rather struggle with whatever I'm attempting to solve and try to refine my searches beyond the amount of time for it to be useful than deal with very opinionated and unhelpful people in a chatroom/mailing list/forum. The unfortunate thing is that this is generally something that happens when I deal with open source and when asked about why the interaction is the way it is, there is always a retort by someone saying the help is free and that I should be grateful. The feeling is certainly something that I could compare to what I imagine the receiving end of the santa scenario was.
- msla 9y ago> I am unable to count the number of times I've gone to some random project community for assistance dealing with whatever problem I was having at the time to be met with someone telling me that what I'm doing is insane and shouldn't be done in the first place. There should be an explicit three-way breakdown for this: 1. You're having trouble because of a bug, either yours or ours. If it's yours, the helpful thing is to help you fix it. If it's ours, obviously all projects should accept bug reports gracefully and work on them in some kind of reasonable fashion. 2. You've hit a deliberate design limitation, which isn't a bug as far as we're concerned, but we're willing to acknowledge it's annoying. This might turn into a feature request. 3. This is out-of-scope for our project. You picked the wrong tool. Getting us to change scope probably isn't going to be done using a bug report. That should be stated politely and without denigrating you or your problem. What should not happen is what you describe: Developers fitting problems into a Procrustean bed and cutting off the bits which don't fit the pre-designed mold, and then claiming that this cut-down problem is all anyone would ever need to solve. It's sometimes inevitable that you have to simplify the solution by simplifying the problem, but never pretend that a solution thus simplified is complete.
- commandlinefan 9y agoWell, on the flip side - I've had similar experiences to cosban's, and it usually goes like this: I'm neck-deep in a complicated scenario, and I'm stuck and can't figure out what to do next. I can ask for help, but it will take pages of explanation just to describe how I got where I am. Recognizing that everybody's (myself included) attention span only goes so far, I try to describe just the problem I've run into in as few words as possible without going through the whole epic story. Then somebody comes along and says "what you're doing doesn't make any sense, you shouldn't be doing that"...
- watwut 9y agoMany questions come from beginners - and they are often trying to do the wrong thing. The developer who is answering you don't know who you are nor what you tried before, it makes sense for them to eliminate most common scenarios first before advising on something complicated. It is not necessary personal nor lack of good intention, it is that experience with answering questions teaches you that it is overall most effective to check whether the problem can be solved differently as it often can be done.
- gnode 9y agoI wonder if the underlying reason for this emotional response is guilt which goes hand-in-hand with altruism. In the case of the Santa and the homeless man, the Santa didn't want to give the man $5, but did so presumably out of guilt, then felt angry. In the case of the author getting angry about low-value questions, I wonder if that's because of a guilty feeling that they must answer. Personally, I can't really empathise with the author's anger, yet I'm arguably less generous than them; I don't feel much drive to spend my free time on Stack Overflow et al. answering stangers' questions.
- blub 9y agoThe author is completely missing the point of his own feelings: his unconscious mind is telling him to stop wasting time answering questions and do something more useful. But of course, the conscious mind knows better, one must behave nicely, be zen, suppress their feelings, etc. And 10 years later you're visiting a psychologist to deal with your burn out.
- s_m_t 9y agoI don't even care if this is arm chair psychology, from a literary standpoint this really ties the piece together. The Santa example doesn't make much sense otherwise.
- strkek 9y ago[09:00] <Someone> Hi. [09:16] <Me> Hey, what's up. [09:23] <Someone> I have a problem, do you have some time? [09:24] <Me> Sure, what's it about? [09:27] <Someone> Have you worked with X thing before? I have to do Y thing but don't know how. [09:28] <Me> So, I just googled "how to do Y thing in X thing" and got this blog entry explaining in detail, and also this other Stack Overflow answer with a very similar problem. [09:29] <Someone> Sec, gonna try that. [09:35] <Someone> I got this error "someVariable is not defined". What's it mean? sigh [09:36] <Me> You're trying to use a variable that doesn't exist. Can you paste the code you're using? [09:37] <Someone> (Code) [09:37] <Me> Replace "someVariable" for "someOtherVariable" and it should work. [09:38] <Someone> It works, thanks! I really, really try to be nice, but there's a limit on how many situations like this I can handle before losing my sanity.
- maxxxxx 9y agoI have had plenty of dialogs like this with people who have no ability to look up something or, I often suspect, are too lazy. If this happens a more than a few times and it's clear they have no grasp of fundamentals ("I got this error "someVariable is not defined". What's it mean?") I send them a link with a tutorial or a book and tell them to read it.
- Humdeee 9y agoChapter 1: hello world
- commandlinefan 9y agoYeah, I'm not sure if I'm going against the grain here, but I think it's more than reasonable to say, "you really need to spend some time reading through <name of specific piece of documentation>". Even if they don't like it, and even if they end up not liking you, in many cases, that really is the best - and only - advice that will ever help.
- koala_man 9y agoI had this problem as well. The same trivial shell scripting problems came up over and over. My solution was to write a static analysis tool (ShellCheck) that would recognize them automatically and with enough confidence would even auto-answer. It's gotten way more use than I ever expected. Haven't made much progress on the plaintext question problem though. Some day!
- cpburns2009 9y agoThose Stack Overflow answers are awfully contrived. In my experience answers like that are quickly down-voted and deleted by the community. That being said, if you ask how to parse HTML with regular expressions, or post some SQL with injection vulnerabilities, they'll be closed as duplicates.
- commandlinefan 9y agoYeah, I believe him when he says it happens, but I've never encountered hostility on SO, and I've asked some really stupid questions (and in each case, I really ought to have known better and done my homework, so in my case I would have deserved a bit of condescension).
- tboyd47 9y agoIt's absolutely true that you should be nice to people, but let me also issue a similar warning to newcomers not to ask questions in a way that inspires rage. Programming is, in a very abstract sense, a dirty job. We get paid well, have great benefits, perks, and mobility, but we are the toilet scrubbers of the software world. We spend whole days hunting semicolons, or trying to reverse engineer bug reports that no one remembers writing. I've spent a whole week trying to move a button over about an inch in all supported browsers just to make the product "pixel perfect". I've spent a whole month trying to figure out how to use a SaaS feature as advertised that had sparse documentation and no tech support. Some newcomers really don't understand/believe that, and think it's acceptable to run for help every time something frustrates them... do everyone a favor and don't be that person, please.
- godzillabrennus 9y agoSo you advocate for less communication? Why not create a culture that embraces having new comers ask questions in a non disruptive way? Something like a slack channel where experienced dev's can chime in if they have time. I'd freak out on anyone on my team if they were telling new hires not to ask questions. That's just stupid.
- falcolas 9y agoMy experience: If you come with a question and the steps you've already taken, the research you've already done, you will rarely if ever get a poor response from developers (or at least those who are decent human beings). So, don't start with Slack. Start with the docs, then google, and then end with Slack (even as just a confirmation of your researched solution).
- tboyd47 9y agoAgreed. I'm not saying don't ask questions. I said "not in a way that inspires rage." Just make sure you do your due diligence first. That's important.
- deleted 9y ago[deleted]
- jstewartmobile 9y agoMost programmers are assholes because they are unhappy. Most programmers are unhappy because most software is terrible. Most software is terrible because most programmers are assholes.
- adjkant 9y agoI'd argue that most programmers are assholes for reasons far beyond software being terrible, and are unhappy for those other reasons, which is a much bigger conversation. The only reason I bring it up is that developers using software as an excuse to be assholes will only make the problem worse and is a cop-out for dealing with the actual issues.
- jstewartmobile 9y agoJust going off the article. If improper capitalization of "Python" makes him have to take a deep breath and count to five, he's probably an asshole, and if that asshole just happens to be "one of the most senior programmers at MongoDB", then the universe makes sense today. edit: What are the actual issues? I want to know. Change my mind.
- adjkant 9y agoIf the edit was because of downvotes, no downvotes here, but all I'm saying is I think software has nothing to do with programmers being assholes. If you can be a mean person because of a tool you use, no matter how badly or sadistically the tool is designed, there's a very different problem. People also just objectively aren't vengeful when making design decisions for software - that's just not how people work. Bad software is mostly written out of laziness and lack of knowledge I find.
- jstewartmobile 9y agoJust wanted to hear the complete thought. I'd say that the assholery on the design side comes more from ego and lack of consideration than intentional sadism.
- makecheck 9y agoWith many things in life, it’s good to assume other people are not in the same situation as you. Just because you have all day to work on something doesn’t mean that the whole Internet has all day to help you. What percentage of your free time, for instance, will be spent compared to the percentage of free time of another person? And, what have you done to minimize time required: have you tried to succinctly describe your problem, have you Googled terms in advance, etc.?
- watwut 9y agoIt takes less time to ignore question then to be sarcastic, intentionally misleading or jerk about it.
- blub 9y agoWhat a pretentious piece of writing, I can't stand this kind of goody two-shoes attitude. It's ok to be human and get upset every now and then. Heck, you might even take it out on someone. Apologise and move on, you don't have to become a buddhist and take the three breath vow - it's useless and unhealthy.
- jamesgeck0 9y agoWhat is unhealthy about deciding to pause before responding harshly to someone?
- blub 9y agoThat's not what's being discussed... the author gets themselves into situations that can easily turn irritating, like hanging out on StackOverflow or answering noob questions on chat. The solution is for them to take time out from that, not become a zen monk. In general it's a valuable skill to have self control, but it doesn't work perfectly, so it's best to avoid having to exercise it all the time and pressuring oneself to always react "correctly" through self-guilt.
- anonymousDan 9y agoTotally agree, I actually thought his response was pretty funny. If people can't take a joke like that they need to lighten up/harden up a bit.
- cleong 9y agoYour right that you shouldn't be fixated on past mistakes, but remember you can't take back what comes out of your mouth.
- deleted 9y ago[deleted]
- mmsimanga 9y agoSlightly off topic. In big non IT corps I have worked with people whose title was developer but they couldn't do a thing on their own. I am not talking newcomer here, but people mid career. They basically mastered, I am helpless look and would rotate whom they ask for help. My turn would come every third week. Great people but just not interested in programming.
- NumberCruncher 9y agoIf I am a great guy but not interested in cooking maybe I should not work in a kitchen?
- everdev 9y agoIt would be helpful if there were levels of open source: Community - Fully open to discussion and contribution from everyone, decisions are made collectively and contribution / support responsibilities are shared by all. Committee - Open to input, but decisions are made by the project leadership. Leadership is voted on by the community and provides support and contribution guidelines. Ownership - There is a project owner or co-owners that make all decisions and offer support if available and set guidelines on contributions. Visible - Open source in the sense of being transparent or usable by others, but little to no support offered and contributions may not be accepted. I think many people think they're walking into a Community project when it's really a Leadership, Ownership or Visible project and feelings get hurt. Much better to set expectations early on in the README.
- msla 9y ago> Community - Fully open to discussion and contribution from everyone, decisions are made collectively and contribution / support responsibilities are shared by all. > Committee - Open to input, but decisions are made by the project leadership. Leadership is voted on by the community and provides support and contribution guidelines. > Ownership - There is a project owner or co-owners that make all decisions and offer support if available and set guidelines on contributions. Committee is the Debian Project, which has explicit governance and formal process, correct? Ownership would be the BDFL model, like Linux or Python or most other projects I could name. Linux breaks down into subsystems, each of which are owned by a specific person, so it's a recursive form of the Ownership model. I can't think of any project using your Community model off the top of my head. > Visible - Open source in the sense of being transparent or usable by others, but little to no support offered and contributions may not be accepted. I think this should have a different name, to make sure people don't confuse it with the non-OSS Viewable Source licenses some companies use: You can see the code, but you can't fork it and distribute modified versions.
- sporkit150 9y agoHow about we start with condescending blog titles?
- heckless 9y agoI've been the organization administrator for a library that participates in Google Summer of Code for many years now. Of the questions that we typically see and the requests we typically get, some are high-quality and constructive---and are people legitimately asking for help. But the article here kind of glosses over the reality of the hard part: the low quality questions. The "please help me get started"; the "how do I get accepted"; the "please review my PR". It's all well and good to say, hey, take a step back! Be nice! Don't respond when you're angry! But this is not the reality for an overwhelmed open source organization---and let's face it, most popular projects are completely overwhelmed. The reality is that to wake up every day to countless new issues and pull requests and other demands on your time is absolutely soul-sucking, and after years and years of this it grinds you down and leaves you with resentment and disappointment, and that's just absolutely not great for anyone. I don't necessarily have any rebuttal to what the author is saying, and I think the intentions are great, but I think it's also important to point out what reality is for people who are trying to build community and help: everyone slowly burns out doing it. It's like social work. (food for thought: Github has made this problems orders of magnitude worse for organizations, because lowering the barrier to entry means now anyone who doesn't know where to start can open an issue and clog up a bug tracker in just a few seconds, and anyone who thinks they can write code can open a low-quality PR in just a few minutes, and this is more to do for the maintainers...)
- iamcasen 9y agoI think what's worse than lazy newcomers wanting someone to hold their hand through a problem, is newcomers who try and argue for a truly terrible idea, or worse yet, call into question an idea that is as old as time. I have had more experiences than I can count where people keep trying to reinvent the wheel and poo poo an idea that Knuth himself would be proud of. "I don't have time to explain to you why this idea is good, it should be common sense. It would take you learning programming principles for years before you'll get it, so I won't be able to convince you in a 30 minute presentation."
- mkoryak 9y agoI recently had a choice between being an ass or being nice to a guy asking a really basic question about my open source project[1]. At first I was going to tell him to read the docs and that I didnt have time but I decided to help the guy out. He ended up running into an bug that had been open for almost a year but I never got around to fixing because of an existing workaround. Anyway, I was slightly embarrassed and ended up tracking down the bug and closing it out. It pays to be nice. [1]: https://github.com/mkoryak/floatThead/issues/408 https://github.com/mkoryak/floatThead/issues/408
- deleted 9y ago[deleted]
- peterwwillis 9y agoThings I've found to help situations like this: 1. When a person is asking you for help, try to imagine a situation where you have needed help and asked someone for it. Imagine your responses to them as someone's response to you. Empathy and compassion are really great tools to use when communicating. 2. Do not sign yourself up for something you don't want to do. If you don't have time to help or don't want to, simply say so. There is no reason to make yourself upset, and then lash out at a stranger, if you don't need to. 3. Be a teacher. Teachers don't give the answers, they help give an understanding of how to solve the problem. 4. Don't continue a conversation if you feel you are angry, upset or annoyed. Try to redirect your energy. Talk to a boss, co-worker, or friend about the situation and ask for their advice. Go for a walk. Listen to music. Write out the experience and your feelings to a private journal.
- sg0 9y agoThis is endemic with SO. Particularly, I am not happy with the Python community of SO either. Couple of months back, my wife who is a student and very new to Python (and had to quickly prototype an intermediate part of a Genome Assembler as a PoC, before she could recreate it in C++ and MPI) asked some question in SO, and met with sarcastic comments by an experienced user. She didn't have time to read up a book on Python, since she had a time crunch to finish the work within a couple of days. So the day she posted the question, she told me that she fears snide comments, and that's exactly what happened. If you are in a position to criticize someone's sarcastic comments, then please take the time in doing so.
- beager 9y agoThere’s great wisdom here from an obviously enlightened crowd, but I will say, as a php dev for 9 years, permissive attitudes toward bad advice about programming did hold me back as an engineer. I know php is the butt of many jokes about bad language design and bad architecture, but I wasn’t helped by the glut of terrible, outdated advice about php programming that just wouldn’t go away. I could have benefited from a forceful, constructive voice that not only helped me solve my problem, but taught me to seek a higher sophistication for the code I was writing. And that’s where I think advanced developers turn into humiliating jerks. I would wager that most of them aren’t deliberately trying to excoriate junior devs, they just are frustrated that developers are repeating the same inefficient path to good practice that they may have trod. Instead of being short-fused and curt, they should take time to inventory the positive things that helped them, and pass those tidbits of effective advice along. It’s very hard to pause and take note of resources or insights that made you much better as a developer. However, those who can are able to give junior devs a shortcut to excellence that is a net benefit to everyone around them, instead of just getting frustrated that the junior devs aren’t achieving enlightenment as fast as they themselves would have liked to.
- expertentipp 9y agoNot only on the web but it’s an issue in workplaces as well. FPS style humiliation, and it’s not about knowing the basics but when learning the project or questioning some quirks or weird architectural decisions (so easy to trigger someone right here). Listen, the world is small, professional environment is not an online game, and your experience in a particular project can be surprisingly worthless during the next job search.
- birchb 9y agoI absolutely adore the ambiguity in this HN title. Perfectly crafted. Well done.