Featured Articles
Featured Jokes-Humor
Partners
(2.0)
5 Votes
There are some parallels here with finding great programmers. You want people who are smart, and also who have common sense (both the regular kind, and the software kind.) Smarts and common sense are equivalent to being in good shape, and perhaps having good reflexes.
But football -- well, if you know anything about American football, you'll know that it's a pretty rich sport. It's more like playing chess than playing soccer. It has elaborate rules; simply knowing the edge-case rules in the NFL rule book is a significant feat. It also has elaborate plays with amazing complexity and diversity, even though it just looks like guys hitting each other for 10 seconds at a time. And football has traditions, uniforms, statistics, all kinds of different coaching roles, referee organizations, tournaments and championships, aftermarket products, games and video games, specialized recruiters, specialized announcers... Football is a way of life.
So for that cornerback we need, is it good enough for him to be in good shape? Hardly. Maybe it's sufficient for a position on a high-school junior-varsity team, but Amazon's supposed to be more like the NFL than high school J.V., isn't it? I think so.
We hire for smarts and for skills. Well, we try, anyway. Sometimes, in a pinch, we'll settle for one or the other. Our hiring philosophy is that if someone is smart and motivated, then they should be able to make up for any particular skills they might be lacking, provided they have "enough" of the basic skills according to some ill-defined but hopefully intuitive heuristic.
As it happens, we don't get much time on the job to improve our skills. For the most part, it's up to us, as engineers, to take our own training into our own hands. Yes, there's some training, and there's some mentoring, and there are book club discussions and so on. But in the NFL, people practice daily. That's what practicing is all about -- doing things repeatedly, daily, habitually, to get better as fast as possible.
I doubt we or any company is likely to set up organized daily practice for their engineers. In fact I personally don't think it should be necessary. The most important thing you learn in college is how to learn on your own. They teach you how to research, and how to apply the scientific method and question your own findings, and they give you the fundamentals of math/language/social sciences/etc., so that when you want to learn something, you know how to figure it out for yourself.
Unlike the NFL, programming is a profession for which practicing is usually most effective if you do it alone, or at most with one other person. It requires quiet concentration and deep thinking, and you absolutely must solve the problems yourself, rather than just seeing the solution done for you. So even if we wanted to set up organized daily practice, most of it would be spent reading or programming quietly.
In a nutshell: if you're a programmer, you need to take matters into your own hands, and train yourself.
Programming happens to be a discipline in which you can squeeze practice drills into nooks and crannies in your schedule; you don't need to get into uniform and allocate a 3-hour session for it. That's why I'm offering you these practice drills. It's so you can practice the things you need to be good at in order to play on an NFL-quality servware development team.
What it Takes to be a Programmer
Standalone Programmer
Programming: Education Vs Experience
Start Developing Your Own Software
Recipe For A Successful Programmer
IT Programming: Smarts vs. Skills
Why study programming?
How to be a Programmer?
Why is computer programming fun?
Programmer to learn how to become a better coder
What it Takes to be a Programmer
Standalone Programmer
DataGridView Columns .NET 2.0 assembly
Make Documenting Your Software Easier Than Ever Before
IT Programming: Smarts vs. Skills
How to be a Programmer?
Web Development in Visual Studio.NET with ASP.NET
The Many Faces of a Developer
Small ISVs: You need Developers, not Programmers
Are Programmers Engineers?