
about the importance of teaching as a
developer today I’m going to try to make
the case that teaching is the best way
of learning I’m also going to talk about
how teaching strengthens your team I’m
going to make the case that everyone
should teach and finally I’m going to
give you some ideas for teaching
opportunities in your life as a
developer that is what we are going to
talk about today I am mpj and you are
watching plaintiff on function this
video is part of a series where we talk
about the top a developer habits as
chosen by you if you want to check out
the full series playlist you can do so
here or in the episode description
alright first point teaching is the best
way of learning one of my absolute
favorite quote is this writing is
nature’s way of exposing how sloppy your
thinking is oh so good it’s so good so
good let me say that again partly
because quoting people makes me feel
smart and also because it is really good
writing is Nature’s Way of exposing how
sloppy your thinking is this quote is by
windin which is an American cartoonist
and the I was first clued on to this
quote by a g-dubs he is an amazing
speaker you should check out her talks
if you have a jet she had kind of
twisted a little and said that teaching
is Nature’s Way of exposing how sloppy
your thinking is in order to make
another person understand something that
if that is in your head you need to
transfer a concept that is stuck in your
head into another person’s head in order
to do this we use language so you need
to transfer in stuff that is in your
head and thoughts into words words the
language that’s our adapter to
transferring thoughts between people and
we all have these unfinished thoughts in
our
hats whooshing oh yeah this is this is a
good idea I should really do this and I
like all I think this business idea
that’s a really good thing I think this
would be a great library I think this
business idea would be a great thing I
think that this refactoring would be
really good for a system or you might
think I get loan ads now I think I get
what polymorphism is you have a thought
and you have an idea that n I have this
now I get it
a great way to test if you actually get
it is to try to explain it to another
person doing so will often fail
miserably and the reason it failed is
because the thoughts that we had was not
quite thought through putting a thought
on paper requires you to do meticulous
thinking your thinking needs to be very
clear in order for it to work on paper
to turn it into words there can be no
room for vagueness communicating your
thoughts below
just will expose flaws in those thoughts
and that is why it is teaching is so
good for learning you will detect this
as you first start to formulate things
into words you will just find holes in
your thinking but there’s even more
because when you actually give this to
someone else you can actually check if
they did understand you because people
people might northern nurse yes yes and
you feel good because all you explain
this complicated concept and but if you
actually ask them and as try to help can
you try to explain this back to me or or
explains that to to John here then you
will see that the person probably didn’t
get what you were talking about because
you were not clear enough and the reason
you weren’t clear enough because your
understanding was not clear enough
because in order to craft a clear and
understandable narrative you you will
need to have very clear thinking about
the subject and some types of teaching
like posting in forums and posting
posting YouTube videos for instance of
blogposts gives you the amazing amazing
teaching tool of critique fortunately
you’re struggling with understandings on
concept you trying to nail down time
complexity or polymorphism or monads or
punctures or a generators yet you know
whatever is something that is hard for
you to understand if you spend time to
write a blog post about it
explaining it to someone else you start
to find the holes and you kind of get
like oh I think I get it now I think I
have this and you post it and a lot of
people go yeah oh yes I finally
understand this now but then somebody
comes along and says oh there’s more
experience than you and safer on this
thing here it’s cool kind of right but
do you you need to think about this
thing as well so you find that as you
push your knowledge out in the world it
will get get like this pushback from
more experienced people until it is
correct and full teaching is also the
best way of learning because it is
fundamentally helping other people and
helping feels great I talked about that
in the previous episode of the series
getting done but it deserves
repeating because it kind of permeates a
lot of these habits that we are we are
pack animals and we feel really good
about helping other people in the pack
would you say herd animals is it pack
animals or herd animals maybe primates
aren’t technically herd animals but
anyway helping other people feels great
and that will make you do the activity
more and that make you learn more
teaching is the best way of learning
because it is nature’s way of exposing
how sloppy your thinking is and teaching
also gives you feedback what did my
colleague get it or did my audience and
readers point out mistake and finally
also because you’re a human teaching
just makes you happier okay next point
teaching strengthens the team if you’ve
been following this channel for a while
you know that I am big on fighting
individualism I really really really
dislike the concept of this hero
programmer I think we’re trending away
from it I’m pretty sure but there still
is this quite sticky myth of the super
duper programmer it’s also a term that
is like a 10x programmer it it’s a
person that knows a lot of programming
they they are lot smarter than everyone
else I can solve problems much faster
you can replace ten people with this
programmer rock star programmer is
another thing that be the recruiters
that are I don’t know what they are
doing is but it’s like the point is like
I’m not saying that these people don’t
exist because they do I’ve met them I
work with them and they are so much
better than me they are incredible and I
don’t fault them for that they’re right
but I think that they are one in a
thousand and best and we can’t we can’t
build an industry on that and also when
it comes down to it we are all humans we
can like a person can a person can
juggle like a a person can’t juggle
three balls and then you can learn to
juggle five balls and I think that’s a
really good juggler can pull off like
ten balls but no juggler can hold 100
balls in the air at the same time there
are limits to what one person can do a
single programmer can only create a
piece of software that is so complex in
the end like eventually you will need a
team you will need to figure out how to
make software in a team that is how you
make great software that’s why it’s so
important that you get program
that teaches other programmers to fish
so to speak because if you have
programmers in your team that goes okay
I’ve learned this new thing and they
teach it to other programmers making
them better and improving their levels
and they are also the attitude that oh I
should teach my colleagues about this
and help them and they will raise the
other colleagues back then you have this
perpetual machine of learning that will
improve and grow your team so you can
see us hire these genius programmers
that just sit in a corner and and code
and produce and in the end you need
people that interact and grow your team
and focus on the people around them and
making sure that they improve rather
than their own output that’s important
as well but the team must grow so
instead of talking about these 10x
programmers I think that we should be
talking about 100x teams and I think a
component of that is definitely that the
team constantly teaches each other how
to be better all right um third point
everyone should teach when you’re
starting out in a subject is it’s very
comfortable to think that all I don’t
know much about this subject I’ll better
just listen to the teachers and and I
can teach anyone and that’s probably
correct for like the first five minutes
once you have learned something that
means that you are senior to someone
that has not yet learned that thing if
you see that someone else is struggling
with a concept that you have figured out
even if it’s just this tiny pocket of
what you’re trying to learn then you
then you can still be a teacher in that
domain you should be a bit careful about
that of course because you might have
the wrong idea about something and then
you might be teaching them the wrong
idea as well let’s go to exercise a
little bit of restraint there but we’re
not too much try
to get into teaching as soon as possible
another reason why everyone can teach is
that programming knowledge is not linear
it’s not like programming is a subject
where you learn lesson 1 lesson 2 lesson
3 and then in order to understand more
programming you need to understand
lesson 4
and in order to understand lesson 4 you
will have to understand lesson 3 it
doesn’t really work like that it’s more
like this this tree perhaps you learn
programming a little bit of programming
and then like it starts to work out into
these different things into databases
into AI into into front-end development
into game development so all of these
programmers they probably know the same
stuff here but the game programmer can
probably be taught a lot from the web
developer and vice versa about stuff
they don’t know even though they might
be on the same level or this person
might be here or this person might be
here but they are still like on
completely different branches of the
tree so they can still teach each other
a lot even though like their seniority
levels in their respective branches
differ
everyone should teach because you are
senior to someone and programming
knowledge is not linear finally to get
you started I would like to just
brainstorm and blurt out some teaching
opportunities I started out on forums
forums are amazing like Stack Overflow
or like fine a programmer for
room-to-room forums is also a very good
place to start teaching because there
will be more senior people around that
can just point point out mistakes you
know teaching in case you’re teaching
somebody and the wrong thing they can
give you critique remember that we
talked about critique before it’s great
at work you can give feedback people
most people want feedback but they it’s
people don’t want to give feedback it’s
as as people as programmers we are often
starved for feedback we don’t we know if
we’re doing good or if we’re making
mistakes it’s providing your colleagues
with feedback is a great way for them to
improve and they are starved for it as
long as you have a safe space where you
can do it and the person you’re sure
that the person is actually actually
wants to have feedback this is something
that you have to build up and build up
in your team but if you have that that
is a great way of teaching teaching
other people a very narrow type of
feedback at work is code review I’m a
big proponent of code review it just is
so amazing if you can get mandatory code
review into your team and your culture
because you can build so much on top of
that if you have code review in place
make sure that you use this as much as
possible as a way to teach your
colleagues about things don’t look upon
code review as a chore or something that
you all I’ll get to that when I have the
time look at that as almost your most
important task of the week because that
is that is how you build long term
knowledge in your team another teaching
opportunity is speaking like we have all
these good tech conferences that want
speakers and need speakers and you can
become one just apply for what’s a call
call for proposals the nice part about
it is that you just do a pitch and then
they say okay and then you have to
prepare a talk and do it it’s very good
for motivation and discipline it’s also
great because it will give you a lot of
contacts and people come up to you
afterwards and ask questions with which
will allow you to gauge if people
understood it and and if it’s put online
you can read the comments for faults
that people point out in your reasoning
it’s just a very good way of improving
you might also do online videos I have
actually made a behind
since episode of how I make these you
can check that out here or in the
episode description that’s just a few
you could probably think of more just
try to put yourself in the frame of mind
that I have I have thoughts in my head
that could possibly be useful to other
programmers how do I get them out and
into their heads
so in summary teaching is the best way
of learning it’s nature’s way of
exposing how sloppy our thinking is
teaching gives feedback teaching makes
you happier teaching strengthens the
team Hera’s and sucks don’t do the 10x
programmer thing try to build a 100x
team instead everyone should teach
because you are senior to someone and
also programming knowledge is not linear
we talked about some teaching
opportunities forums giving feedback at
work code reviews speaking and doing
videos that is it go out and enjoy your
week you have just watched an episode of
bond bond function I release these every
Monday morning Oh 800 GMT if you don’t
want to wait until next Monday you can
check out this episode here right now
that Google’s have selected using their
machine learning voodoo for you I am mpj until next Monday morning stay tuned