DEV Community

Itamar Turner-Trauring
Itamar Turner-Trauring

Posted on • Originally published at on

Enthusiasts vs. Pragmatists: two types of programmers and how they fail

Do you love programming for its own sake, or do you do for the outcomes it allows? Depending on which describes you best you will face different problems in your career as a software developer.

Enthusiasts code out of love. If you’re an enthusiast you’d write software just for fun, but one day you discovered your hobby could also be your career, and now you get paid to do what you love.

Pragmatists may enjoy coding, but they do it for the outcomes. If you’re a pragmatist, you write software because it’s a good career, or for what it enables you to do and build.

There’s nothing inherently good or bad about either, and obviously this is just a simplification. But understanding your own starting point can help you understand and avoid some of the problems you might encounter in your career.

In this post I will cover:

  1. Why many companies prefer to hire enthusiasts.
  2. The career problems facing enthusiasts, and how they can solve them.
  3. The career problems facing pragmatists, and how they can solve them.

Why companies prefer hiring enthusiasts

Before we move on to specific career problems you might face, it’s worth looking at the bigger picture: the hiring and work environment.

Many companies prefer to hire enthusiast programmers: from the way they screen candidates to the way they advertise jobs, they try to hire people who care about the technology for its own sake. From an employer’s point of view, enthusiasts have a number of advantages:

  1. In a rapidly changing environment, they’re more likely to keep up with the latest technologies. Even better, they’re more likely to do so in their free time, which means the company can spend less on training.
  2. Since they’d write software for free, it’s easier to pay enthusiasts less money.
  3. It’s also easier to get enthusiasts to work long hours.
  4. Finally, since enthusiasts care more about the technical challenge than the goals of the product, they’re less likely to choose their work based on ethical or moral judgments.

But while many companies prefer enthusiasts, this isn’t always in the best interest of either side, as we’ll see next.

The career problems facing enthusiasts

So let’s say you’re an enthusiast. Here are some of the career problems you might face; not everyone will have all these problems, but it’s worth paying attention to see if you’re suffering from one or more of them.

1. Exploitation

As I alluded to above, companies like enthusiasts because they’re worse negotiators.

If you love what you do you’ll accept less money, you’ll work long hours, and you’ll ask less questions. This can cause you problems in the long run:

So even if you code for fun, you should still learn how to negotiate, if only out of self-defense.

2. Being less effective as an employee

Matt Dupree has an excellent writeup about why being an enthusiast can make you a worse worker; I don’t want to repeat his well-stated points here.Here are some additional ways in which enthusiasm can make you worse at your job:

  • Shiny Object Syndrome: As an enthusiast it’s easy to choose a trendy technology or technique for your work because you want to play with it, not because it’s actually necessary in your situation. The most egregious example I’ve seen in recent years is microservices, where an organizational pattern designed for products with hundreds of programmers is being applied by teams with just a handful of developers.
  • Writing code instead of solving problems: If you enjoy writing code for its own sake, it’s tempting to write more code just because it’s fun. Productivity as a programmer, however, comes from solving problems with as little work as needed.

3. Work vs. art

Finally, as an enthusiast you might face a constant sense of frustration.As an enthusiast, you want to write software for fun: solve interesting problems, write quality code, fine-tune your work until it’s beautiful.

But a work environment is all about outcomes, not about craft. And that means a constant pressure to compromise your artistic standards, a constant need to work on things that aren’t fun, and a constant need to finish things on time, rather than when you’re ready.

So unless you want to become a pragmatist, you might want to get back more time for yourself, time where you can write code however you like.You could, for example, negotiate a 3-day weekend.

The career problems facing pragmatists

Pragmatists face the opposite set of problems; again, not all pragmatists will have all of these problems, but you should keep your eye out to see if they’re affecting you.

1. It’s harder to find a job

Since many companies actively seek out enthusiasts, finding a job as a pragmatist can be somewhat harder. Here are some things you can do to work around this:

  • Actively seek out companies that talk about work/life balance.
  • When interviewing, amplify your enthusiasm for technology beyond what it actually is. After all, you will learn what you need to to get the results you want, right?
  • Demonstrate the ways in which pragmatism actually makes you a more valuable employee.

2. You need to actively keep your skills up

Since you don’t care about technology for technology’s sake, it can be easy to let your skills get out of date, especially if you work for a company that doesn’t invest in training. To avoid this:

3. Pressure to work long hours

Finally, you will often encounter pressure both from management and—indirectly—from enthusiast peers to work long hours. Just remember that working long hours is bad for you and your boss (even if they don’t realize it).

Programmer, know thyself

So are you an enthusiast or a pragmatist?

These are not exclusive categories, nor will they stay frozen with time—these days I’m more of a pragmatist, but I used to be more of an enthusiast—but there is a difference in attitudes. And that difference will lead to different choices, and different problems.

Once you know who you are, you can figure out what you want—and avoid the inevitable obstacles along the way.

We all make mistakes, and I’ve got 20 years’ worth: from code that crashed production every night at 4AM, to accepting a preposterously bad job offer.

Every painful failure taught me a lesson—but only after it was too late.

You can do better! Join 2900 other programmers, and every week you’ll learn how to avoid another of my mistakes.

Top comments (12)

cfecherolle profile image
Cécile Fécherolle • Edited

Intetesting, for once we get to see the other side in an article which does not put pragmatism to the background. I wanted to read but the link seems broken :/

itamarst profile image
Itamar Turner-Trauring

Oops, fixed the link. Try now.

cfecherolle profile image
Cécile Fécherolle

Fixed! Thanks :)

rhymes profile image

these days I’m more of a pragmatist, but I used to be more of an enthusiast

Same here! I think it also has something to do with age and experience, especially if you're a "used to be entusiast". Being a pragmatist also doesn't mean you can't enjoy your work, you might even enjoy it even more because you know when to say no

jenc profile image
Jen Chan • Edited

Hey thanks for writing this!. I hear about this dichotomy a lot but I’ve never understood how people can be strictly one camp or another. I somehow believe anyone who codes has to enjoy it at least a little bit.

I guess I’m in both boats. I got interested in programming because of art, and I want to make my ideas more independently and without hiring programmers, so that makes me a pragmatist. While it’s magical and lovely how compilers, requests, servers, and computers work, to get anywhere in a project I’ve always focused on the visual/experiential result... without thinking about standards. And because standards and robustness is my downfall I decided to get whipped into rigor by getting a job in tech... though kind of burned by it now. I am really starting to probe at how I want programming to be in my life. Obviously I wanted it for work to get better at it, but I would absolutely have more fun just making silly animations and websites... now next how do I just get into a position to sustain my doing of that lol

jorgealvarez profile image
Jorge Alvarez

Excellent article.

I think experience will lead you to pragmatism. That's inevitable and a good sign because it means you are not stalling at your career and you are learning and improving.

But I also think that you can wear one hat or the other based on the work you are doing.

If you work for a company being pragmatic is the right thing to do, always. Things like time-to-market, competitors, client requests are really important and a good-enough solution deployed in 2 months is better than a perfect solution deployed in 6 months. It's not going to be perfect, anyway and with the first approach you have 4 months to improve something that's already being used receiving actual feedback. If you are not pragmatic you are costing money to your company.

On the other hand if you work for open source projects most of the constraints of working for a company disappear and it's the perfect place to let your enthusiast-self free.

itamarst profile image
Itamar Turner-Trauring

The danger with being an enthusiast on an open source project with users is that you stop caring about the users and just care about having fun, and people suddenly get massive amount of work because new API is fun for you but not backwards compatible for them.

So you need to make sure upfront to tell people whether you're doing open source for fun, or to help users. The former is perfectly fine as long as it's communicated up front.

itamarst profile image
Itamar Turner-Trauring

Not my experience, since at past few jobs I've worked at startups doing cutting-edge work, with less than 40 hours a week, and with lots of flexibility. And at this point I'm definitely a pragmatist.

rachelsoderberg profile image
Rachel Soderberg • Edited

I'm somewhere in between, I think. I enjoy the heck out of programming, but I also ended up where I am because it's a good career (my "twenty year old me" plan was game development but "thirty year old me" is not willing to work the long hours and have the frantic pre-release meltdowns).

I don't write very much code in my spare time but I do mull over problems and have aha-moments in the shower on a regular basis (and I read technical books every single day). I am fond of whatever code I'm asked to write at work, regardless of how simple or non-impactful it might seem, and wouldn't trade it for anything.

eichgi profile image

Excellent post, I've been thinking about this concepts for a while and now I can label them. I use to be an enthusiast while learning and pragmatic when I work!