Summarized using AI

Teach Your Way To Better Code

Felix Clack • February 19, 2014 • Earth • Talk

In the RubyConf AU 2014 talk titled "Teach Your Way To Better Code," Felix Clack explores the notion that teaching, particularly in the realm of coding, can serve as an effective method for both personal and communal growth among developers. He encourages programmers to teach others everything they know, arguing that this act not only benefits the learners but also deepens the teacher's own understanding of the material.

Key Points Discussed:

- The Inspiration to Teach: Clack recounts how a book by Lewis Hyde on gift economies inspired him to view teaching as a transformative gift, emphasizing the creativity and craft involved in coding. He draws parallels between coding and art, describing coding as a form of creation that can evoke emotional responses akin to artistic endeavors.

- Teaching as a Learning Tool: The necessity of teaching to reinforce knowledge is underscored. Clack advocates for using teaching as a tool to force oneself to learn and understand concepts deeply.

- Understanding Beginners' Perspectives: Clack emphasizes the importance of approaching learning from a beginner's viewpoint, as this helps uncover assumptions held by more experienced developers.

- Articulating Knowledge: The need to articulate thoughts clearly when teaching is discussed, as it helps structure understanding and improve coding practices.

- Psychology of Learning: The talk highlights various psychological aspects of teaching and learning, including the importance of motivation, self-efficacy, and the spaced repetition of knowledge over intensive cramming.

- Practical Teaching Methods: Clack suggests several methods for teaching, including pair programming, giving talks, writing about coding experiences, and engaging in community activities such as contributing to open source.

- Constructing Effective Messages: The delivery of teaching content should align with the audience’s understanding, focusing on how the content addresses their challenges and aspirations.

Anecdotes and Examples: Clack includes personal anecdotes about his journey with Ruby and Rails, discussing the complexities beginners face when starting with these technologies. He encourages developers to be intentional about sharing their knowledge with others, reflecting on their own experiences and mistakes.

Conclusions and Takeaways: The talk concludes with Clack reinforcing the idea that everyone has unique insights to share, and that teaching can be both beneficial and rewarding. By fostering a culture of learning through teaching, developers can keep their excitement for coding alive and continuously grow in their profession.

Teach Your Way To Better Code
Felix Clack • February 19, 2014 • Earth • Talk

RubyConf AU 2014: http://www.rubyconf.org.au

You may have this vague sense that you don't know Ruby as well as you think you do. And you worry that you're not learning and growing as a developer in your day job as much as you did when you first picked up Ruby. Perhaps you've lost that spark of excitement you experienced when you discovered new ways to solve problems with Ruby.
There is a way to re-invigorate your code and coding practices. Teach everything you know.
This talk will focus on some of the principals of teaching and why it can be an effective tool, not only for others to learn, but for you as the teacher to really deepen your knowledge of the subject. It will be specifically centred around using Ruby, and some of the ways I have discovered work well for teaching it as a first programming language.

RubyConf AU 2014

00:00:07.520 yeah thanks Josh um I'm Felix um Felix clar on the internet
00:00:14.160 um uh yeah I'm coming here from London to talk to you about teaching um and uh
00:00:22.439 I'd like to do a slight detour if you don't mind um and tell you about um
00:00:28.000 something that kind of inspired me to to teach more um and on the 5th of May
00:00:34.280 2009 I was walking through an airport um you know you stop by a Bookshop on your way to Holiday you're looking for
00:00:40.039 something good to read um and I'm just perusing the bookshelves I came across
00:00:45.520 this book called The Gift it's by a guy called Lewis Hyde I guess it's it's
00:00:50.800 relatively old sort of 20 30 years old um and essentially it's an
00:00:56.239 anthropological study of gift economies now this kind of sounds really off topic
00:01:02.840 at the minute and you know probably sounds like you know a really boring
00:01:08.759 holiday read right but it's actually it was a good book and um there was one one
00:01:15.240 thing kind of stuck out to me um and that's what I want to talk about today um you see I believe in the creative
00:01:21.280 power of what we do as developers you know as Cameron mentioned this morning
00:01:26.920 we do more than just bash out some functional piece of work right we're not just we're not just you know fact you
00:01:35.000 know what we make stuff even if it's not quite real um but we we're still making
00:01:40.880 stuff creating things out of nothing um and you know I believe that uh
00:01:48.320 there's there's a craft to what we do you know it's not just I said it's not just a you that kind of I do X and do y
00:01:56.880 and Zed but I think really we can we we take this thing what we do as as an
00:02:01.920 important craft I sometimes wonder though
00:02:07.440 um do where does craft become art you know there's there's a point right think
00:02:12.640 of a painter I've got a friend he's he's a decorator he also um paints art and it's
00:02:20.160 interesting that he does the same the same motion right it's it's the same
00:02:25.879 materials but what's different from when he paints a room to when he paints on
00:02:31.160 canvas and and creates this piece of artwork is the response it's not the actual paint or anything like that that
00:02:37.319 makes art right so you know I think maybe I'm I'm
00:02:43.519 getting a bit um self-indulgent with this but I believe kind of almost code can straddle that line between craft and
00:02:50.400 art I say this because in the book um it talks about um a transformational
00:02:58.319 gift and it and it uses as an example I'm going to read if you don't mind I'm going to read um something to
00:03:04.840 you and um everywhere I say artist I'd like you to replace that with developer in your head and everywhere I read art
00:03:12.440 I'd like you to replace that with code um and so here goes it says most artists
00:03:18.360 are brought to their vocation when their own gifts are awakened by the work of a master converted to art by Art
00:03:26.440 itself the future artist is moved by a work of art and through that experience comes to labor in the service of art
00:03:32.760 until he can profess his own gifts those of us who do not become artists approach it in the similar manner hoping to
00:03:39.239 revive the soul and any artist whose work touches us earns our gratitude between the time a gift comes to us and
00:03:45.760 the time we pass it along we suffer gratitude with gifts that are agents of change it is only when the gift is
00:03:51.799 worked in us that we can give it away again giving the gift is the end of the labor and the act of gratitude
00:03:58.680 transformation is not complete until we give once we have done this we may feel a lingering and generalized gratitude
00:04:05.360 but we won't feel the urgency of true indebtedness so it's a little grandiose
00:04:11.439 in its language um and uh I don't know I I feel like I've experienced these three
00:04:19.359 stages um and you know the concept of I love
00:04:24.520 that that line you know converted to art by Art itself for me that that was kind of my experience converted to code by
00:04:30.919 code itself you know you saw that piece of code you know I was 7 years old and
00:04:37.120 um we had Spectrum anyone have a spectrum yeah few um it was amazing
00:04:45.759 right like I remember my dad showing me this thing called basic and you could you know I think my first program was
00:04:52.919 something like you know type 10 um go to line 20 do whatever print some screen
00:04:59.479 right right um but it was it's pretty impressive um and so you go from that
00:05:07.759 the point where you're inspired by by art by code then you you really um go through
00:05:14.880 this whole Pro process of learning it you know I want to learn more you grab
00:05:19.960 it wherever you can um and eventually you get to the point where you kind of feel like you've mastered something um
00:05:26.680 and it's a great feeling and yeah this book kind of encouraged me to think about you know
00:05:32.560 how you then pass it on right and like I said the the concept of this transformational gift is is um pretty
00:05:41.479 cool so um but why bother teaching right it seems like a bit of hassle um this
00:05:50.199 you know all saying you know people that can do and people can't teach right so
00:05:55.400 it has this kind of stigma related to it but I don't think that's really that helpful and I don't think it's actually
00:06:01.160 true of real life anyway um so in all likelihood you're you're
00:06:08.199 teaching every day whether you kind of realize it or not um so I mean if you've been working for
00:06:16.360 a while with Ruby um then you've probably experienced the kind of have
00:06:22.639 you ever seen that um curve that people throw out for technology you know like the you get the curve it it goes up and
00:06:29.280 then and then goes up plateaus um kind of feels a bit like that in your career right you uh you
00:06:36.080 pick up Ruby and you're like wow this is amazing look at all the cool stuff I can do look how you know it just kind of
00:06:42.720 feels right and you really excited you do a lot of stuff um and then kind of go
00:06:48.919 to this Valley of disappointment when you realize all the things it can't do you think oh oh maybe you know
00:06:56.720 um you just get frustrated with it right like you look at all the cool languages that come through you go oh look at it
00:07:02.400 Li so look what it can do or closure or things like this um but maybe now you
00:07:08.240 you've gone through that and you headed to this plateau of productivity where you can just get stuff done
00:07:14.680 um but you might be at the point now though you've lost that excitement that initial excitement you had when you were
00:07:20.360 first discovering Ruby um when you were you know finding new things that you could
00:07:27.160 do with it and you feel like you can get stuck in a bit of a rut um because you
00:07:33.479 have to you know we we have deadlines right we're all building stuff for people um so you've got to get stuff
00:07:40.039 done you can't always afford to be learning a new way of doing something
00:07:45.240 all the time right so I believe that teaching is a a great way of getting out without roots
00:07:51.840 but more than just teaching but being intentional about our teaching um because like I said earlier I think
00:07:59.759 we are doing stuff every day you probably if you're working within a team environment you're you're probably
00:08:05.159 teaching you know just over coffee right you you're talking about oh yeah hey
00:08:11.360 guys I figured how to do this we could we could do it this way
00:08:17.039 um perhaps when you pair programming or even you know contributing to open source I always think everything kind of
00:08:24.240 feels like it's a form of teaching you know when you're commenting on someone's poll request um
00:08:33.519 so um if for nothing else I would encourage you to think about um teaching
00:08:41.080 everything you know for Pure selfish reasons because I believe it'll make you
00:08:46.399 a better developer um so there's a few ways and a few
00:08:52.360 reasons why I think it does make you better um and the first one is that it
00:08:57.760 forces you to learn right nothing motivates you more I mean maybe I'm generalizing but nothing motivates me
00:09:04.480 more than having to stand in front of someone and talk about it right like
00:09:10.399 right now it's pretty good motivation to um be conscientious and detail oriented
00:09:16.240 I mean in all likelihood that's your whole life right this is the career we've chosen we've chosen to work with
00:09:22.519 computers we're generally that's the kind of person it attracts right um so
00:09:30.680 by by saying you know I'm going to I'm going to teach this I need to feel like I need to know it inside out um it's
00:09:37.720 kind of not always true right you don't always need to know everything perfectly but it's it's good motivation um the
00:09:45.440 second thing um that I think is great is be thinking
00:09:50.720 like a a beginner is an important skill that the more you code the more you get
00:09:57.000 on in any um anything in life right the further away you get from that that introduction you head to the the skill
00:10:04.279 the language whatever the less you remember of how hard it was at
00:10:10.320 start um so uh I've been teaching um doing some
00:10:17.440 teaching for general assembly in London um and then one of the classes I've been running has been uh introduction to Rubi
00:10:24.720 on Rails now you know probably most of us use ruon rails
00:10:31.360 to a large degree in our day job um but have you like do you remember what it was like when you first
00:10:38.120 started have you ever tried to uh help someone get installed like first time
00:10:43.279 get get their Dev environment set up and you realize like how awful that is like
00:10:48.440 it's it's pretty hard like so for us is develop we stuff goes WR you oh yeah okay yeah do that and you
00:10:55.399 kind of it's all in there it's all in your head you kind of Forgotten at what point like nobody know how like that
00:11:01.000 wasn't always in your head you know but whereas for people coming to it fresh just like like what um how how do I do
00:11:08.360 this it just doesn't make sense and it's actually a really good thing to feel like that it's frustrating like I've
00:11:15.160 been doing some work enclosure recently and it's really frustrating being a beginner it's like oh you know I can do
00:11:23.000 a so easily in Ruby how do I do this um and it's I love the fact that it gives you
00:11:29.160 the fresh perspective it helps you kind of uncover your assumptions that you have about um language and the the best
00:11:37.720 way you know we never truly get back to that point where you feel the frustrations of a beginner but if you
00:11:43.240 talk with people who are earlier in that Journey it helps you kind of you know
00:11:49.040 uncover those parts that you you just assumed that everybody knew
00:11:54.560 um so the the last point and probably like that actual main point
00:12:01.440 um why teaching is going to make you better it's because it um forces you to
00:12:07.480 articulate your thoughts or you know things that may be even lower than your thoughts those subconscious things that
00:12:14.399 you can just do but being able to articulate them is a powerful thing um
00:12:19.600 again like explaining things to other people um is a really great tool so have
00:12:27.000 you ever explained to anybody um you know why instance variables in
00:12:32.279 our rails controllers are either a good or a bad thing like this is kind of one of those things that people just do like
00:12:39.680 they they take a position on either side of that and they'll just go yeah this is the right way but when you actually
00:12:45.399 articulate it kind of really get down to the reasons why you believe that and I think that's that's going to be good for
00:12:52.079 you to be able to um write better code because you suddenly have words behind the way you
00:12:58.800 do it so um I'd like to talk yeah a little bit
00:13:06.399 now about how we learn just dive a little bit into the psychology of learning um there's not going to be any
00:13:15.160 code slides in this by the way guys so hopefully that's okay with you um but you
00:13:22.279 know well let's just talk about this psychology thing so um
00:13:30.360 so I read a book by um guy called Tim Ferris you might might have heard of him
00:13:37.519 um he's got this recent book called The Four Hour Chef um and yeah it's it's pretty cool
00:13:44.079 like teachers You' might have seen his previous work um but this this four our Chef um book
00:13:51.959 there's a section in it about learning um which is really cool um it talks about like meta learning his
00:14:00.720 approach to learning stuff and how he breaks it down how he's able to uh
00:14:06.959 identify what's important in a skill and how he kind of uh effectively
00:14:14.480 hacks that and to learn something in the shortest period of time I think it's a good thing for us to have
00:14:22.600 um well it's a good it's a good perspective to have actually uh to to
00:14:28.720 look at like how he's doing things here um and he he talks about Nar down
00:14:35.519 material to it's what is actually important right he he's talking about
00:14:41.160 context of cookery but he goes through a whole bunch of different examples
00:14:46.959 uh and he he talks about how you know learning a language like uh
00:14:54.120 Japanese how he was able to take you know which is there's a lot to learn there he kind of condensed it into I
00:15:00.480 think some like 1900 um characters that he needed to learn and he he talked about how he then
00:15:07.399 condensed that into something smaller so that he could learn it in a quicker time so and and the reason why he was
00:15:14.839 doing that he was doing it around frequency in terms of what was able to going to have the Maximum Impact for him
00:15:21.079 so there was this idea between efficiency and Effectiveness just because you're efficient doesn't mean you're actually
00:15:27.720 you know doing the best right effective is like doing doing the right thing
00:15:32.880 versus like doing things well um or doing things right sorry so he talks about this and he he
00:15:40.759 he calls it the minimum effective dose and it's applied across all his kind of things that he talks about like
00:15:47.399 from um his his bodybuilding through he talks about like sports things
00:15:54.759 languages and uh it actually breaks it down into this um acronym that he calls
00:16:00.680 disc which is um talks about deconstructing skill talks then about um
00:16:06.959 selecting what's the most important what's the highest frequency things then he talks about sequencing so getting things in the
00:16:13.680 right order that that you that you need to learn these things because because
00:16:18.720 things do have an order right and then he talks about the the schedule so again
00:16:24.600 that's important when it comes to to teaching that the the way we schedule
00:16:29.959 the the learning um and the schedule is
00:16:36.040 important because uh it it determines you know how we How likely we have to
00:16:41.680 stick to something so the schedule and subject matter are going to help us
00:16:47.279 reach fluency in something um so you I'd recommend
00:16:53.160 checking it out I mean that's very brief kind of discussion of what he does and let me talk to you
00:16:59.240 about some other psychological parts of of learning um so you might be familiar
00:17:05.559 with like their the these schools of thought that there are three types of
00:17:12.079 learning styles so people either auditory Learners visual or
00:17:17.880 kinesthetic um which is fancy words for hearing seeing and doing right
00:17:23.600 um so it's important when whatever situation we're in kind of think about
00:17:30.000 those things now I like I said everybody's going to be a mix of things I I don't think anybody's
00:17:36.280 a single type right of of learner um so
00:17:43.000 that's but I think the beauty of what we do naturally lends itself to all these things uh particularly in like team
00:17:50.840 environments when we're working together with other people whether it's like oneon-one pair programming or whether
00:17:56.520 we're in a wider team setting that generally we're not going to be doing a single thing we're we're going
00:18:02.600 to be talking about code we're going to be perhaps typing it at the same time we're doing something or we're watching
00:18:09.200 someone else do it um so there are a few things that
00:18:18.200 um psychologist would would talk about when it comes to teaching
00:18:23.280 um so there's this thing about failure and belief so motiv is reduced in if
00:18:31.720 individuals um sorry so if if people
00:18:36.880 attribute failure to a lack of ability rather than a lack of effort
00:18:43.159 so it's important to know that that we're not stupid right that
00:18:49.360 that demotivates people um but if they just feel like hey you know what if I just try it again if I I just you know
00:18:56.000 okay I didn't get it this time but I can come coming back if I try a little bit
00:19:01.240 harder that the motivation lasts longer is
00:19:07.320 stronger so Recent research has demonstrated that students ability to remember and retrieve information is
00:19:15.880 greater when we we spread things out over time rather than concentrate it
00:19:21.400 intensively so again lends itself well in our team settings right um and
00:19:29.440 so that you know we're not all constantly just going we're only going to train once and that's it like cram
00:19:34.640 everything but with within a team when you're working together generally it is over time right that we we learn stuff
00:19:42.240 that we teach stuff that we share ideas um the next is um something called
00:19:49.679 The Generation effect so people more effectively remember
00:19:54.720 things when they generate their own answers so not when they they see the answer on a
00:20:00.559 page uh it's probably not surprising right you might have experienced this yourself like
00:20:06.480 it's but it gives it a name right and it helps you articulate it next is like an
00:20:13.679 instructor that seeks to stretch people and and broaden understanding by
00:20:19.200 identifying those things that are just Out Of Reach of of the person they're teaching a
00:20:24.320 student um that's a really important way of learning um because after all we
00:20:29.960 don't know what we don't know okay so that's it's great having the mentor who can help you push just beyond those
00:20:37.400 those limits of of what you already
00:20:42.720 know so and then we have this uh self-awareness
00:20:48.080 uh or you know it might be termed mental cognition and it's really it's just
00:20:53.720 basically knowing your own thought processes um and and it effectively it's
00:21:01.360 like um how was written down here I've actually written down it it helps students avoid distraction sustain
00:21:08.320 effort and modif modify their learning strategies based on their awareness of
00:21:13.360 how effective they're being um and ways you can kind of encourage this is by
00:21:19.200 asking reflective questions um or you know recounting your thought processes
00:21:24.240 as you go through a problem or in other words you know we would we talk about this in you know the developer duck
00:21:31.480 right just being able to talk through the problem it's like hey I can't fix this can I can you come over and help me
00:21:37.400 and as you explain the problem as you explain what you've been trying to do yeah thanks fixed it and like you the
00:21:43.760 guy's there oh yeah great didn't say anything
00:21:49.640 um so yeah I mean they kind of some of the psychology
00:21:56.039 um things to kind of keep in mind actually as we're as we're teaching
00:22:01.360 and let me throw in this this um thing also recently read um Brett VI Brett
00:22:08.400 Victor he did this blog post about learnable programming and if you read it or saw it
00:22:15.480 um it's it was pretty good and he was talking building on his previous one of his previous talks you might have seen
00:22:23.080 um H I forget the name now um but he was he was talking about you know this whole
00:22:29.440 idea about being able to see the result of what you're you're writing and and he had this actual
00:22:35.919 statement that that I kind of quite liked was talking about how program was
00:22:41.520 not a road skill to be learned and that we shouldn't be teaching people for Loops for instance that's that's kind of
00:22:47.840 beside the point we like teaching people actual the the underlying like Concepts
00:22:54.320 versus actually saying talking about grammar or vocabulary we're teaching people about you know whole computer
00:23:00.279 science is is much more important than just going you know how he describes it
00:23:05.400 as um we don't describe a book and say look it's got these words it's got magnificent and amazing in it we or you
00:23:11.360 know that's just describing um the you know it's not actually
00:23:16.799 describe not helpful for describing a book right um
00:23:24.960 so I like talk just briefly then talk
00:23:30.840 about um how we we actually go about teaching so we've talked a little bit about psychology we talked a little bit
00:23:36.679 about you know this concept of being teaching being this transformational um gift but how
00:23:44.960 actually do we then how do we pass on that gift
00:23:52.400 right so firstly teaching is a lot about
00:23:57.679 communication um and one of the fundamental Parts is crafting our
00:24:03.000 message so regardless of your experience and
00:24:08.200 your level that you feel you're at as a developer as as an engineer or however
00:24:13.520 you describe yourself I believe that everybody has something that they can say something
00:24:18.960 that they can teach there there's something unique about what your experience in code and in the domains
00:24:26.720 that you're working in that is not repeated in other people so then how do
00:24:32.720 we take that message and how do you deliver it in a way that is easily um
00:24:39.159 easy for other people to grasp uh and and one of the key things that we have when we we're delivering a
00:24:45.240 message is is trying to speak the language of the person that you're aiming to help so in the case of you
00:24:52.640 know say you're you're in a team and you're helping a junior developer um uh
00:24:58.720 get on board and and helping them develop their skills um it's often not
00:25:04.799 useful to try and talk about things use languages that maybe they're not
00:25:10.399 familiar with all that's not natural to them and I even talk about in terms of like talk about it in terms of them and
00:25:16.640 how it benefits them and how they're going to think
00:25:21.760 um in marketing we might talk about uh how we there's three
00:25:29.440 there's there's three um sections if you like to a message there's often like a
00:25:34.679 pain that people experience like I can't I can't um code for instance right uh
00:25:41.799 and this dream the dream is the part there like you know that I would like to be able to do so I want to be able to
00:25:48.039 build my up in in rails for instance and the fix is where we come in this is the
00:25:53.120 part that we're teaching right this is the thing that we can say look I can help you here um and so we kind of I often think
00:25:59.520 about every time I'm any kind of message that I'm giving like whether I'm teaching to a class or teaching in
00:26:05.840 person like one and one is trying to think about these three things um and
00:26:11.679 it's great because it helps you focus on that person or the the people or whoever that you're
00:26:17.360 helping we're really thinking about you know how can I help them how can I fix
00:26:22.520 this um thing that they're experiencing the pain so
00:26:29.080 in when it comes to inperson teaching um probably one of the the um most common
00:26:36.960 ways I see that happens is is pair programming like this is most probably the most common knowledge transfer
00:26:43.159 teaching student kind of situation that I've seen in companies
00:26:48.640 um and you know mentoring junior members of a team often this comparing often
00:26:55.240 works really well because it's this thing of going two people working on the same piece of code and you know um
00:27:03.679 effectively challenging each other about how we do this right some of my um best experiences in coding has been working
00:27:10.120 with Junior developers and them saying Oh you know why do we do this
00:27:15.320 like somebody ask you why it's it's um it's a powerful thing to actually take
00:27:20.640 stock and and go um oh yeah like this piece of code that I'm writing here is this actually
00:27:26.080 the best you know can I write this in a better way way um so there's that and
00:27:34.679 then also um within team set team settings things when you come to peer
00:27:40.600 review like if you're using GitHub a lot for your um development process like
00:27:46.640 again a lot of companies that I work with do use pull requests heavily these are great great places again
00:27:53.399 for effectively the same thing right we're still we're still talking about code and how we write
00:27:59.279 better um and then there's uh something else that I've seen um work well is um
00:28:06.559 in a team setting so where there not just one andone but it's um when we come
00:28:11.760 to have you ever done like mob refactoring before which is an interesting thing where you know you
00:28:17.200 basically let a group of people just tear your code apart um it's it's an interesting way of
00:28:23.559 sharing knowledge on a wider scale it doesn't work so well like is in writing
00:28:29.240 lots of code but in terms of refactoring keeping people on the same page it it's really good um and then
00:28:37.440 there's also the the community aspect of it and there's lots of ways that we can get
00:28:44.080 involved in community um and I think here in Sydney there's in
00:28:49.840 Stall Fest the again helping that perennial problem for beginners getting
00:28:55.440 involved in rails is how do I get set up um Ra's girl like it's big in London I
00:29:02.960 don't know how it is in in here but there's there's a great Community there in London um I imagine the same here um
00:29:10.919 also you know like I said open source getting involved in open sources is a great way of sharing what you know and
00:29:18.279 not only that though when you when you put yourself out there saying I think this is this is a good way a better way of doing that it opens you up to other
00:29:24.480 people saying yeah great but how about this as well then it comes there's another part of
00:29:31.799 teaching um and I think it's actually a really Universal way of teaching and
00:29:37.760 really effective is by writing so it's like I say why while
00:29:45.000 it's Universal I don't think it's necessarily easiest because writing well is not necessarily easy um but in terms
00:29:54.399 of being able to just get get out there and the the forms of distribution and
00:30:01.399 grow and I'd like to give you a few ideas um of things that you can write
00:30:07.320 about things that you can talk about in your teams like when I say write it doesn't necessarily have to be you know
00:30:13.159 this is writing something for the whole world but writing within your team is a is a good thing too
00:30:20.320 but um I got some advice from a guy called Rob Fitz um he's in in London um
00:30:27.559 he's a he's a Dev there and he actually gave these five five pointers of things
00:30:33.200 to write about and I like them so first of all he he talks about in your in your last job or project tell me the mistakes
00:30:40.320 you made and how you plan to avoid them next time again uh reflection reflecting on
00:30:46.640 things that we've done wrong or things we could do better is a great way of you know improving ourselves making
00:30:53.000 sure that we we don't just keep writing the same crappy code but we do strive for something better
00:30:59.440 um another another one is from the most recent book you read what one thing stood out to you that you will use to
00:31:05.279 make your code better um things that I wish I knew 10 years ago always a interesting again
00:31:13.120 recap of of what you've done so far um what have your clients Partners
00:31:18.559 or customers asked or being confused by recently and finally what's the worst
00:31:24.120 advice you've heard recently um everyone loves a good flame War right um be opinionated you know I think
00:31:31.200 that's one great thing about teaching is is being opinionated you know saying you know you don't have to say I know all
00:31:37.120 the answers but just say I have I think this is a good thing um something I try and do is every
00:31:45.000 time I fix an error um fix to find an a bug that I couldn't google we have those
00:31:50.880 right now and again please blog about it because someone else is is is Googling for the same thing most likely it will
00:31:58.240 be you in six months time when the thing doesn't work um so you'll thank yourself
00:32:04.919 um uh also I think something very powerful is writing a style guide for
00:32:10.039 your team um being again it's about articulating is about taking the choices
00:32:16.000 that you've made or making in your team whether it's in your Ruby style guide or it's your HTML and CSS style guide but
00:32:24.279 being specific about you know this is how we do stuff this is how we structure
00:32:29.600 our services in our in our app or this is how we structure um how we you know
00:32:35.919 hit hit our cues and things like that or what whatever you're doing the reasoning behind two spaces versus four spaces in
00:32:42.760 your in your tabs and things like that but whatever it is B articulating it
00:32:47.960 knowing it knowing the reason why you're doing it is is is good
00:32:53.799 um then lastly um I would encourage you to speak as well firstly within your
00:32:59.639 team like talk about stuff right find find things that you
00:33:05.720 can that you would like to learn about for instance and then give a lunchtime
00:33:11.679 talk don't just uh I think it it would be tragic if everything that you know everything that you've done remained in
00:33:18.519 your head and never shared with with other people um and go and speak at your
00:33:24.519 local Ruby meetups you know um so we've got what we've got places here melbour I
00:33:32.399 know you've got meups there um and I'm sure most cities right have a a local
00:33:38.039 Ruby user group and um I'm sure they're always looking for
00:33:43.120 if anything like back home they're looking for more speakers um so yeah I mean I hope I can
00:33:51.000 encourage you to be intentional about your teaching and just to like I say uh it
00:33:57.799 teaching is not for the people who know everything but teaching is I believe it for everybody and there's so much to
00:34:04.240 gain when you teach everything you know that like I said um I think you should
00:34:10.119 go for it so um thank you for your time today and I hope you have a great Ruby
00:34:22.280 comp thank you very much F hello there we go uh we've got not time for I think
00:34:29.440 one question and we've got a question there we go thank you Felix um just a quick
00:34:36.599 question what parts of Ruby have you found that beginners most often stumble over and how have you helped them over
00:34:43.879 those lumps yeah um so I think the
00:34:49.399 tricky part of that is that people don't approach Ruby often on its own now people come to Ruby through rails
00:34:55.919 because they want to cuz generally they want to do something right and it's web development is the thing is the hook and
00:35:02.720 rails is huge like because it's not just rubby like if it were just Ruby that would be okay you're teaching a language
00:35:08.440 but we're actually saying we're teaching you know HTML CSS they need to learn
00:35:13.520 about you know request and response and it's all very confusing um so I think that's like one
00:35:21.280 of the biggest stumbling points is people try and do the whole and I think that's why it's important to narrow things down and and talk about you know
00:35:28.960 what can I teach in a that's high frequency you know what's the most important thing they can learn whether
00:35:35.240 that's you know cting things back and saying don't focus on HTML CSS because that's a whole another world anyway
00:35:41.119 right but learn Ruby for as a language in itself might be a better approach for
00:35:49.000 people awesome thank you very much Felix uh everyone fix cloud
Explore all talks recorded at RubyConf AU 2014
+17