Tuesday’s Top Four Tech Reads
Read HackerNoon.com today:
- “The Influencer’s Dilemma” by Nir Kabessa, Noam Levenson and Vernon Johnson [22 min read]
- “One secret to becoming a great software engineer: read code” by Nemil Dalal [10 min read]
- “How to hire the best developers” by David Gilbertson [18 min read]
- “How to prevent embarrassment in AI” by Cassie Kozyrkov [5 min read]
- Read more top tech stories and latest tech stories.
Hacker Noon Excerpts:
“The Influencer’s Dilemma” by Nir Kabessa, Noam Levenson and Vernon Johnson [22 min read]
Imagine two Miami club promoters, Brett and Vegas, have 10,000 Instagram followers each and are competing for the attention of partygoers. Since their businesses strongly depend on social metrics, each of them would gain from having more followers than the other (+2) and would lose from having less (-2). Every day they must choose: work hard attracting real followers the good old fashioned way –or– work hard and buy fake followers. This is outlined in a payoff metric below.
If neither of them buys fake followers, they’re about as happy as before, with probably an equal amount of followers between them (1,1). Fake followers aren’t as valuable as real ones, but they’re cheaper social capital, especially if most users haven’t caught on yet. Both Vegas and Brett know that whoever starts buying fake followers first will have more followers and a higher perceived social status. At some point, Brett moves first and gets fake followers (-2, 2). From that point, every day that Troy doesn’t also start buying fake followers leaves him further behind, pressuring him to do the same now that the new average for promoters is slightly more than 10,000 followers. As Troy catches up, the norm continues to increase, pushing Brett to up his use as well. Before long, they’ll find themselves in an equilibrium state of follower inflation. This is like the classic prisoner’s dilemma where both players take a worse outcome in order to make sure they don’t get totally screwed. But this case is a multi-round game, meaning influencers have to make this decision daily and may lag further behind, increasing their losses and the overall effect.
You can imagine this at a massive scale:
One influencer buys fake followers → the average follower count goes up → other influencers need to buy to catch up → count increases again → more influencers buy more fake followers → and so on. Before you know it, anything less than a million followers is just not important enough.
( To clarify, “fake” here can mean all different ways one can acquire social capital, not necessarily buying them. This is just one example. Also, this doesn’t apply solely to ‘followers’, but can be likes, comments, streams, votes, shares, retweets, etc.).
If nothing is done to make it harder to create fake activity or easier to spot it, this inflation continues to drive out good social capital and quality content, which becomes increasingly less worth spending time on. No one wants to spend 3 hours crafting a great story to gain 100 users when the new average is 1 million. So the influencer’s dilemma is between 1: being ‘honest’ while risking falling behind and 2: debasing everyone’s social capital (including their own) to get ahead. If they play out the game in their minds, buying fake followers as soon as possible seems like the only logical choice.
“One secret to becoming a great software engineer: read code” by Nemil Dalal [10 min read]
Great writers are a function of the writers they’ve read. Think of Joan Didion, who typed out Hemingway’s sentences at 16, so she could learn how sentences work. Or think of Abraham Lincoln, whose later lyricism sprung from his beloved King James Bible.
Similarly, seeing diverse coding practices lets you expand your palette when it comes time to write your own code. Reading others’ code exposes you to new language functionality and different coding styles.
Reading your dependencies will make you a more productive programmer. You’ll know the full functionality your dependencies offer. You’ll know exactly how they work and what tradeoffs they’re making. You’ll know where to debug when things go wrong.
Being comfortable reading code also reduces the likelihood that you’ll overly favor your code. The more you read, the more comfortable you’ll feel augmenting someone else’s code, rather than building your own. This change will reduce the likelihood you’ll be bitten by the “not invented here” syndrome.
“How to hire the best developers” by David Gilbertson [18 min read]
I once had a phone interview with Facebook. I prepared by Googling “facebook interview questions” and was amazed to discover that the questions I found were exactly the questions I then got asked in the interview. “What’s the difference between call and apply”, “explain event delegation”, and other such nonsense that millions of excellent developers wouldn’t know, but could learn in an afternoon.
I like to casually sidle up to other developers and whisper-ask them what the difference is between a statement and an expression, or a method and a function. I think some people would be astounded to know that there are experienced developers who shrug their shoulders at such questions.
I’m quite sure that if you try this yourself, the more people you ask, the more you’ll begin to doubt the relevance of quiz questions in the interview process.
(It’s funny how hard it is to imagine that people can get around not knowing the things that you’ve known for a long time. I mean, can there really be people that don’t know what a German Shepherd is? Is there really someone who is right now googling “german shepherd” and exclaiming ooooooh, it’s a dog!)
The obvious retort to the above is that “Facebook is doing just fine” and that’s worth thinking about some more. Because you can miss out on hiring the best developers, wind up with the theoretical runners up, and never know what you’re missing. Things will appear to be going just fine. It’s like code that fails silently out in the wild, you may never know.
“How to prevent embarrassment in AI” by Cassie Kozyrkov [5 min read]
Wise product managers and designers might save your skin by seeing some issues coming a mile off and helping you cook a preventative fix into your production code. Unfortunately, AI systems are complex and your team usually won’t think of everything.
There will be nasty surprises that force you into reactive mode.
Real life is like that too. I’m meticulous when planning my vacations, but I didn’t consider the possibility that I’d miss my train to Rome thanks to a hospital tour sponsored by shellfish poisoning. True story. It taught college-age me never to repeat the words “I’ve thought of everything.”
When the unexpected rears its ugly head, the best we can hope for is infrastructure to that reduces the burden of reacting effectively. Let’s talk about building that infrastructure for AI.
Read more top tech stories and latest tech stories.