Tag Archives: programmers

Simple problems, Ray Allens’ letter and practice

  • The most complicated simple problems  – a nice little article on how problems that appear simple on the surface can be quite complicated. A lot of these complications don’t have anything to do with the problems themselves, but with the availability of data, our ability to process available information and most importantly our inability to know whether or not we have all the data that we need. My most favorite quote from the article was:

It’s hard to know the difference between incentives and motivations. Here’s the simple difference: Mark Zuckerberg in the early days of Facebook was motivated. The Wells Fargo employees who opened fake accounts to meet their targets were incentivized. Both worked on a system of, “If I do X, I’ll be rewarded with Y.” But one wanted to earn the reward – it was like an emotional mission for a cause larger than himself – while the other only wanted (or needed) to get the reward. Without hindsight it can be hard to tell which is which.

  • Letter to my younger self – Ray Allen, a former ten-time all-star NBA player and two time champion writes a letter to his 13 year old self. This is one of the most inspiring pieces of writing that I have read in the recent times. There are too many amazing lines to quote here, however, my most favorite part comes towards the end:

When you walk in the door, the receptionist looks at you and says, “Ray? What … what are you doing here?”

“I couldn’t sleep.”

“But … you just won the title.”

“Yeah, I just wanted to get out of the house.”

“But … it’s eight in the morning. And you just won the title.”

“Well, I still got some work to be done on this tooth. Is he in?”

Your dentist walks out of his office.

“Ray? What are you … what?”

“Couldn’t sleep.”

This is what success looks like for you. You’re the kind of guy who goes to the dentist the morning after winning an NBA title.

I know, man.

I know.

But in order to achieve your dreams, you will become a different kind of person. You’ll become a bit obsessive about your routine. This will come at a heavy cost to some of your friends and family.

Most nights, you won’t go out. Your friends will ask why. You won’t drink alcohol, ever. People will look at you funny. When you get to the NBA, you won’t always play cards with the boys. Some people will assume you’re not being a good teammate. You’ll even have to put your family on the back-burner for your job.

Most of the time, you will be alone.

That won’t make you the most popular person. Some people simply won’t understand. Is the cost worth it?

Only you can answer that.

Who am I supposed to be?

Tomorrow when you get off that school bus in South Carolina, you’ll have to choose.

Every day for the rest of your life, you’ll have to choose.

Do you want to fit in, or do you want to embark on the lonely pursuit of greatness?

I write this to you today as a 41-year-old man who is retiring from the game. I write to you as a man who is completely at peace with himself.

….

Get your work in, young fella.

Most people will never really get to know the real you. But they’ll know your work.

There’s one discipline they all share as well, which appears only in varying degrees in the earlier levels: Without exception, they possess a very deep and intimate knowledge of their tools. Be it the editor, the compiler, or the framework, they know the ins and outs of its features and they navigate efficiently. They use a much wider array of features because they know exactly how the tools work.

Knowledge of tools, coupled with an extensive, tested palette of programming techniques, and the ability to remember large amounts of the code base, while relating low-level details to the whole with unconscious ease — these are the traits I see most often in great programmers. And they’re the skills I continue to aspire to in my work.

Particularly, the ability to remember a significant section of the code base while keeping track of low-level details really does separate great programmers from the rest. Funnily, the current trend of asking generic problem-solving questions doesn’t really test for this trait. We, as an industry continue to do this because that’s what everybody is doing(so I don’t really have to put thought into the process and blindly follow)  and more importantly we think we are ‘measuring performance‘ and have a ‘scale‘ and are ‘being objective‘, so this process is better. (I’m guilty of asking these problem-solving questions and making a decision when I interview people, but I have never been completely convinced or comfortable with it. This is something I’m going to re-evaluate and change myself)