The Boring Rule

The Boring Rule: When the writer is bored, the reader will be bored.

Recently Read Books

A few good books I’ve read.

Is it a good idea to write when you don’t feel like writing? Probably not.

When I ignored the “boring rule” in some of my earliest posts, my writing felt unsatisfactory. I wanted to publish content for the sake of publishing, not because I had something interesting to share. There are enough Buzzfeeds in the world already.

It turns out that I write best when I’m enthusiastic about my subject. Remember, when the writer is bored, the reader will be bored. I would caution against directly publishing any piece the writer finds uninteresting. Revise it or leave it in your notebook.

Posted in Psychology | Tagged , | 1 Comment

The Lindy Effect

How can we predict how long an idea, technology, or tradition will remain relevant? One heuristic is the Lindy Effect (also known as Lindy’s Law):

The longer a thing is around, the longer it will stay around.

Here are two models: a cat and a book.

Assume when a cat is born, it has a life expectancy of 20 years. As it ages, its life expectancy may increase a little bit, but not much. A cat will not live twice as long as its expected lifespan.

Contrast a cat with a book. If a book has been in print for one year, it will likely be in print for another year. But if a book has been in print for two years, its will probably stay in print for four years. As a book ages, its expected lifespan increases!

Lindy's Deli in New York, where the Lindy Effect was conceived.

Lindy’s Deli in New York, where the Lindy Effect was conceived.

The Lindy Effect usually applies to less-tangible things concepts ranging from ideas, companies, works of literature, traditions, and many others. The principle works because time is one of the best testers of fragility. If a concept is old, it must have endured many stressors.

The Lindy Effect reminds us not to succumb to neomania–new is not always better. Asbestos and trans fats were once heralded as successes of the 20th century, but now we’ve discovered they both cause cancer.

Never use the Lindy Effect when a situation requires high precision. A rule of thumb is not an ultra-precise measuring tool. There are technologies, such as the Internet, that will probably last much longer than twice their current lifetime. If you knew nothing else except the age of a technology, you could use the Lindy Effect to get a rough estimate for its total lifetime.


What types of things do you think the Lindy affect applies to?

Posted in Psychology | Tagged , , , | 3 Comments

CS Internship Guide #10: Thank You Notes

Part of the CS Internship Guide


Thank You Notes

Should you send a thank-you note after an internship interview? And if so, how should it look?

Views may vary from company to company, but I think that most tech recruiters don’t care about thank you notes. By the time the interview is over, the recruiter will already know whether to mark you down as “hire” or “no hire,” and a thank you note is unlikely to change that.

I have sent thank you notes after a few interviews, and I don’t think they changed anything. Maybe the note would be more effective if you’re dealing with a non-technical 50-year old HR professional. But when you’re talking to a 28-year old engineer who wears a sweatshirt and flip flops, they’re going to see your note as noise in the system.

Though you may not send a thank you message, get an email address before you leave the interview site. You’ll need a contact to send a follow up email in a week or two. When it’s time to ask the interviewer questions at the end of your interview, consider asking for their email address or business card. If they’re an engineer, they may not have authority in the hiring process and can’t help much. If they’re HR, they usually love to share their business card and can give you more insight into your status in the pipeline.

Once again, a thank you note is unnecessary in most situations. If you really want to write a thank you note, keep it brief. It’s even better if you can mention something interesting about your interview. Double check for spelling mistakes and send it via email.

Jason,

Thanks for inviting me to your office for an internship interview. I’m glad you use a ton of Java, since it’s my favorite language. Once again, I appreciate you taking the time to interview me.

Sincerely,

Sheldon


Do you think CS internship candidates should send thank you notes after an interview? Why or why not?

Posted in CS Internship Guide, Software | Tagged , , , , | 1 Comment

Coding Style: Chained If Statements

What should you do when you have several if statements in a row? Some people like to nest if statements like this:

foo = 0;
if (x)
{
    // Do work
    …
    if (y)
    {
        // More work
        …
        if (z)
        {
            // Final calculation
            …
            foo = x + y + z;
        }
    }
}

return foo;

Others prefer to check conditions one after another, like this:

foo = 0;

if (!x)
{
    return foo;
}

// Do work
…
if (!y)
{
    return foo;
}

// More work
…
if (!z)
{
    return foo;
}

// Final calculation
…
return x + y + z;

I prefer the second method. Nesting if statements can get confusing; the second style looks cleaner and tells the reader immediately when they can return. I also feel that the second style is more concise. It helps keep code within an 80-character width limit.

Some programmers might argue that the second style leads to duplication of code (“return foo” is copied three times). However, if that fragment (“return foo”) becomes complex, it could be moved to a separate method and called three times. I think that’s a fair price to pay for readability. After all, the compiler will optimize both styles into the same machine code.

Which style do you prefer, and why?

Posted in Software | Tagged | Leave a comment

How to make sure no one builds your million-dollar app

No one wants to steal your idea

It seems like everyone these days has a million-dollar app idea. They search for a group of developers on the Internet and say something like this:

I need a developer to make a mobile app. Message me for details.

This is the best way to make sure no one builds your million-dollar app, because no developer will build it at all! Are you going to tell us what you want to build? What technologies you’re using? Compensation? And don’t get me started on all the people that only want to pay in equity and force devs to sign non-disclosure agreements before even mentioning what the “million-dollar idea” is.

Ideas are cheap, execution is expensive. Developers are in high demand right now, why would we want to devote hundreds of hours into your project? Students are busy preparing for internships, and software engineers have tons of responsibilities. Why should we help you “for the experience?”

The Right Way

Read the UTCS guide to job offerings. Even if you’re not talking to UT computer science students, these guidelines will help when communicating with any group of developers. You don’t need to provide a corporation-length description, just provide a few basic details:

  • DO research your idea and its feasibility
  • DO talk about your company and how it relates to the project
  • DO use details when describing your app/website/product/service
  • DO list compensation
  • DON’T demand candidates to sign an NDA
  • DON’T expect anyone to work for free or only for equity
  • DON’T expect any software project to be completed in a weekend

Here’s an example of a better offering:

Hi, I’m the co-founder of DogDay, a startup that’s like uber for pets, except we bring pets to the users to play with. Currently, we have a UX engineer/frontend developer, and we’re in the process of building our minimum viable product, an iPhone app. We’re looking to hire a dev (10-20 hrs/week) to work on our backend with a target release date about three months from now. Compensation is $30/hr or more based on experience. We use Swift and Parse, though this may change in the coming months. Shoot me a message at bob@smith.com if you’re interested!

This poster gets major points for being open about his idea. It’s obvious what his company does, and he provided a decent level of detail–it’s not just an idea the poster thought up an hour ago. Even better, the poster has realistic expectations of a time and compensation commitments.

Now that you know why one-line job postings suck, you can recruit developers for your project.

What do you like to see in a job offering?

Posted in Software, Startup | Tagged , , , , , , , | 3 Comments