Nice post, and one I agree with wholeheartedly. There’s a lot of serendipity involved in the best kinds of code I’ve ever written. Sometimes it took years before I used a certain skill I picked up, but other times it took mere days or weeks after learning about $NEW_THING that was just the right thing for some problem at work. Sometimes I was faced with a problem and just a day or so later some blog post ends up on my radar that explains some technique that fits exactly with the problem I was having.
Those are the times you can only marvel at how the universe works. It also makes me painfully aware of those times where I was faced with a problem and didn’t learn/must not have learnt exactly the right technique. That’s typically when you struggle the hardest. For a good example of such, I’ve seen colleagues who were unaware of complexity theory struggle with performance. When I offered to help them, it seemed like magic how fast the application then ran just due to a few small tweaks here and there. Same with another colleague who saw a certain UI element disappear (which happened because it was being garbage collected); I told them to assign the object to an instance variable in the class that created them and suddenly they stopped disappearing. MAGIC!
Of course, I would always explain the basic concept to my colleagues so they’d understand why it works that way, but it always leaves me with this eerie feeling that you can never know enough in this business.
I recall someone pointing me at a study a long time ago that looked at people who self-identified as lucky. The biggest correlating factor between them was that they’d taken opportunities when presented. This ties in very well with that: if you have no skills in an area, then you will ignore opportunities in that space. If you have a small amount of skill in the area then you’re in a better position to take an opportunity that would improve those skills. Do that a few times and you have a very broad set of skills and now you’re able to take a lot more opportunities.
I recall someone pointing me at a study a long time ago that looked at people who self-identified as lucky. The biggest correlating factor between them was that they’d taken opportunities when presented.
Did it also look at people who self-identified as unlucky? Because this kind of study would obviously be very susceptible to survivorship bias.
It did, though I don’t remember in detail. One of the interesting things that I do remember is that people who identified as lucky weren’t successful significantly more often, they’d quite often take an opportunity, fail, and move onto the next thing. One of the important things there is the ability to fail, which is probably the best definition of privilege that I’ve seen: the ability to fail and not have it significantly impact your future in a negative way.
Humans expect too much of themselves. The best solitary hunters are animals like lions or peregrine falcons, who only succeed approximately one in five hunts or one in two dives respectively. Even in groups, animals like wild dogs do not succeed on every hunt. Privilege isn’t in failing, or in recovering from failure, but in the unrealistic expectation of unbroken strings of success.
Welcome to lobsters! Generally we suggest that new people submit articles by other people, and comment on other people’s posts, so as not to be mistaken for spammers.
If learning how to learn as a software engineer interests you, Apprenticeship Patterns will also interest you. I recommended it to people near the end of Amazon’s internal program that trains people to become software engineers.
What’s going on? Does learning make something magic happen? It does! Sort of. Not that the stars will suddenly align the right way for us, but knowledge changes how we see the world. It’s like when you travel, come back home and start seeing things a bit differently.
I think curiosity and learning are two of the most powerful general purpose values you can have. Learning is genuinely fun and reminds us to have humility. And as the post says, the additional knowledge unlocks new paths and problem solving techniques in life, and as you wander down those paths at work or in a hobby new learning opportunities appear…
Nice post, and one I agree with wholeheartedly. There’s a lot of serendipity involved in the best kinds of code I’ve ever written. Sometimes it took years before I used a certain skill I picked up, but other times it took mere days or weeks after learning about
$NEW_THING
that was just the right thing for some problem at work. Sometimes I was faced with a problem and just a day or so later some blog post ends up on my radar that explains some technique that fits exactly with the problem I was having.Those are the times you can only marvel at how the universe works. It also makes me painfully aware of those times where I was faced with a problem and didn’t learn/must not have learnt exactly the right technique. That’s typically when you struggle the hardest. For a good example of such, I’ve seen colleagues who were unaware of complexity theory struggle with performance. When I offered to help them, it seemed like magic how fast the application then ran just due to a few small tweaks here and there. Same with another colleague who saw a certain UI element disappear (which happened because it was being garbage collected); I told them to assign the object to an instance variable in the class that created them and suddenly they stopped disappearing. MAGIC!
Of course, I would always explain the basic concept to my colleagues so they’d understand why it works that way, but it always leaves me with this eerie feeling that you can never know enough in this business.
I recall someone pointing me at a study a long time ago that looked at people who self-identified as lucky. The biggest correlating factor between them was that they’d taken opportunities when presented. This ties in very well with that: if you have no skills in an area, then you will ignore opportunities in that space. If you have a small amount of skill in the area then you’re in a better position to take an opportunity that would improve those skills. Do that a few times and you have a very broad set of skills and now you’re able to take a lot more opportunities.
Did it also look at people who self-identified as unlucky? Because this kind of study would obviously be very susceptible to survivorship bias.
It did, though I don’t remember in detail. One of the interesting things that I do remember is that people who identified as lucky weren’t successful significantly more often, they’d quite often take an opportunity, fail, and move onto the next thing. One of the important things there is the ability to fail, which is probably the best definition of privilege that I’ve seen: the ability to fail and not have it significantly impact your future in a negative way.
Humans expect too much of themselves. The best solitary hunters are animals like lions or peregrine falcons, who only succeed approximately one in five hunts or one in two dives respectively. Even in groups, animals like wild dogs do not succeed on every hunt. Privilege isn’t in failing, or in recovering from failure, but in the unrealistic expectation of unbroken strings of success.
Welcome to lobsters! Generally we suggest that new people submit articles by other people, and comment on other people’s posts, so as not to be mistaken for spammers.
Got it! Thanks for letting me know.
I like this post, thank you for sharing it.
If learning how to learn as a software engineer interests you, Apprenticeship Patterns will also interest you. I recommended it to people near the end of Amazon’s internal program that trains people to become software engineers.
I think curiosity and learning are two of the most powerful general purpose values you can have. Learning is genuinely fun and reminds us to have humility. And as the post says, the additional knowledge unlocks new paths and problem solving techniques in life, and as you wander down those paths at work or in a hobby new learning opportunities appear…