Live data from Hacker News

How to avoid humiliating newcomers: A guide for advanced developers

opensource.com

41–50 of 80 posts

Re: How to avoid humiliating newcomers: A guide for advanced developers

#41
post #37

Earlier quoted context omitted.

But if you constantly get frustrated with newcomers, and another guy is always helpful and calm, the newcomers will gravitate to that other guy. If those newcomers advance, who are they more likely to help out with things? If they go to other companies, who are they likely to give a reference to? Getting frustrated is an emotional response, you don't have to get frustrated.

Eventually Mr. Always Helpful And Calm is going to get frustrated, too. It's about instilling the right mindset in newbies and not nurturing dependent work relationships. I like being Mr. Helpful, too, but I also like to see new devs persevere through all the frustration and bust through to the other side. Teach a man to fish, and all that.

This is simply not true. Not everybody looses patience and not everyone finds programming frustration. Not everyone ends up yelling at newcomer.

Also, it is possible to communicate reality of programming and "right mindset" without loosing control in the process.

Re: How to avoid humiliating newcomers: A guide for advanced developers

#42
Slightly 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.

Re: How to avoid humiliating newcomers: A guide for advanced developers

#43
It 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.

Re: How to avoid humiliating newcomers: A guide for advanced developers

#45
post #8

[09:00] Hi. [09:16] Hey, what's up. [09:23] I have a problem, do you have some time? [09:24] Sure, what's it about? [09:27] Have you worked with X thing before? I have to do Y thing but don't know how. [09:28] 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] Sec, gonna try that. [09:35] I got…

My solution to this problem is (1) avoid instant messaging at all costs, and (2) delay responding to any mail that is either (a) a contextless plea for handholding ("I have a problem, do you have some time?"), or (b) best solved by the asker taking some time to educate themselves. It's a win-win, because either the asker learns they can solve their problems more quickly by Googling it themselves, or I can limit my re…

+1 to not logging on to the company’s IM. Emailing somehow feels more ‘persistent’ so it’s unlikely that conversation like the one above would have happened in an email thread. Or, people have to come and talk to you in person; in which case they will probably think twice first and maybe solve the problem on their own in the process.

Re: How to avoid humiliating newcomers: A guide for advanced developers

#46
post #10

It'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 o…

I guess I don't understand the scenario where you're being forced to answer this guys question. Why can't you come back to that question when you're not spending a week trying to move a button on a browser?

Re: How to avoid humiliating newcomers: A guide for advanced developers

#47
I'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...)

Re: How to avoid humiliating newcomers: A guide for advanced developers

#48
I 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."

Re: How to avoid humiliating newcomers: A guide for advanced developers

#49
post #43

It 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 o…

> 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.

Re: How to avoid humiliating newcomers: A guide for advanced developers

#50
I 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

Post reply on HN