rc3.org

Strong opinions, weakly held

Month: July 2012 (page 2 of 2)

What are job interviews for, anyway?

I read two blog posts on Friday that made for an interesting contrast. The first was a post by Mike Loukides arguing that the problem with the economy is not a lack of qualified candidates, but rather a lack of flexibility on the part of employers when it comes to who they hire. The other post I read was by Carlos Bueno on how to get hired at Facebook. He references an earlier post by Steve Yegge on how to get hired at Google.

Not only do the posts from Facebook and Google focus on listing specific skills that engineers they might hire need, but they include skills that engineers will never actually use at work. For example, both of them focus on the need to prepare to program on a whiteboard. I have well over a decade of experience as a software developer, and I’ve never programmed on a whiteboard. I don’t feel particularly uncomfortable with it, but I don’t think it is a clear indication of one’s ability as a software developer.

I don’t worry about how Google and Facebook hire. Their process works well for them, and will continue to, as long as they remain some of the most desirable places in the industry to work. Their method isn’t going to work for your company, though.

For most companies, the way to find stars is to deemphasize skills and to focus on intelligence, attitude, and communication. There are no risk-free hires, and the low risk hires from a skills standpoint often lack creative potential. The skilled, creative people already have great jobs. I can teach a smart person about Big O notation in half an hour. Teaching a poor communicator to be work well with teammates is nearly impossible. Focus on what’s important.

In the end, the excessive focus on skills and experience that seems endemic is hurting more than it’s helping.

Why GitHub matters

Most days I think Git is the worst tool I use, but I don’t feel the same way about GitHub. John Norman explains why GitHub is really important:

Today, the announcement of a new project would happen by a number of means, but the beginnings of the code project would exist at GitHub. GitHub puts the social exchange at the very center. I suspect that GitHub’s servers now contain the world’s largest corpus of commentary around intellectual production. As I see it, the production of code has been wildly accelerated since the advent of the open source model; but the emergence of GitHub has been like throwing gasoline on that fire.

Read the whole thing.

The downside of working on free products

Fred Wilson has a post up today defending companies that have advertising-supported business models. I’m not opposed to free services, I use and enjoy a large number of them. Unlike the majority of users, though, I usually pay when I use a service that offers a paid tier. I pay for Rdio, a Flickr Pro account, a Mlkshk account, and probably others as well.

As a developer (or designer) who’s looking for a job, though, I think that working on advertising-supported products has some real downsides, because doing the right thing for your users and doing the right thing for your advertisers is often in conflict.

Trying to gather more data to offer more value to advertisers rather than customers is not appealing. Figuring out how to design your site so that users see more ads doesn’t sound like fun, either. There are compromises to be made in every business, but to me the compromises involved with balancing the needs of advertisers and end users seem really painful.

The further problem is that nearly all advertising-supported companies start out without a fleshed out revenue model, burning cash and trying to rapidly grow the user base. Then at some point they have to implement a business model, and the changes that necessitates often lead to massive user unhappiness. That’s not a pleasant proposition, either.

There is value in adapting to the world

When I was younger, I was obsessed with the following maxim from George Bernard Shaw’s Maxims for Revolutionists:

The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.

That quote sprung to mind when I read this post by Sam Stephenson where he explains why he doesn’t invest too much effort in his dot files. Here’s the key bit:

What I discovered is that in many cases, my ability to adapt to a foreign environment without frustration is more important than the benefits of configuring a local environment to suit my whims. And that being able to quickly recreate my environment from scratch is an asset.

I fall more into Stephenson’s camp than I do into Shaw’s at this point, at least when it comes to my own tools. As software developers, we are trying to build things that adapt the world to ourselves, but with experience, I find it more and more important not to bind myself too tightly to any particular tool or process.

Skip the organic, read the labels

Today’s New York Times has a long article about organic foods, more specifically, about how the FDA-approved “Certified Organic” designation has been co-opted almost completely by industrial food producers, diluting it to the point of meaninglessness. This does not come as a surprise to me. As soon as “organic” became an adjective that people would pay a premium for, it became inevitable that corporations in the food business would want a piece of the action. Now they’re busily diluting the definition of organic so that they can more easily adapt it to their industrial production methods.

Beyond doing things like going to the farmer’s market and buying food from the producers themselves, I have another trick for buying “whole foods” whether I’m at Whole Foods or any other grocery store. I read the list of ingredients. If it has ingredients that I don’t recognize, or don’t seem to belong in whatever it is that I’m buying, I skip it. Sometimes I wind up buying mass market brands, sometimes high end “organic” foods, and sometimes it’s store brand.

The first time I tried this approach was buying honey mustard. I was shocked to find that most of the honey mustards on the shelf didn’t even contain honey, most of them instead contained high fructose corn syrup and lots of other weird ingredients that I don’t recognize. I finally found a bottle of mustard that had a list of ingredients that included ground mustard, vinegar, and honey, and no strange ingredients we don’t have in the cabinet at home. To get back to mass market brands, French’s Mustard is delightfully simple (and awesome).

I realize that familiar ingredients can be produced in unpleasant ways, but there’s a limit to what can be practically achieved in our modern society. The best favor you can do for yourself if you’re not going to restrict yourself to food you or people you know grew is to stick to reading the labels.

Can you judge someone by their shell prompt?

Tom Ryder on shell prompts:

You can tell a lot about a shell user by looking at their prompt. Most shell users will use whatever the system’s default prompt is for their entire career.

Should we be asking job candidates for their dot files?

What The Well is all about

Veteran Well member Howard Rheingold has a nice piece up about the significance of The Well, which has been around for almost three decades and is looking for a new home now that Salon has put it up for sale. It’s amazing the number of features people take for granted today that were proven on The Well. More importantly, the closeness of the Well community is difficult to accurately describe. It’s amazing to see long lost members returning over the past couple of weeks to offer help or just to reacquaint themselves. For what it’s worth, I think that the two current communities that are most like the Well are Reddit and Metafilter.

The leap second bug

Nelson Minar has a nice, short writeup of the Linux kernel bug that caused servers to spin out of control yesterday. Most initial write-ups blamed Java, but that was incorrect. Interestingly, Java not only accounts for leap seconds, but also mentions them prominently in the documentation for the java.util.Date class:

Although the Date class is intended to reflect coordinated universal time (UTC), it may not do so exactly, depending on the host environment of the Java Virtual Machine. Nearly all modern operating systems assume that 1 day = 24 × 60 × 60 = 86400 seconds in all cases. In UTC, however, about once every year or two there is an extra second, called a “leap second.” The leap second is always added as the last second of the day, and always on December 31 or June 30. For example, the last minute of the year 1995 was 61 seconds long, thanks to an added leap second. Most computer clocks are not accurate enough to be able to reflect the leap-second distinction.

As Nelson notes, time is complicated. Further evidence of this fact is provided in Noah Sussman’s post Falsehoods programmers believe about time and his followup.

Newer posts

© 2024 rc3.org

Theme by Anders NorenUp ↑