Why waste time?

2 points by dnoberon ↗ HN
I'm frustrated and I feel like I'm in a position that other, more experienced and talented, developers have probably gone through. I'm hoping that someone has a "magic bullet" answer for me, though I'm starting to think that there isn't one.

Right now, when I have an idea for a tool or library - something that would make my job easier, or just be generally useful - I almost instantly find someone that has done it. Most times more than one person, and most times more than one person who has done it better than I feel like I could. After going through this cycle a few times I'm getting a little disheartened.

Why waste time building something that someone has already done better?

6 comments

[ 2.6 ms ] story [ 32.4 ms ] thread
If you learn from doing it and enjoy the experience, it's not a waste of time. And if you work at your craft long enough, eventually you'll be the person who can do it better than other people can. But that doesn't come quickly or easily.

For inspiration, read Peter Norvig's article, "Teach Yourself Programming in Ten Years":

https://www.norvig.com/21-days.html

In particular, see the paragraph that begins with: "The best kind of learning is learning by doing."

(Norvig has had a long career in computer science, and is currently a research director at Google.)

Also, if you build a tool for yourself that makes your job easier, it will be a lot easier to customize it to your needs than a tool built by other people, who have different priorities.

I loved that article. Thanks for your response - I did like the bit about customization a lot. It makes special sense in a work environment in which you might not want to introduce a third party dependency I guess
Nothing's perfect.

> Why waste time building something that someone has already done better?

That's merely your opinion. Why did you discount your potential users/customers opinions?

I guess the "perfect" way to build something better is to build it for ourselves first (scratching our own itches, so they said) & the rest will be history. Yes, easier to be said than done.

The post was pretty self-deprecating for sure. I didn't even think about the opinions of other people, or customers, in building a tool. A hiccup in a tool or library that I can live with or understand, might not be acceptable to another party. Thanks :)
Don't. Use the existing library to build the thing that you thought it would be useful for in the first place. Stand on the shoulders of giants and appreciate the time you saved by not having to cut down a tree and whittle a ladder yourself.
Excellent point. I was talking about this to a friend of mine - he has a coworker who calls this type of thing "developer traps". Talked about using the tool and moving on, eventually finding something that someone hasn't done or that you do feel you can do better