Building Tesla Coils in the Garage

“The time for jacking around with Tesla coils and ball lighting in the garage is over.”
-From the sci-fi movie, Primer

Many people get into software development because it’s fun. They start programming or web applications or how to get the computer to do interesting things, and the learning begins to grow from there. It’s also a well-paying career, so many people make the transition from hobbyist to professional.

But the job usually isn’t as fun as the hobby, for reasons that are already stated in your average Dilbert comic strip. As such, many software developers continue to do their own side projects in their spare time (at least, developers who chose their career from their preexisting interest, instead of choosing their career as an alternative to accounting or dentistry.) Much of the open source movement is powered by this phenomena: the collective work of developers who have an itch to scratch and a desire to share their creations.

But if you look at many of these projects, most of them aren’t anything new or groundbreaking. Most of them are reworkings of already existing pieces of software, perhaps written in another language or for a different platform. I call these projects “building Tesla coils in the garage”; they are fun and cool and braggable, but ultimately nothing new and not very practical.

This isn’t always a bad thing. Providing open source alternatives is selfless and important. Recreating familiar programs can be good programming practice when learning a new language.

But this is also not always a good thing. How many of these projects are interesting or useful? You can evade the question by saying it is “just for fun”. But the world does not need another Tetris clone or Sudoku solver or thumbnail image gallery (BOCTAOE: but of course, there are obvious exceptions). These projects are fairly mundane and simple, so an individual developer can create Yet Another BLANK piece of software in a weekend. What is produced usually isn’t any better than what is already out there, because the individual developer is just scratching their own itch without regards for the requirements that other people might need.

Not every bit of software written needs to have practical value or a profitable return on investment. But the problem lies in the opportunity costs. These developers are reinventing the wheel instead of inventing new modes of transport.

This is a tough thing to do. Not only because coming up with something that is both original and useful difficult, but because it requires so much of the tedious work that makes software developer jobs not as fun as software developer hobbies: researching what is already out there, writing documentation, fixing UI or cosmetic bugs, etc. It is also much more fun to write new code than read someone else’s code, which explains why many people are much more willing to start new projects instead of joining already existing ones.

It helps to sit down and think about what the hard problems in software and computer science are, and why we aren’t working on them.

I have a couple reasons why I want to bring this Tesla coil-building to people’s attention. First, because I hate fun and am a bit of a workaholic (or at least some friends have confided to me). I obsess over creating works of impact.

But second, because I realized that I only have so many spare hours per week and that amount will only decrease in the future. Many of the little bits of software I’ve created over the years have been lost to disk drive crashes or simply forgotten over time. They filled a certain niche for me for a time, but in the end were just small and easily forgotten notches in my programmer belt. They served their purpose solving a problem I had, but I wonder how many of those problems could have been avoided or ignored in the first place.

My advice to other software developers: ignore the temptation to dive in and start writing code when an idea for a new project comes. Make a good faith attempt to find and use (or extend) what is already out there. That Tesla coil may look impressive when you first built it, but eventually it will just end up collecting dust in that garage.

3 Responses to “Building Tesla Coils in the Garage”

  1. Dmitri Says:

    There’s some truth to your post, but I find that I do in fact write a lot of code in ‘personal’ projects in the hope that somebody uses it. Sites like CodePlex track downloads and, even though precisely 0 people leave comments (on average), I know how many are running my little programs. That said, I’m trying to nudge the situation in the direction of other people implementing my ideas, because I seem to have more ideas than time. :)

  2. Cairin Says:

    Why hello. I just stumbled onto your video refuting the Earth being 6000 years old. So I came to check out your site and I am so exited to see you talking about building Tesla’s coils in garages!!!! :)
    I’m kinda new to pirating, atheism, and i’ve been learning so much stuff in the past 6 months or so. i love science, and you present it well. we should talk more. send an e-mail plz!

  3. Cairin Says:

    oh mai… oops lol i didn’t even read this the whole way through. u have a good point. it is kinda copying. but your talking about software. i am talking about Tesla. i just know that we need to convert all the cars to run on water with the fuel cell. playing with lightning is a fun experiment but we have practical uses for this technology and nobody really knows about it, or they want to fight it. why don’t they stop fighting and just stop using gasoline? it is practical, if we just used it on a larger scale and if people actually did it correctly. It’s maddening! anywho…
    this rant would probably be better suited to my boyfriend who knows programming. i am just an enduser, learning whats out there. i don’t know crap about the insides of a computer or codes or anything.

Leave a Reply

free blog themes