I have found that I ALWAYS try to learn as much as I can to have a fully intimate understand of the tools that I use. However, I have also found that this has more often than not been a huge disservice to myself. For example, yesterday I got fired from my employer on my 90th day for not being productive enough. I can't fault my employer because I understand his perspective. He needs employees that are productive. I s…
Do you strive to understand your tools, or simply “make it work”?
21–30 of 44 posts
Re: Do you strive to understand your tools, or simply “make it work”?
#22Re: Do you strive to understand your tools, or simply “make it work”?
#23Entrepreneurs have a totally different profile. Instead of the "how" and "what" of the project, they focus on the "why" and the "who cares". Will this project be valuable? Should I pivot this idea? Who is my first customer and what do they want?
These tendencies don't coexists very well -- they both want to be priority 1 in my mind. While I've been writing code, polishing scripts, reading kernel code, and accumulating my 5000 lines of emacs-lisp hacks, my friends chose different routes and started small businesses or pursued influence and high salaries. Now I'm a super-wonky developer and they're much better at sniffing out the real value in the world. Each of us has our place and on some days I'd rather be them. Somehow though, and somewhat mysteriously, when it comes time to choose I'd rather be rewriting the low level than pursuing meaning at the high-level.
Re: Do you strive to understand your tools, or simply “make it work”?
#24The TCP/IP stack: strive to understand it.
Random Java SOAP abomination: get in, make it work, get out.
Re: Do you strive to understand your tools, or simply “make it work”?
#25Re: Do you strive to understand your tools, or simply “make it work”?
#26I know other people that do that too. For some of us, the immediate reaction to a new thing is "ooh, shiny, how does it work? Let's run some experiments." The scientific mindset is useful, I think, no matter what you wish to exploit.
Re: Do you strive to understand your tools, or simply “make it work”?
#27There's no chance in hell to understand all the tools. It's quite possible to understand the concepts and general principles these tools are built around (i.e., all the stuff you get taught in a proper computer science course), which I think is what one should thrive for.
Note that even understanding the concepts will not even nearly equip you to (easily) understand and re-implement these tools, there's a lot more to any properly crafted tool than just the rough concepts.
Re: Do you strive to understand your tools, or simply “make it work”?
#28You 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…
Software tools on the other hand have a way of spiraling in complexity. We're so good at using physical tools because this simplicity allows us to learn their use on an unconscious level, ie. muscle memory. The take home here is that we need to radically simplify the programmming tools we use. Unfortunately the trend towards frameworks rather than libraries is moving in the wrong direction.
Re: Do you strive to understand your tools, or simply “make it work”?
#29Re: Do you strive to understand your tools, or simply “make it work”?
#30I 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…