Summarized using AI

Failure for Fun and Profit!

Kerri Miller • November 01, 2012 • Denver, Colorado • Talk

In her talk titled Failure for Fun and Profit at RubyConf 2012, Kerri Miller, a lead developer at Blue Box Group, emphasizes the importance of play in the learning process and how embracing failure can lead to growth and innovation. Miller suggests that learning is rooted in experience and experimentation, encouraging individuals to take risks and redefine their understanding of failure.

Here are the key points she discusses:

  • Play and Learning: Miller argues that play should be a core aspect of learning, as it promotes creativity and reduces the pressure associated with failure. She draws a parallel between play and learning by stating that both can lead to fulfilling experiences and valuable lessons.
  • Importance of Experience: Citing a quote from Nazirdin, she notes that good ideas come from experiences which often stem from failures. By pushing boundaries and experimenting without fear of failure, individuals can learn more effectively.
  • Scientific Method Analogy: Miller compares learning to the scientific method, highlighting that experimentation and adjusting based on results are critical to knowledge acquisition. She encourages attendees to ask questions and challenge their assumptions in order to grow.
  • Personal Anecdotes: Throughout her talk, Miller shares personal stories from her varied hobbies including poker and marionette puppeteering, illustrating how the thrill of being a novice can lead to mastery. She introduces 'Calvin Pool', a game which serves as a metaphor for a learning environment devoid of pressure, allowing freedom to explore and fail.
  • Brain Science of Stress: She discusses cognitive science findings which suggest that a relaxed environment enhances memory retention compared to a stressed one. This emphasizes the need for reducing anxiety in the learning process to foster better understanding.
  • Approach to Learning: Miller encourages redefining problems and breaking them down into manageable tasks. She suggests using playful methodologies and stress-free environments to encourage exploration and creativity.
  • Inspiration Acts and Collaboration: The importance of collaboration and teaching others is highlighted, as these practices can facilitate deeper understanding and retention of knowledge. She cites pair programming and book groups as effective forms of collaborative learning.

In conclusion, Miller urges the audience to embrace the journey of learning through play, accept the inevitability of failure, and view it as a pathway to success. By fostering a playful approach to learning, one can minimize stress and enhance creativity, ultimately leading to personal and professional growth.

Failure for Fun and Profit!
Kerri Miller • Denver, Colorado • Talk

Date: November 01, 2012
Published: March 19, 2013
Announced: unknown

Do you actually know how deliberately acquire, sharpen, and retain a technical skill? In this talk, I'll discuss common strategies to enable you to be more focused, creative, and productive while learning, by using play, exploration, and ultimately failure. You'll leave knowing several "Experiential Learning" patterns and techniques that can help you turn failure into success.

When was the last time you failed in a spectacular fashion? Was it really so bad? If you want to succeed, you first need to take a little time to fail.

RubyConf 2012

00:00:15.120 hey rubyconf um for those of you who don't already know me my name is carrie miller
00:00:20.800 i'm a lead developer at blue box group we have a table in the vendor booth i'm
00:00:25.840 obligated to mention that failure for fun and profit is the title of my talk and uh
00:00:31.920 i thought i was being ironic when i named it fun and profit and i saw there were three other talks named that
00:00:37.040 um it's kind of a silly title really because i'm not really gonna be talking about failure
00:00:42.480 and i'm only tangentially going to be talking about profit what i am going to talk a lot about is
00:00:47.680 having fun and how you go about that
00:00:52.960 failure isn't fun at all and none of us really want to fail and let's expect to fail
00:00:58.399 yeah we take risks every day it's really important for these for us to take these risks because
00:01:04.879 that is really the only way that we ever learn anything by pushing our boundaries and seeing where the edges of our knowledge
00:01:10.840 are if you're not making an absolutely glorious exhilarating mess of your code
00:01:15.920 on a nearly daily basis you're not really progressing your knowledge you're getting to done but you're not
00:01:22.240 expanding nazir dean said that good ideas come from experience and experience comes
00:01:28.400 from bad ideas so go have some bad ideas get some experience
00:01:34.960 it sounds a lot to me like the scientific method
00:01:40.000 we're not acting like scientists we're not really pushing these boundaries we're not creating a hypothesis
00:01:46.000 we're certainly not testing anything and we're never actually really adjusting our results to account for the new information that we have
00:01:53.200 the scientific method also also is the agile cycle as well
00:02:00.640 the real purpose of the scientific method is to make sure that nature hasn't misled you into thinking something
00:02:06.000 into thinking you know something you don't actually know robert priscick said that in zen in the air of motorcycle maintenance
00:02:14.400 and it was really this book that got me back into programming after five years stint to amazon i took
00:02:20.560 two years off and became a poker player and i didn't really know how i wanted to
00:02:26.160 proceed i was stuck i was absolutely stuck i wasn't having any fun
00:02:32.480 then i realized that i could know anything i want to know i merely have to approach it in the right way
00:02:39.360 you need to ask questions that you think that you have answers to already in order to validate that information to
00:02:44.560 see that the world hasn't changed out from underneath you i mentioned being a poker player i have
00:02:50.800 a few other hobbies i uh was a sous chef briefly
00:02:56.400 i'm a long distance hiker i spent a year and a half as a marionette puppeteer i fix uh vintage vespas i'm a
00:03:04.080 self-representing glass artist which means i get a check from etsy every week it's usually single digits but that's
00:03:09.440 okay i put that up there not to say like how
00:03:14.640 cool i am because i think my hair shows that off pretty well but the point is that
00:03:20.480 consistently i've always struggled with being a novice with being completely out of my depth and not knowing what i'm
00:03:25.519 doing and so often i see people struggling against the same exact
00:03:31.280 problems how do i progress forward how do i learn something getting stuck on problems for weeks at a
00:03:36.959 time the experience of being outside of your element
00:03:42.000 is scary it's intimidating and in the end it's absolutely thrilling
00:03:47.040 you need to find that fun in that moment mihai she sent me how he said
00:03:53.040 not all experiences may be particularly pleasurable at the time they're taking place but afterward we think back on them and
00:03:59.920 we wonder why they last what was really fun about that moment we wish they would happen again
00:04:07.200 an enjoyable event we know has changed us and ourselves has grown
00:04:15.680 why do we stress about learning why do we stress about not knowing what we know and not knowing what we don't know
00:04:22.320 around the cellular moment there it's difficult to look foolish in front of peers
00:04:29.280 on github or twitter and we don't certainly don't want to look foolish in front of ourselves
00:04:36.080 it's scary territory to find ourselves in but inside of all of us there's a reason
00:04:41.199 why we got into this field to begin with because we wanted to solve a problem because there was something interesting
00:04:46.240 to do i think we also all remember being children on a playground at some point
00:04:52.400 and none of us really knows or cares how many games of tag we want or lost but we had fun while we were doing it
00:04:58.880 so why can't we have that fun with our work really it's the risk
00:05:06.639 it's the risk of failure it's the fear of it all if you want to learn something new
00:05:12.560 reduce that risk take away that fear redefine failure
00:05:18.880 into a data point rather than an event that happens to you
00:05:24.080 find the excitement that got you into this begin with go back to being a kid on the playground
00:05:33.360 so what i want to talk to you right now about though is how i became a pool shark in about a
00:05:38.639 week
00:05:46.880 when i showed up at blue box i immediately saw that we had ping pong tables
00:05:52.560 kegerators and a pool table and now i love pool and i did mention i was a poker player for a
00:05:58.720 while so i spent a lot of time sitting around at green tables uh betting money on cards and listening
00:06:06.319 people talk about golf or sports betting and pool and classically being a pool
00:06:12.639 hustler and a poker hustler go together right so obviously i have to go become a pool a pool hustler
00:06:19.039 it didn't really work out that way um i played a lot of pool sometimes for money um
00:06:24.880 but it was never very good um six months ago if you saw me to bar and
00:06:30.000 you challenged me to game of pool you're going to win that simple
00:06:35.039 so the first time i showed up at blue box i said hey come on over here play game of calvin pool
00:06:41.840 calvin pool what's that i mean i know eight ball i know nine ball i know cutthroat
00:06:48.160 is a game that our principal technologist invented with his brother when they were kids and they were bored one afternoon in a basement
00:06:54.560 the rules of calvin ball are really really simple when it's your turn your opponent picks
00:06:59.680 out the ball that you have to hit that's it you have to shoot the cue ball hit the ball your opponent chose for you
00:07:06.319 that's it you don't have to sink it you don't do any magic you don't care the next shot's gonna be just as hard
00:07:12.240 it's absolutely amazing it's so much fun i can't even tell you
00:07:20.000 i got better really really fast i lost the first five or six games yeah but i got really good i was holding my own
00:07:26.880 and made some impressive shots people don't want to play cabin pull with me anymore
00:07:32.639 that went on for about a week and a half and i went out with friends and someone
00:07:37.759 said hey let's play pool cool so i broke ball went in so it's still my
00:07:43.680 turn i sink another one another one another one and i ran the entire table
00:07:50.240 i don't know if you know this or not but if you sink all the balls in a full game before your opponent even hits one
00:07:55.280 that's that's pretty impressive so that's another game people won't play
00:08:00.400 with me calvin ball or calvin pool is a great
00:08:07.199 demonstration of how we redefine failure i was forced to make these impossible shots over and over and over again and
00:08:14.080 no one ever expected me to make it and even if i didn't make it big deal it's my opponent's turn i get to screw them
00:08:20.560 that's wonderful i could try anything i wanted to i could try a crazy hop shot i could put english on the ball and see
00:08:26.160 how it reacts i could do multi-cushion shots it simply didn't matter i was free to explore side effects i was
00:08:33.279 free to try the most insane thing possible
00:08:38.959 learning a new programming technique for me is just like that i challenge myself to learn through exploration and trial
00:08:45.760 to have fun with it to define it down until i'm just learning the one thing that i want to learn
00:08:51.440 i do it over and over again i practice i don't warm up i push the edges
00:09:01.040 so why does taking this emphasis off of stress and failure actually work for our brains
00:09:08.000 you're probably familiar with the left brain right blind spray left brain right brain split
00:09:14.000 the left brain controlling math and logic right brain controls art music language
00:09:19.920 in general this is pretty accurate it's a little more complicated than that but it's a good model
00:09:26.000 the size of our brains are really delicately balanced it's difficult to use logic and pain in picture it's difficult to
00:09:32.399 write a poem and do quadratic equations you can focus on the shot in front of you or you can
00:09:38.240 worry about how you get home from the pool hall learning requires both of these kinds of thinking though
00:09:44.640 you need to have imagination and reasoning learning in a platonic or socratic sense is the
00:09:50.959 discovery of truth you take two abstract ideas and you make a connection
00:09:56.160 and then you integrate that reality into your perceptions of the world around you
00:10:01.600 you rewrite the algorithms that your brain uses to perceive reality
00:10:08.560 cognitive scientists working with chimps we're testing how these chimps reacted to stress by
00:10:14.640 stressing out one group of chimps really badly you know turning the lights on and off changing the temperature kind
00:10:20.640 of being a little mean to them and the other group of chimps are really well treated given their favorite bananas and fruits and everything
00:10:28.399 then they're presented with a pattern of dots on a card and given a treat whenever they could pick that pattern out again from a series of patterns of
00:10:34.959 similar dots that are shown on a screen slowly
00:10:40.320 scientists would introduce variants on the original and reward them for picking those out as well
00:10:46.399 the groups performed equally well at doing this task it's pretty standard scientists were
00:10:51.600 whatever they took a break they came back two months later and reran the experiment
00:10:58.480 the relaxed chimps the chimps that were given the really great environment they picked it up like that they knew
00:11:03.680 exactly what was going on the gyms who were stressed out they couldn't remember that they were
00:11:09.200 going to get rewarded for performing this task
00:11:14.399 rats going through mazes are have similar effects as well and scientists have isolated this effect down
00:11:20.320 small amounts of stress before excuse me small amounts of stress before we succeed
00:11:26.320 lead to long-term lasting memories of that success while large doses of stress the kind
00:11:32.800 that you get when you're just like sitting around for days at a time eating bland oatmeal and having lights turned on and off
00:11:39.200 that's horrible for forming happy memories when stressed the brain prioritizes the
00:11:45.040 here and the now for survival it engages the fight or flight response stress hormones flood the brain to
00:11:51.519 increase our response time and that doesn't allow our brains to process the feeling of this was good which is
00:11:58.000 required for setting up abstract memories
00:12:08.240 so calvin ball did exactly this it removed all of the stress all of the risks involved
00:12:14.079 and put the emphasis on having a great time having a beer after work shooting a little pool
00:12:19.920 everyone's expected to fail and we're trying to be mean to each other it's all part of the fun and we have an escape valve we can leave that game at any time
00:12:27.839 when we're stressed at work we can't leave we simply can't just get walk out in the
00:12:32.880 middle of a hard problem for our brains this kind of control this
00:12:38.320 kind of lack of pressure is really really powerful we seem to be wired to learn stronger
00:12:44.880 memories more quickly from fun exciting stimulating environments that we are from stressful ones
00:12:50.480 we're designed by nature to flourish through play in fact we're one of the only social animals that has a hierarchy structure
00:12:58.079 that encourages play outside of childhood and adolescence wolves
00:13:04.160 will uh whales tigers lions they all have play as
00:13:09.519 children where the normal rules don't apply but as adults they become very strict societies we don't have that our brains
00:13:16.880 remain plastic well into our old age engaging this kind of play appears to be
00:13:22.880 critical for the development of the brain and continual learning
00:13:31.760 john heizinga was a dutch philosopher a cognitive linguist a cultural theorist
00:13:37.120 a little bit of physiologist and he actually taught art history as well he was he did most of his work in the
00:13:43.360 early 20th century and in 1938 he wrote this really super influential book called homo ludens or
00:13:49.040 man at play in which he posited that the act of playing is an event which occurs within
00:13:54.720 a specific boundary of space and time in which the normal rules of life don't apply
00:14:00.399 play is done for its own sake and we play because it is fun play begins and then a specific time it
00:14:07.199 ends and this sort of pulling ourselves out pulling our brain
00:14:12.320 out of the everyday world creates an outlying event that takes on significance
00:14:24.160 so if we want to create specific memories that are static and
00:14:31.040 stay longer than just the hum drum every day did you take the bus did you get coffee this morning
00:14:38.000 we have to encourage this sort of play we have to give ourselves space to play we have to give ourselves space to fail
00:14:44.720 we have to take these glorious risks we need to minimize intrusion and distractions the things that pull us
00:14:50.880 back to our normal world when i'm trying to learn something new i go to the pacific science center in seattle or the aquarium where they have
00:14:57.120 wi-fi and i just sit down there and look at octopi float by or the laser show
00:15:02.800 not because you know the bandwidth is any better where it's less distracting but because it's different and it takes me out of
00:15:09.199 the normal reality that i have we also need a lot of time to learn
00:15:15.440 things which is unfortunate but if we can give ourselves a solid block of time to say this is different
00:15:22.800 this place and this time is separate from our reality to truly explore these side effects we
00:15:29.680 can sandbox and reduce the risk to ourselves if we actually do fail
00:15:36.560 we need a lot of courage we need to give presentations at conferences
00:15:43.279 we need to rock climb we need to use a different version of ruby
00:15:49.440 so much of our daily life requires us to be domain experts and to find like the exact precise
00:15:55.440 solution to a problem because a client is on the phone or there's a deadline or there's some kind of pressure and
00:16:00.720 something's on fire everything can be a threat then and will never get past just getting done to
00:16:07.680 really integrate the knowledge if we create the play space we create
00:16:13.120 new rules and we need to embrace them we need to be confident that what we're doing in this time and place
00:16:19.600 is normal and it's okay even if we're acting as children as novices
00:16:27.199 so i'm a liberal arts major i actually have two bachelor's degrees both in liberal arts so this is a really familiar slide to me
00:16:34.839 and if you are at all familiar with well western storytelling at all you
00:16:41.279 know about the heroes myth this is the joseph campbell carl jung
00:16:47.040 exploration of what does this what is a story in western society
00:16:52.160 we start with a hero who's in a place of known their little village their little town
00:16:58.079 something propels them outwards there's a problem there is a giant beanstalk that's growing up into
00:17:04.240 the sky something challenges them and they have to face a crisis
00:17:09.520 the giants coming home early they get a gift
00:17:15.679 of some sort and then they return to their normality they come home with the golden harp or the goose that lays the golden egg
00:17:22.000 and they're forever changed by that experience their world has been expanded something is new
00:17:29.520 this guy he's just having dinner one night and these guys show up
00:17:36.320 and say you're hired cool and then we face some trials
00:17:43.600 and then there's you know some challenges and riddles and puzzles to solve
00:17:48.880 and there's a magical gift and then we return home and everything's different
00:17:54.640 and the cycle continues learning is like this learning is a
00:17:59.760 heroic act in which we're voyaging out into the unknown and we're seizing fire of knowledge we are prometheus in this
00:18:05.520 moment and we can be burned by that or we can face it down and we can
00:18:11.440 integrate it and have fun with it and be playful so what abysses are there what is the
00:18:18.000 unknown that what are we afraid of this is pretty bad
00:18:27.280 when we're afraid our brain can make we can find distraction in anything when i start with an empty screen with
00:18:33.840 no distractions that's pretty cool i've shut down twitter obviously
00:18:39.919 everything is gone everything's quiet it's nice my local library
00:18:46.799 got my noise cancelling headphones on maybe a little skrillex just a little bit
00:18:52.559 this starts what am i doing too what do i what i want to learn
00:18:58.640 oh well i want to learn tdd i want to do this jruby looks cool where do i start
00:19:04.000 what do i do i have a pull request i gotta review
00:19:09.200 and i've got i got a wedding i'm planning for i should send an email about that
00:19:14.559 this happens to all of us this is our brain trying to distract us our brain is
00:19:19.760 afraid fight or flight is starting to kick in it's pulling us away it's saying this is
00:19:24.960 a scary place that we're in we could fail what if i write bad code what if i don't write any code i've just wasted an hour
00:19:31.039 i could have been productive i could have billable hours right now why am i doing this
00:19:40.400 if you give yourself time to get past this if you can be courageous and humorous about this
00:19:47.440 you can you can actually watch your own brain trying to like self-destruct and implode
00:19:53.200 and then eventually it'll pass and you'll be able to get on with your creativity and you're learning
00:20:01.440 so you limit your distractions you set aside time for yourself you step outside of your normal constraints and you're
00:20:06.880 all set and you know what you want to study you're seeking this passionate moment of knowledge of the heavens to open up an
00:20:13.200 idea to strike you or a piece of knowledge aha i know this this is awesome we've all had that moment where you you
00:20:19.760 suddenly you're looking at code you're like oh my god how this works or i understand maglev i understand why this
00:20:24.799 would be great and i know how to use it what we're seeking is called an aesthetic experience
00:20:31.840 sir ken robinson is an educational reformer in the uk and he uh coined the phrase
00:20:37.360 aesthetic experience and defines it as one in which your senses are operating at their peak when you're present in the
00:20:43.039 current moment when you're resonating with the excitement of the thing in which you are experienced
00:20:48.640 when you are truly and fully alive that is an amazing place to be we've all been there it's called flow
00:20:58.080 me i chicken sent me high said that flow is the enjoyment that appears at the boundary between boredom and anxiety
00:21:04.000 when challenges are balanced with our capacity to act
00:21:09.120 in trying to have an aesthetic experience we walk this balance beam between anxiety and boredom
00:21:15.200 we're pursuing flow constantly we don't have control over our skill
00:21:21.520 here we have no skill we're at the we're at the far left maybe over by the s depending on what
00:21:26.960 we're learning what we can control is we can control the challenge though
00:21:33.919 in a pool table excuse me at a pool tournament you stare at the table and you try to figure out the shot
00:21:41.039 all the various complexities that are coming into play where's the cue ball going to end up is this going to crew
00:21:46.159 off am i going to end up with a scratch am i shooting at the right ball even oh my god it's a solid but it's the eight
00:21:52.480 ball where's the money going to come if i lose this match in calvin ball the entire set of options
00:21:59.440 were narrowed down all the variables are removed except for make this one shot why can't we do that with learning
00:22:10.080 we have too many options sometimes we have far too many choices i want to build an awesome dagobah
00:22:16.400 playset so i go to the lego store where do i start
00:22:23.919 i didn't get into ruby for about six months because i couldn't get my sql support to compile
00:22:30.240 couldn't do it and i was hellbent that i was going to use mysql that's the only way it's going to be and i let that stop
00:22:35.440 me because i got caught up in the choice of technology i went down the rat hole of so many of us go to what do i what do i
00:22:41.679 name my gem man like what's what's gonna be cool is their twitter account for it oh it scans okay
00:22:48.480 shoot i think it's something else what's on tv that pull request is still waiting
00:22:54.720 these things like really really knock us off key so we gotta define we got to find some
00:23:00.799 limits for ourselves we got to pick an unfamiliar technique
00:23:06.080 we want to find something that we're unfamiliar with if you're doing something normal every
00:23:11.280 day humdrum try hamel a little bit instead of erb
00:23:17.039 maybe you want to use redis instead of you want to try and make life hard for
00:23:22.320 yourself but not too hard you want to stretch you don't want to break you want to find what's just out of your
00:23:28.000 reach and grasp it
00:23:34.240 this gets into deconstruction of problems we want to break the problem down to the smallest possible pieces and remove
00:23:40.480 those variables find a simple and obvious task that you understand
00:23:45.919 and just solve it then solve it again but do it differently with a different technology
00:23:52.799 or redefine the problem but taking a pro taking the problem apart
00:23:58.080 the technology that you want to learn you're going to be able to find divergent thinking alternative ways to
00:24:03.520 get to that solution
00:24:08.799 you're going to be able to see how those techniques really really apply to getting you to done
00:24:15.200 and be able to compare from version to version exactly how they influence your path in your journey from start to
00:24:21.120 finish and that will allow you to really integrate that knowledge and bring it forward
00:24:31.279 this is a user case that i use when i'm doing mentoring or working with people after they go through railsbridge
00:24:37.440 this is a really simple user case it's disturbingly easy
00:24:45.120 i've actually gotten into interviews it takes two minutes of googling to get the algorithm two more minutes you're going to find a repo full of eight
00:24:51.279 different ways to solve it for 20 different languages you're going to find arguments about what the most efficient
00:24:56.480 way to do it is why you need to do it we don't really actually want to solve this
00:25:01.679 problem we want to focus on how we solve it we want to pick a variety of ways to get
00:25:07.760 from start to finish and see how it changes our path
00:25:15.039 these are six different ways that i've actually solved this problem and each of them gave me something new to solve
00:25:21.120 a new area of technology to explore have they figured out the base user case of temperature conversion doesn't matter
00:25:27.840 it doesn't matter what matters was i made it a gem cool i learned a little bit about how bundler works
00:25:33.919 so then i did it with jeweler i could see how these different tools affected my workflow and the final
00:25:40.799 product it's easier to have a detached approach when you make you use these simple
00:25:48.159 simple problems the focus of what you're trying to do
00:25:53.840 make an exhaustive list of everything you might do and the last thing on your list is what you should do
00:26:01.520 which is a paraphrasing of the oblique strategies cards from brian eno and peter schmidt
00:26:07.679 your 55 cards the two of them came up with well you know was recording an album and schmidt was there
00:26:12.720 painting away in the studio it's what you did in the 70s some of the cards are things like
00:26:20.159 use an old idea emphasize the flaws work at a different speed
00:26:25.600 what would your closest friend do i have a set of these
00:26:31.679 that are more specific to technology and i use them when i'm stuck when i don't have an idea
00:26:37.279 or when i want to i want to solve these little tiny problems but i don't know what i want to do i'm out of ideas
00:26:44.000 so what would my closest friend do how would he solve temperature conversion
00:26:49.600 it's kind of interesting could i write code that looks exactly like his so he wouldn't even know if he pulled my code
00:26:55.279 into his project things like that sort of propel you forward and make you think about the
00:27:00.480 problem because ultimately what we're doing is we're building models we're building these little toys
00:27:06.400 that are fun and exciting to play with or they should be we don't really care if they break we're
00:27:11.520 kids in the sandbox with our toys we've got greedo over here and princess leia and they're flying in a tie fighter and
00:27:18.320 they're going to somehow shoot down millennium falcon and that's okay because it's just fun
00:27:25.440 at some point though with childhood toys we did start to care because they became valuable or they
00:27:30.559 took on emotional significance and so these little toy problems that we should be building and we should be
00:27:35.919 playing with similarly sometimes take on a little bit of value because we start to see like
00:27:41.120 yeah i solved that problem really really well and now i want to do something with it at work because i have a i have a need
00:27:46.720 to convert temperatures you know maybe the fans on our servers
00:27:52.000 only respond at celsius and all of our code works on fahrenheit well then it becomes collectible
00:27:58.399 you can put it on the shelf like a toy and stop playing with it let it collect dust hopefully rise in value
00:28:05.600 our version of that is of course putting on github seeing what happens it might collect dust someone else might find value in it
00:28:12.799 but we should show it to our peers we'd say hey what do you think of this problem what do you think is a solution
00:28:19.760 is this interesting to you at all
00:28:26.000 so that's what i did with fizzbuzz everybody know fistbuzz
00:28:31.679 anybody not know fizzbuzz no fear fizzbuzz is an interviewing question
00:28:37.039 that got really popular about three years ago we take the numbers one to 100
00:28:42.240 and print them in order if the number is divisible by three print fizz if it's divisible by zero uh
00:28:48.159 five print buzz if it's divisible by three and five print fizzbuzz
00:28:53.600 it's really interesting but it's a really fascinating interview question or at least it used to be before everybody knew about it
00:28:59.760 and i thought it's heyday had come and gone and i interviewed a company i got asked the question and i was like oh weird so
00:29:07.039 i solved it and there's a couple little tricks you know i got past it and i interviewed enough for another
00:29:12.640 senior dev position i got asked it again if you ask it four separate times in two weeks i'm like man this is a horrible question
00:29:18.880 this is like man why are made how cool man hole covers round you know everybody knows the solution why are we bothering
00:29:26.159 so i was here in bolt i was in boulder actually and complaining about it and if my friend said
00:29:31.360 why don't you just solve it once and for all and then you can like put the url in a business card and say
00:29:36.640 next question so i did and i had a laugh you know and i posted
00:29:42.799 on twitter now announcing fizzbuzz0.1 that was fun i went uh i went into work the next
00:29:49.039 morning and one of my dads came to me like you know that's pretty cool but you got a bug oh crap that was super
00:29:55.840 embarrassing so i released version zero two um that's funny you know you released the
00:30:01.760 second version of your joke jam it's on version zero five right now
00:30:09.120 zero six is going to go out next week it's got a full test suite i ripped it down and rewrote it with mini test for
00:30:15.279 zero four uh it works on all these versions of ruby it's got travis ci code climate builds
00:30:22.080 in well not built into it but you know it uses it
00:30:27.120 wonderful wonderful code metrics and benchmarks and timing graphs to show you that zero five is awesome zero six is
00:30:32.159 even faster it's mixed in i've done some really wild flights of fancy with it
00:30:39.200 and that's fun because i have all the joy of fsbos now
00:30:45.520 and of course so do you because fizzbuzz.io is the world's first
00:30:50.960 fizzbuzz api i don't care what twitter says it cost me 79. and i'm proud of it
00:30:58.240 but you can get your fsbos results in json or xml or html of course i don't know why you'd
00:31:05.039 want to because it's a service so that's funny
00:31:11.440 but there's more
00:31:19.200 yeah so i had to go learn facebook logins that was a pain so i did it for fizzbuzz
00:31:25.120 um there's this version will uh pass this out using aqmp to ec2 instances to
00:31:31.120 process fizbo's results it doesn't matter it doesn't matter that it's just dividing by three or five or
00:31:36.720 fifteen it doesn't matter what mattered was how do you use a message queue
00:31:41.840 how do you spin up a ec2 instance and then process it works with twitter it's got its own
00:31:48.080 twitter account i managed to get that it's got sms and email delivery built in
00:31:53.440 it's great so you can actually send me your fsb's results i better turn that off
00:32:01.360 again each of these was an experiment each of these was a spike in the traditional sense not a
00:32:07.440 spike of let's work really hard for a day and turn out some project but let's spike let's just do something and see
00:32:13.200 what are the effects you know what is what does this technology mean for our legacy code base or or the greenfield project we're
00:32:19.679 working on we're going to throw it away so we don't care about the execution what we care about is the path and the journey and
00:32:26.240 the knowledge that we gain along the way we care about the gifts that we get from gollum and how we're changed when we get
00:32:32.880 back to our village so not everybody has time for this a lot
00:32:39.120 of us are really super busy we have projects and clients and maybe we're searching for jobs and we're going
00:32:44.559 to school that's okay there's other ways to to supercharge your learning besides doing something funny
00:32:50.880 pair programming is amazing for this i don't pair program enough i don't get to as much as i'd like to
00:32:58.080 but every single time i do i learn something new and when i do i write it down on a
00:33:03.600 separate little post-it note so that when i can get back to my desk i can go read a man page
00:33:09.279 i saw somebody use git re-re-re yesterday or earlier last week anyone
00:33:14.720 get re-ruby re-rebase
00:33:20.000 weird replay re replay record replay rebase
00:33:26.399 it's an amazing command but i would never have found out about that i found weird flags on corep i've been using
00:33:32.399 grep for almost 20 years you know where did that come from
00:33:40.000 as i said i do actually teach at railsbridge quite a bit and
00:33:46.480 young women always come up to me and say you know i want to get a job i'm just a student what do i do next i don't have
00:33:52.000 anything to show people want to see my github account experience developers do this too
00:33:57.360 especially if you're working in a closed source shop well go adopt a gem
00:34:03.039 go find somebody else's fizzbuzz hands off mine but go find somebody somebody posted a
00:34:08.480 zero one or zero two of some passion project that doesn't do anything that's 300 lines of code and
00:34:13.520 it doesn't do anything except print herp dirt it doesn't matter go find you can find something to re to
00:34:19.359 refactor about i know you can or add tests for it or
00:34:24.399 something write it in a different language but do it and then send it back to them as a pull request
00:34:29.839 you'll have made their day you'll make it you might make a friend an internet friend maybe but you're going
00:34:36.399 to learn so much about seeing somebody else's code and working with it
00:34:41.919 the other thing i really encourage you to do is teach go teach something go teach something to
00:34:48.079 someone else who doesn't know it i mean like don't grab somebody and like i'll teach you something do not come find me and tell you know
00:34:54.399 try to teach me something important like how to speak at conferences teaching acts as a focusing lens it's
00:35:00.960 exactly like rubber ducking and the reason that it works is we have all these abstract
00:35:06.480 logical ideas in our head about how programming works about how computers talk to each other and as soon as you have to engage in the
00:35:12.800 person you're flipping over to the right side of your brain where all the empathy and social cues and language are
00:35:20.320 you're trying you're taking this logical thing you're turning into an abstract thing in that process you'll be like
00:35:26.320 i don't know how to explain this i lack the language and you're going to learn a lot by the questions that the
00:35:31.599 novice asks you far more than you're going to get by doing the same commands over and over
00:35:37.200 again
00:35:42.480 two other things that i don't have slides for that i really really uh tell people to do is uh
00:35:48.800 go to a study group find people online to like go through ruby cohen's with you
00:35:55.200 i'm starting a group in seattle for project euler problems where
00:36:00.400 we each fork a repo and then we submit at the end of the week this is my solution to this
00:36:06.240 mathematical problem how many people are familiar with
00:36:11.520 project euler some of you okay it's a set of a few hundred mathematical problems and the
00:36:17.599 goal is to basically solve them in the most efficient way possible but i can say
00:36:23.599 hey here's my solution and i can see yours go oh yeah mine sucks or maybe we'll have a
00:36:30.160 maybe ours are both equally performing but in different ways and so i'm going to learn a technique from you and you're going to learn technique for me we're
00:36:35.520 going to have a conversation it's not only good for us as individuals but it's good for us
00:36:40.960 together and it's how we start to build that community and keep that community going
00:36:46.640 the other idea in that is to start a book group um it's a little oprish but there's
00:36:52.960 something really great about reading a book like goose or sandy metz's practical object oriented ruby
00:36:58.960 go read it and come together in two weeks and talk about it
00:37:14.240 because ultimately this quote is the point chuck close said this he was a photographer in new york city is a
00:37:20.480 photographer i suppose he's done some amazing work and he speaks quite a bit about inspiration we need to get his
00:37:25.520 inspiration and i first came across this quote because i said i said to a boss i'm just not
00:37:31.839 inspired to work on this project and he looked right in these inspirations for amateurs and he walked away i was like
00:37:37.359 oh so sad and i looked it up later because i thought he was a genius
00:37:43.280 and finally just stole the quote inspirations for amateurs the rest of us just show up and get to work
00:37:50.320 when you do the work you will become ready for when inspiration does strike you
00:37:56.720 if you just sit around waiting for a great idea to write in jruby or how you're going to rework
00:38:03.599 with ruby 2o and rails 4. you're not going to be ready for it
00:38:09.839 you're not going to have the skills to actuate your ideas and most inspiration actually comes from
00:38:16.400 when we are doing something and we start to see these connections between these concrete things because that's how humans learn
00:38:22.960 we know hot things burn us we know that pots are hot ergo
00:38:28.079 pots burn us two concrete things two concrete facts that we know connected by an abstract
00:38:34.079 connection because ultimately
00:38:40.800 that's what it's about humans are the ones that look out and say what's there
00:38:47.359 we're the ones that say yes but what's next where do i go from here
00:38:52.800 what's around the corner what's over that horizon
00:38:58.480 if we just stay in our safe place if we just stay on the shores of our knowledge if we never set set
00:39:04.960 forth and find out are there actually dragons there on the map then we're never
00:39:10.079 really gonna know are we
00:39:15.520 so that's me um it's
00:39:22.160 been fun thank you very much
00:39:58.240 you
Explore all talks recorded at RubyConf 2012
+46