Skip to content

Commit

Permalink
Publish bonus_8.
Browse files Browse the repository at this point in the history
Closes #77.
  • Loading branch information
chriskrycho committed Mar 19, 2017
1 parent 54583ab commit 8430d37
Show file tree
Hide file tree
Showing 4 changed files with 284 additions and 2 deletions.
75 changes: 75 additions & 0 deletions docs/bonus-8-script.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Giving Back (by Teaching)

## Intro

Hello, I'm Chris Krycho, and this is the New Rustacean podcast---a show about learning the Rust programming language. This is *Bonus episode 8: Katas---Giving Back (by Teaching).*

## News

Good news, everyone! I finished the course work for my Master's degree this past Monday, so things are settling down and it's going to be much easier to put out episodes every other week. (That last class was a weeklong intensive and was the reason this episode is reaching you a week later than usual.) Huzzah!

## Giving Back (by Teaching)

Now, a few thoughts on giving back by teaching.

Over the last few years, I've been working on finding ways to use the skills and abilities I have, and the advantages I've been given, to help others. There are lots of ways to do that. But one of them---and one of the ones I seem best equipped for---is *teaching*. This podcast is part of that. I haven't been in a spot where writing huge amounts of code outside of work was something I could do: I just didn't have that much spare mental energy between work and school. But writing a podcast, or a technical blog post, exercises a *completely* different part of my mind. So I've done that, and I intend to do a lot more: continuing to produce this podcast, giving well-prepared talks in my area, writing detailed technical blog posts, etc.

But I've also been thinking about other, more significant ways to contribute to the world around me. In the last month, I've bumped into two other men at my church who are on the very early parts of the curve in learning programming. So I've decided to set up "office hours" for a few hours in a local coffee shop every month, and I'm going to see what I can do to help these guys get their feet under them as software developers. There are two big "rules" I'm going to have for these office hours: anyone, of whatever skill level and interested in whatever language, is welcome. That means that even though I don't *love* Java or C#, I'm going to do my very best to help these guys get up to speed on them, because that's what they want to learn---and I'm not going to say a disparaging word about either language. There's time enough to talk through the tradeoffs which come with different languages when someone has their feet under them (and, better, when they have a *job* in the field, if they want it). I've also been looking around tentatively---and, after my wife and daughters and I move to be nearer our extended family sometime in the next year, will be looking around *intently*---at ways I can actively use my background and abilities to help others "bootstrap" their way into our profession. That might be serving in a correctional facility. It might be showing up at a learn-to-use-computers class. It might be any number of things. But I have been given much, and I take seriously the idea that much is therefore expected of me. I think we *all* ought to take that idea more seriously.

Accordingly I want to challenge you listeners: what are the ways *you* can help others? I have a few ideas, but I'd also love to hear more: tweet them at me @newrustacean, email me at [email protected], add them to the threads for the episode on Hacker News, Reddit, <users.rust-lang.org>, and I'll mention them on the show. (If I get *enough* feedback along those lines, I'll just write another bonus episode and talk through those options!) But in the meantime, let's look at just a few of the ways you might help, regardless of where you might be in your own technical journey. And remember: you might be at different points on this curve in different skills and frameworks and language. That's how it always goes.

### Total Newbie

So maybe you're just on the early side of the learning curve yourself. That's not just okay, it's *great*. You have some specific things you can offer to others both just behind you and far ahead of you---things that an experienced developer literally *cannot* offer, no matter how thoughtful. One is your *questions*. Ask them! File issues on projects you're using. If there is documentation and you can't make head or tails of it, open an issue. Be polite about it, of course, but be detailed and thorough: note what you don't understand with specific reference to the docs you're reading. Sometimes, people will just point you to materials which lay the foundation for what you're reading, and that's a win---but even there, it may suggest to them the kinds of things they might link from their own docs in a "you-need-to-know-these-things-first" way. One example of that which I really love: enough questions combined with a really thoughtful documentation team has led to the Ember.js documentation having two really helpful resources: a list of exactly those kinds of assumed foundational items, and a readily-accessible glossary of terms you might not know if you're a new developer, with links to further explanation of all of them. Those are the kinds of things it's *very* difficult for an experienced developer to identify in the specific. I might know *that* a fresh developer needs that knowledge, but I now suffer from the "curse of knowledge" and I don't remember the specifics of which pieces are confusing and how their combinations may also be confusing. So again: ask questions and open issues about confusing things!

The other thing total newbies can do, which helps enormously in tackling the same "curse of knowledge" problem, is explain things to others who are just a bit behind you. If you started learning Rust a week ago and have finished your first pass through the book, you know more than someone who just discovered the language---and your new eyes can make it easier to understand exactly what they're struggling with. You can help actively with that in several ways: by writing blog posts or giving introductory talks, or just by hanging out and answering questions in places like users.rust-lang.org and Reddit, or on the IRC, Discord, Slack, Matrix, etc. Those kinds of "I just learned this thing!" blog posts can be illuminating for others just trying to dip their toes in the water---and when you get something wrong (as I did in the last episode! More on that in the future), it's a chance for *you* to learn and also a chance for the folks further down the road to improve the ways the material is taught.

### Intermediate

Now, as an intermediate developer---and this is roughly where I find myself in many ways---it's sometimes murky what the best things to do are. You know enough that most day-to-day work is straightforward enough, but often not enough to tackle something like rewriting a significant library. But this is actually a great time to start investing actively in others. You *do* know enough to be productive, and that means that even if you're not an expert in a given subject, you know enough to help others get up and running. You're well-equipped to know what the common pain points in your tech stack are, and how you work around them: you have an immediate answer when someone says, "Wait, why is _foo_ not working?" because you've grown those calluses and know to simply insert a _bar_ there and move on.

It's also a great spot for doing more talks and blogging to stretch your *own* knowledge. I wrote a post about a couple new features in TypeScript a few months ago, because I knew enough TypeScript and enough JavaScript that I knew I *could* figure it out. That post in turn has been illuminating to others, not least since it was one of the earlier and more thorough posts on the subject. There was nothing especially profound about what I did there; I just wrote down what I was figuring out and put it online for others to find. Now it's useful not just to me but to others.

Finally, it's also a great time to be helping *write* documentation. If you spend time in the communities where people ask questions---again, the forums or chat channels---you'll see questions that come up over and over again. Find a good spot to add those to docs, or to wikis, or write a blog post explaining it both so you have an easy thing to link people to and also to help people find it by searching: not least because there are a lot of people who use any given tool but never actually make it into a forum or a chat room to ask for help.

### Expert

What about the grand gurus, who know a piece of tech inside and out---the Rust core team, or people like BurntSushi, who has developed the fantastic ripgrep tool, or any number of others I could name? Well, one is writing as careful and thorough documentation as you can manage. This isn't glamorous work, and it can feel like it's taking away from your productivity. But the reality is that true *experts* in a domain can offer something besides merely their ability to accomplish the technical tasks in the domain. They can also, if they're willing to work hard at it, *develop expertise in others*.

In fact, I'd go so far as to argue that the 10x-developer, usually considered mythical, *does* exist. Just not the way most people think when they talk about it. A developer who is brilliant and speedy, but who fails to pass on the knowledge he or she has gathered can accomplish an enormous amount. A developer who takes and shares her or his knowledge with others---who mentors others through their own process of developing expertise, who writes documentation so good that people new to a project can come up to speed quickly and then can accomplish something on their own---that developer can be a 10x developer *easily*. Empowering others can extend your own reach in surprising ways. It's also incredibly rewarding to watch other people go from "How does this work?" to mentoring others themselves.

I've never been formally mentored in the software world, but even the informal mentoring I've had from friends and acquaintances has increased my own capabilities dramatically.

That takes me to my last point for experts: step out of the way as people "level up." That's a huge part of *any* mentoring process, and it's tough for everyone, I think. But if you want people you're helping to truly succeed, you have to give them more and more responsibility with less and less support, and eventually also less and less feedback---trusting them to grow into that responsibility. Doing that can empower people *enormously*.

## Closing

So there are a few thoughts on ways you can give back. There are *lots* more, of course; I've focused mostly on "teaching"---not least because that's where I'm strongest! But I'd love---*love*---to hear your ideas on other things we can do to use our abilities and time and position to help others.

## Sponsors

Thanks to

- Chris Palmer
- Christopher Giffard
- Dan Abrams
- Daniel Collin
- Matt Rudder
- Ben Whitley
- Peter Tillemans
- Philipp Keller
- Steven Murawski
- Raph Levien
- and Vesa Khailavirta

for sponsoring the show this month! You can see a full list of sponsors in the show notes.

If you're interested in sponsoring the show, you can set up recurring contributions at Patreon.com/newrustacean, or give a one-off contribution at any of a number of other services listed on the show website, or if you're a company interested in advertising to developers, please email me!

### Info

You can find show notes with links, code samples, and more at NewRustacean.com. You can follow the show on Twitter @newrustacean, or follow me there @chriskrycho. If you enjoy the show, please tell somebody about it! You can also help others discover the show by rating and reviewing it on iTunes, recommending it in other podcast directories, or sharing it around on whatever social media you use.

And again: I'd love to hear your feedback on this topic *especially*.

Until next time, happy coding... and giving back!
92 changes: 90 additions & 2 deletions resources/feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<copyright>2015 Chris Krycho</copyright>
<managingEditor>[email protected] (Chris Krycho)</managingEditor>
<webMaster>[email protected] (Chris Krycho)</webMaster>
<pubDate>Tue, 28 Feb 2017 17:21:36 -0500</pubDate>
<lastBuildDate>Tue, 28 Feb 2017 17:21:37 -0500</lastBuildDate>
<pubDate>Sun, 19 Mar 2017 11:04:12 -0400</pubDate>
<lastBuildDate>Sun, 19 Mar 2017 11:04:13 -0400</lastBuildDate>
<image>
<url>http://newrustacean.com/podcast.png</url>
<title>New Rustacean</title>
Expand Down Expand Up @@ -39,6 +39,94 @@
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<item>
<title>Bonus 8: Giving back (by teaching)</title>
<link>http://newrustacean.com/show_notes/bonus/_8/</link>
<description><![CDATA[<p>On the responsibilities and opportunities we have to help others with our knowledge and abilities.</p>
<h2 id="notes">Notes</h2>
<p>Many of us have been very blessed with opportunities and support as we learn software. We should go out of our way to share with others in kind. Today, my focus is on teaching, but there are lots of ways to &quot;give back.&quot; And I'd love to hear <em>your</em> thoughts and things <em>you're</em> doing in that vein!</p>
<h2 id="links">Links</h2>
<ul>
<li><a href="http://jvns.ca">Julia Evans</a></li>
<li><a href="http://www.chriskrycho.com/2016/keyof-and-mapped-types-in-typescript-21.html"><code>keyof</code> and Mapped Types in TypeScript 2.1</a> -- the blog post I mentioned writing a few months ago.</li>
</ul>
<h2 id="sponsors">Sponsors</h2>
<ul>
<li>Aleksey Pirogov</li>
<li>Andreas Fischer</li>
<li>Andrew Thompson</li>
<li>Austin LeSure</li>
<li>Ben Whitley</li>
<li><a href="https://charlieegan3.com">Charlie Egan</a></li>
<li>Chris Jones</li>
<li><a href="http://home.red-oxide.org/">Chris Palmer</a></li>
<li><a href="http://blog.cgiffard.com">Christopher Giffard</a></li>
<li>Dan Abrams</li>
<li><a href="https://twitter.com/daniel_collin">Daniel Collin</a></li>
<li><a href="https://twitter.com/derekmorr">Derek Morr</a></li>
<li>Eugene Bulkin</li>
<li><a href="https://github.com/Limeth">Jakub &quot;Limeth&quot; Hlusička</a></li>
<li>Jordan Henderson</li>
<li><a href="https://de.linkedin.com/in/juppm">Jupp Müller</a></li>
<li>Justin Ossevoort</li>
<li>Karl Hobley</li>
<li>Keith Gray</li>
<li>Lachlan Collins</li>
<li>Luca Schmid</li>
<li>Matt Rudder</li>
<li>Matthew Piziak</li>
<li><a href="https://twitter.com/maxjacobson">Max Jacobson</a></li>
<li>Micael Bergeron</li>
<li>Ovidiu Curcan</li>
<li><a href="https://pascalhertleif.de/">Pascal Hertleif</a></li>
<li>Patrick O'Doherty</li>
<li>Peter Tillemans</li>
<li>Philipp Keller</li>
<li>Ralph Giles (&quot;rillian&quot;)</li>
<li>Raph Levien</li>
<li>reddraggone9</li>
<li>Steven Murawksi</li>
<li>Stuart Hinson</li>
<li>Tyler Harper</li>
<li>Vesa Kaihlavirta</li>
<li>Vlad Bezden</li>
<li>Warren Harper</li>
<li><a href="http://willroe.me">William Roe</a></li>
<li>Zaki</li>
</ul>
<p>(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)</p>
<h3 id="become-a-sponsor">Become a sponsor</h3>
<ul>
<li><a href="https://www.patreon.com/newrustacean">Patreon</a></li>
<li><a href="https://venmo.com/chriskrycho">Venmo</a></li>
<li><a href="https://www.dwolla.com/hub/chriskrycho">Dwolla</a></li>
<li><a href="https://cash.me/$chriskrycho">Cash.me</a></li>
<li><a href="https://flattr.com/profile/chriskrycho">Flattr</a></li>
<li><a href="https://paypal.me/chriskrycho">PayPal.me</a></li>
</ul>
<h2 id="contact">Contact</h2>
<ul>
<li>New Rustacean:
<ul>
<li>Twitter: <a href="https://www.twitter.com/newrustacean">@newrustacean</a></li>
<li>Email: <a href="mailto:[email protected]">[email protected]</a></li>
</ul></li>
<li>Chris Krycho
<ul>
<li>GitHub: <a href="https://github.com/chriskrycho">chriskrycho</a></li>
<li>Twitter: <a href="https://www.twitter.com/chriskrycho">@chriskrycho</a></li>
</ul></li>
</ul>
]]></description>
<pubDate>Sun, 19 Mar 2017 11:00:00 -0400</pubDate>
<enclosure url="http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_8.mp3" length="12987872" type="audio/mpeg"/>
<guid isPermaLink="false">5DED2D2B-E06E-44E6-BECC-2A401B40E78A</guid>
<itunes:author>Chris Krycho</itunes:author>
<itunes:summary><![CDATA[On the responsibilities and opportunities we have to help others with our knowledge and abilities.
Many of us have been very blessed with opportunities and support as we learn software. We should go out of our way to share with others in kind. Today, my focus is on teaching, but there are lots of ways to "give back." And I'd love to hear *your* thoughts and things *you're* doing in that vein!]]></itunes:summary>
<itunes:duration>13:30</itunes:duration>
</item>
<item>
<title>e019: Let's `Clone` a `Cow`</title>
<link>http://newrustacean.com/show_notes/e019/</link>
Expand Down
Loading

0 comments on commit 8430d37

Please sign in to comment.