Top 8 developer habits: Teaching - Fun Fun Function

Fun Fun Function · Beginner ·🛠️ AI Tools & Apps ·9y ago
Skills: PM Basics50%

Key Takeaways

Teaches top 8 developer habits for effective teaching and learning

Full Transcript

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 fun fun function this video is part of a series where we talk about the top eight 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 all right first point teaching is the best way of learning one of my absolute favorite quotes is this right is Nature's Way of exposing how sloppy your thinking is oh it's so good it's so good it's so good let me say that again uh 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 gwion which is an American cartoonist and uh the I was first clued on to this quote uh by AG dubs who is an amazing speaker you should check out her talks if you haven't yet she had kind of tweeted a little and said that teaching is Nature's Way of exposing how sloppy your thinking is in order to make another person understands something that is 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 the stuff that is in your head the thoughts into words words and language that's our adapter to transferring thoughts between people and we all have these unfinished thoughts in our heads when you think oh yeah this is this is a good idea I should really do this and I now oh 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 H I think I get monads now I think I get what polymorphism is you have a thought and you have an idea that M I have this now I 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 fails is because the thoughts that we had was not quite thought through putting a thought on paper requires you to 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 thought just will expose flaws in those thoughts and that is why it is teaching is so good for Learning and you will detect this as you first start to formulate things into words you will just find holes you 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 nod and yes yes yes and you'll feel good because oh you explained this complicated concept and and but if you actually ask them H and as try to oh can you try to explain this back to me or or explain it back to to John here then you will see that 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 uh and uh uh posting posting YouTube videos for instance or posting blog posts gives you the amazing amazing teaching tool of critique for example you're struggling with understanding some concept you um you're trying to nail down time complexity or polymorphism or uh monads or fun or generators uh you know whatever something that is hard for you to understand if you spend the time to write a blog post about it explaining it to someone else you start to find the holes uh 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 I finally understand this now but then somebody comes along and says that is more experienced than you and says like this thing here I it's kind of right but 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 push back from more experienced people uh 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's it me it deserves repeating because it kind of permeates a lot of these habits that we are 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 pits aren't technically herd animals but anyway helping other people feels great and that will make you do the activity more and that will 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 like did my colleague get it or did my audience and readers uh point out mistakes and finally also because you're a human teaching just makes you happier okay next Point uh teaching strengthens the team if you've been following this channel for a while you know that I I'm 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 often a term that is like a 10x programmer it it's a person that knows like a lot of programming they uh they are a lot smarter than everyone else they can solve problems much faster you can replace 10 people with this programmer rockar programmer is another thing that the the recruiters that are don't know what they are doing uses but like the the point is like I'm not saying that these people don't exist because they do I've I've met them I worked with them and they are so much better than me they are incredible and I don't fault them for that they're great but I think that they are one in a thousand at 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 you can learn to juggle five balls and I think that a really good juggler can pull off like 10 balls but no juggler can hold 100 Balls uh 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 programmers that teaches other programmers to fish so to speak because if you have program programmers in your team that goes okay I've learned this new thing and they teach it to other programmers making them better and and improving their levels and they are also of the attitude that oh I should teach my colleagues about this and help them and they will raise uh the other colleagues back then you have this Perpetual machine of learning that will improve and grow your team so you can't just hire these genius programmers that uh just sit in a corner 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 is 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 it it's very comfortable to think that oh I don't know much about this subject I'll better just listen to the teachers and um and I 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 part of 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 so it's good to exercise a little bit of a strength there but 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 one lesson two lesson three and then in order to understand more programming you need to understand Lesson Four and in order to understand lesson 4 you will have to understand lesson three it doesn't really work like that it's more like this uh this tree perhaps you learn programming a little bit of programming and then like it starts to Fork out into these different things into databases into AI into uh into frontend development into game development so all of these programmers they they probably know the same stuff here but the game programmer can probably be taught a lot uh from the web developer and vice versa about stuff that 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 every 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 find a programmer Forum Forum forums is also a very good place to start teaching because there will be more senior people around that that can just point point out mistakes in your teaching in case you're teaching somebody uh the wrong thing they can give you critique remember like we talked about critique before it's great at work you can give feedback uh people most people want feedback but they um 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 really know if we're do doing good of or if we're making mistakes it's providing your colleagues with feedback is a great way for them to improve and they are stared for it as long as you have a safe space where you can do it and the person you're sure that the person has 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 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's just uh it's 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 I'll I'll get to that when I have the time look at that as almost your most important task uh 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 uh want speakers and need speakers and uh you can become one just apply for uh what's it called call for proposals the nice part about it is that you just just do a pitch and then they say okay and then you have to prepare us talk and do it it's very good for motivation and discipline it's also great because it will give you a lot of context and people will come up to you afterwards and ask questions which which will allow you to gauge uh if people understood it and uh 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 a online videos I have actually made a behind the scenes episode of how I make these you can check that out here or in the episode description that's just a few uh you can 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 back teaching makes you happier teaching strengthens the team heroism 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 uh giving feedback at work code reviews speaking and doing videos that is it go out and enjoy your week you have just watched an EP episode of fun fun function I release these every Monday morning 0800 GMT if you don't want to wait until next Monday you can check out this episode here right now that Google have selected using their machine learning Voodoo for you I am mpj until next Monday morning stay curious

Original Description

💖 Support the show by becoming a Patreon https://www.patreon.com/funfunfunction # Stuff mentioned in the video: 🔗 Series Playlist - Top 8 developer habits: https://www.youtube.com/watch?v=DwQ7psiU23I&index=1&list=PL0zVEGEvSaeGY3RMjGo4CgMPN42_U9Glu 🔗 Behind the Scenes of Fun Fun Function https://www.youtube.com/watch?v=gTk8nPj11Yk 🔗 Tech Debt episode of Fun Fun Function https://www.youtube.com/watch?v=YBJFirHSS5Q&list=PL0zVEGEvSaeH21VDycWYNWU7VKUA-xLzg 🔗 Help translate the show to your language http://www.youtube.com/timedtext_cs_panel?tab=2&c=UCO1cgjhGzsSYb1rsB4bFe4Q 🔗 mpj on Twitter https://twitter.com/mpjme 🔗 ag_dubs on Twitter https://twitter.com/ag_dubs/status/557581734557282305 # Episode outline Teaching is the best way of learning Natures way of exposing how sloppy your thinking is Teaching gives feedback Did my colleague get it? Did my readers find mistakes? Helping makes you happier Teaching strengthens the team Heroism sucks 100x team Everyone should teach You’re senior to someone Be careful Programming knowledge is not linear Teaching opportunities Forums Giving feedback Code review Speaking This video is part of a series based on a tweet I made and the replies I got: ”What do you think are critical traits in a programmer? NOT to be super 10x or anything - just to feel good and function well professionally.” Full threads here: 🔗 https://twitter.com/mpjme/status/855691565460848640 🔗 https://mastodon.cloud/@mpj/2592100
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Fun Fun Function · Fun Fun Function · 0 of 60

← Previous Next →
1 Higher-order functions - Part 1 of Functional Programming in JavaScript
Higher-order functions - Part 1 of Functional Programming in JavaScript
Fun Fun Function
2 Map - Part 2 of Functional Programming in JavaScript
Map - Part 2 of Functional Programming in JavaScript
Fun Fun Function
3 Reduce basics - Part 3 of Functional Programming in JavaScript
Reduce basics - Part 3 of Functional Programming in JavaScript
Fun Fun Function
4 Destructuring: What, Why and How - Part 1 of ES6 JavaScript Features
Destructuring: What, Why and How - Part 1 of ES6 JavaScript Features
Fun Fun Function
5 Reduce Advanced - Part 4 of Functional Programming in JavaScript
Reduce Advanced - Part 4 of Functional Programming in JavaScript
Fun Fun Function
6 Closures - Part 5 of Functional Programming in JavaScript
Closures - Part 5 of Functional Programming in JavaScript
Fun Fun Function
7 Too many tools and frameworks!
Too many tools and frameworks!
Fun Fun Function
8 Currying - Part 6 of Functional Programming in JavaScript
Currying - Part 6 of Functional Programming in JavaScript
Fun Fun Function
9 Recursion - Part 7 of Functional Programming in JavaScript
Recursion - Part 7 of Functional Programming in JavaScript
Fun Fun Function
10 Promises - Part 8 of Functional Programming in JavaScript
Promises - Part 8 of Functional Programming in JavaScript
Fun Fun Function
11 Staying relevant as a programmer
Staying relevant as a programmer
Fun Fun Function
12 Factory Functions in JavaScript
Factory Functions in JavaScript
Fun Fun Function
13 Composition over Inheritance
Composition over Inheritance
Fun Fun Function
14 Software needs to be better - FunFunFunction #1
Software needs to be better - FunFunFunction #1
Fun Fun Function
15 Unit testing: How to get your team started - FunFunFunction #2
Unit testing: How to get your team started - FunFunFunction #2
Fun Fun Function
16 Straight-line code over functions - FunFunFunction #3
Straight-line code over functions - FunFunFunction #3
Fun Fun Function
17 Clojure - FunFunFunction #5
Clojure - FunFunFunction #5
Fun Fun Function
18 The growth stages of a programmer - FunFunFunction #6
The growth stages of a programmer - FunFunFunction #6
Fun Fun Function
19 5 tips to quickly understand a new code base - FunFunFunction #7
5 tips to quickly understand a new code base - FunFunFunction #7
Fun Fun Function
20 Semicolons cannot save you! - FunFunFunction #9
Semicolons cannot save you! - FunFunFunction #9
Fun Fun Function
21 Functors - FunFunFunction #10
Functors - FunFunFunction #10
Fun Fun Function
22 Functors: I was WRONG! - FunFunFunction #11
Functors: I was WRONG! - FunFunFunction #11
Fun Fun Function
23 Questions and Answers - FunFunFunction #12
Questions and Answers - FunFunFunction #12
Fun Fun Function
24 Streams - FunFunFunction #13
Streams - FunFunFunction #13
Fun Fun Function
25 Prototypes in JavaScript - FunFunFunction #16
Prototypes in JavaScript - FunFunFunction #16
Fun Fun Function
26 Fast or Flexible? - FunFunFunction #17
Fast or Flexible? - FunFunFunction #17
Fun Fun Function
27 Coders are herd animals - FunFunFunction #18
Coders are herd animals - FunFunFunction #18
Fun Fun Function
28 Weekend Kubernetes Shenanigans - FunFunFunction #19
Weekend Kubernetes Shenanigans - FunFunFunction #19
Fun Fun Function
29 Monad - FunFunFunction #21
Monad - FunFunFunction #21
Fun Fun Function
30 Moar Weekend Shenanigans - FunFunFunction #23
Moar Weekend Shenanigans - FunFunFunction #23
Fun Fun Function
31 Questions and Answers - FunFunFunction #24
Questions and Answers - FunFunFunction #24
Fun Fun Function
32 Losing motivation - FunFunFunction #25
Losing motivation - FunFunFunction #25
Fun Fun Function
33 LONGEST KUBERNETES SHENANIGANS! - FunFunFunction #26
LONGEST KUBERNETES SHENANIGANS! - FunFunFunction #26
Fun Fun Function
34 Fast code is NOT important - FunFunFunction #27
Fast code is NOT important - FunFunFunction #27
Fun Fun Function
35 Pair Programming a Facebook Messenger Bot - FunFunFunction #28
Pair Programming a Facebook Messenger Bot - FunFunFunction #28
Fun Fun Function
36 Writing unit tests for personal projects? - FunFunFunction #29
Writing unit tests for personal projects? - FunFunFunction #29
Fun Fun Function
37 Let's Code a Pomodoro Button - FunFunFunction #30
Let's Code a Pomodoro Button - FunFunFunction #30
Fun Fun Function
38 What editor do you use? - FunFunFunction #31
What editor do you use? - FunFunFunction #31
Fun Fun Function
39 Arrow functions in JavaScript - What, Why and How - FunFunFunction #32
Arrow functions in JavaScript - What, Why and How - FunFunFunction #32
Fun Fun Function
40 Is Programming Art? - MPJ's Musings - FunFunFunction #33
Is Programming Art? - MPJ's Musings - FunFunFunction #33
Fun Fun Function
41 Generators in JavaScript - What, Why and How - FunFunFunction #34
Generators in JavaScript - What, Why and How - FunFunFunction #34
Fun Fun Function
42 Haskell Basics - FunFunFunction #35
Haskell Basics - FunFunFunction #35
Fun Fun Function
43 Haskell - Baby's first functions - FunFunFunction #36
Haskell - Baby's first functions - FunFunFunction #36
Fun Fun Function
44 Is Big O relevant to you? - Q&A Part 1 - FunFunFunction #37
Is Big O relevant to you? - Q&A Part 1 - FunFunFunction #37
Fun Fun Function
45 How much are you allowed to Google? - Q&A Part 2 - FunFunFunction #38
How much are you allowed to Google? - Q&A Part 2 - FunFunFunction #38
Fun Fun Function
46 Haskell lists - FunFunFunction #39
Haskell lists - FunFunFunction #39
Fun Fun Function
47 var, let and const - What, why and how - ES6 JavaScript Features
var, let and const - What, why and how - ES6 JavaScript Features
Fun Fun Function
48 Why are some programming languages popular? - MPJ's Musings  - FunFunFunction #41
Why are some programming languages popular? - MPJ's Musings - FunFunFunction #41
Fun Fun Function
49 Does a developer need to be nice? - MPJ's Musings - FunFunFunction #42
Does a developer need to be nice? - MPJ's Musings - FunFunFunction #42
Fun Fun Function
50 bind and this - Object Creation in JavaScript P1 - FunFunFunction #43
bind and this - Object Creation in JavaScript P1 - FunFunFunction #43
Fun Fun Function
51 Examples of this and bind - Object Creation in JavaScript P2 -  FunFunFunction #44
Examples of this and bind - Object Creation in JavaScript P2 - FunFunFunction #44
Fun Fun Function
52 Prototype basics - Object Creation in JavaScript P3 - FunFunFunction #46
Prototype basics - Object Creation in JavaScript P3 - FunFunFunction #46
Fun Fun Function
53 Separation of concerns RANT - MPJ's Musings - FunFunFunction #47
Separation of concerns RANT - MPJ's Musings - FunFunFunction #47
Fun Fun Function
54 Cellular Automata - Pair Programming - FunFunFunction #49
Cellular Automata - Pair Programming - FunFunFunction #49
Fun Fun Function
55 The 'new' keyword - Object Creation in JavaScript P4 - FunFunFunction #50
The 'new' keyword - Object Creation in JavaScript P4 - FunFunFunction #50
Fun Fun Function
56 __proto__ vs prototype - Object Creation in JavaScript P5 - FunFunFunction #52
__proto__ vs prototype - Object Creation in JavaScript P5 - FunFunFunction #52
Fun Fun Function
57 Unity game pair programming - Let's code - FunFunFunction #53
Unity game pair programming - Let's code - FunFunFunction #53
Fun Fun Function
58 Throw out your tools - MPJ's Musings - FunFunFunction #54
Throw out your tools - MPJ's Musings - FunFunFunction #54
Fun Fun Function
59 Unit tests vs. Integration tests - MPJ's Musings - FunFunFunction #55
Unit tests vs. Integration tests - MPJ's Musings - FunFunFunction #55
Fun Fun Function
60 Object.create - Object Creation in JavaScript P6 - FunFunFunction #57
Object.create - Object Creation in JavaScript P6 - FunFunFunction #57
Fun Fun Function

Related AI Lessons

Up next
I Asked ChatGPT to Apply to 500 Jobs (8 Interviews in 48 Hours)
Sabrina Ramonov 🍄
Watch →