Live data from Hacker News

Do you strive to understand your tools, or simply “make it work”?

kylewritescode.com

1–10 of 44 posts

Re: Do you strive to understand your tools, or simply “make it work”?

#2
For me, it depends on the tool. If I think the tool is internally cohesive, and the underlying reasons for its behavior are sound, I'll learn about them it and try to figure out its behavior.

If I think the tool is a sloppy stack of hacks, I don't care how it works --- I actively avoid the nightmare. I don't want to spend my time figuring out which bad decisions, bugs, and corner cases made it behave in a certain way.

Re: Do you strive to understand your tools, or simply “make it work”?

#3
A lot of time these two options go hand in hand.

That said, a lot of the tools I use at work are built by myself or my team. I trust them, so "making it work" is enough for me, especially because I don't always have the time to understand everything 100%.

If I'm doing something as a hobby, I try to understand it, because time isn't really a factor there, and that's the fun part, right?

Re: Do you strive to understand your tools, or simply “make it work”?

#4
I dig as deep as necessary to make things work cleanly, and generally no deeper. (The exception is innately fascinating topics, like compilers.) I can't stand kludging around aimlessly until things work, but I can't read the source of every library, either.

At the moment, I'm trying to build a drop-in blog engine for Rails 3.1, which involves reading a fair amount of source code. But I need to wrap this up today and start on a different client project tomorrow, so I can't afford to dive too deeply.

Re: Do you strive to understand your tools, or simply “make it work”?

#6
I ussually make it work first, then slowly begin to understand the tools through working with them.

I'm of the school that in many things, if you have to teach someone how to use it, you've done it wrong. Let the user learn by doing.

Probably can't apply to everything, but we should work as had as we can to try to get there.

Re: Do you strive to understand your tools, or simply “make it work”?

#7
You can ask these same questions about a lot of things we use every day. Do you have deep knowledge of how your car works, or just a superficial understanding of the basics to keep it running? How about your refrigerator? Household plumbing? Your computer? And how deep is "superficial"?

Another question to ask yourself is, "If it breaks, could you fix it?" And what is fixing it? Swapping parts, fiddling with function params, without knowing exactly what went wrong at a deep level? Paying someone to fix it for you? Is it "understanding" to know whom to pay for what repair?

I believe it is possible to have a thorough understanding of every aspect of every tool we use, but this would tend to limit the extent most of us would build up from it, as time spent learning these fundamentals is no longer available for deriving from them. If we assume humans have limited time and capacity for understanding what already is, it's by necessity that we use certain inventions as black boxes in order to build from them.

Or maybe the question is, "Should you be able to build your own toaster?"

http://www.ted.com/talks/thomas_thwaites_how_i_built_a_toast...

Re: Do you strive to understand your tools, or simply “make it work”?

#8
I try to understand as much as I can. Recently, I tried to deploy a rails app without capistrano (the manual way). But, People are saying, like why are you even doing that?

I don't know. I want to know what is going on? Know it first, automate next, thats what I try to do most of the times.

Re: Do you strive to understand your tools, or simply “make it work”?

#9
I had never considered it. I can't 'make it work' without understanding it, so I consider it a non-issue.

I mean, I suppose minimal projects could get completed, but I never work on minimal projects. Mine always have edge cases, and that requires knowledge.

Re: Do you strive to understand your tools, or simply “make it work”?

#10
Understanding your tools in detail is a great way to differentiate yourelf. I make it a point to understand my working subject matter in great detail. At one point in my career, I did a lot of telecom consulting. Work ranged from voice network design all the way down to troubleshooting. I could have done my job by simply being a "phone ringer" (someone who just calls someone else to solve problems), but I found that by understanding the technologies in detail, I could discern fact from fiction when dealing with third-parties. This made me extremely valuable to my clients. I don't think I worked with a company that didn't float me a job offer at some point.

Bottom line: Understanding your tools in depth allows you to differentiate outcomes that will be opaque to less knowledgable competitors.

Post reply on HN