Press "Enter" to skip to content

Top 8 developer habits: Teaching – Fun Fun Function


good Monday morning today we are talking

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

Please follow and like us: