Deepak, thank you for the note. Its reader appreciation that makes it worth the while. Feel free to comment on line as it would let the powers-that-be know that its not just @chitrasri who reads my column :-)
- K Srikrishna
from email
Oh well.. I just registered and posted a comment, and then the interface just came back to me with nothing :). I hope it is queued up for moderation or something!
- Deepak Jois
First time applying for deferment from NS in-camp training. One of the main reasons in the company letter is my absence "could also delay the launch of the new X website to the detriment of Singapore tourism." Now that's national service.
"What I notice is that my peers are progressing to more and more complicated and convoluted designs. They are impressed with the flashiest APIs, the biggest buzzwords, and the most intricate of useless features. They are more than happy to write endless unit tests to test their endless refactoring all the while claiming that they follow XP’s “the simplest thing that works” mantra. I’ve actually seen a guy take a single class that did nothing more than encapsulate the addition of two strings, and somehow “refactor” it to be four classes and two interfaces. How is this improving things? How can more somehow equal simpler? This should never be the case. These are the actions of an expert. These experts are very smart, capable, and skilled, but they are too busy impressing everyone to realize that their actions are only making things worse for themselves. In the end all of their impressive designs are doing nothing but making more work for themselves and everyone around them. It’s as if...
more...
- Paul Buchheit
from Bookmarklet
It takes smart people to make complicated things simple.
- imabonehead
Is it possible he's talking about Java programmers?
- Gabe
i really liked this post (it resonated with me) until the end, at which point i felt alienated.
- Neha Narula
What alienated you, Neha? To me, it seemed valid enough but a bit overwrought and trite. I know plenty of experienced, skilled working programmers who value just-get-it-done simplicity -- the "professional master" doesn't seem that elusive.
- ⓞnor
from Android
I'm a big fan of keeping it simple, but some problems do require a thorough approach.
- Andrew C (✓)
"In contrast there are masters in the martial arts who learned their art as a means of survival and became masters in a realistic and hostile environment. We don't have anyone like this in the programming profession, " ... what about Carmack and Abrash & co?
- Andrew C (✓)
BTW, I dunno if this is what put Neha off, but it almost sounds like Shaw wants to deny the reality of a nice O(n log n) solution beating out an O(n^2) solution (assuming small k, whatever) on a problem of decent size.
- Andrew C (✓)
I mean, the stories of the martial arts masters may involve simple-looking moves, but they are also (in the stories) _perfectly_ executed, the product of careful observation of one's opponent and expert timing and precise angles. You might be able to pare down a simple linked list to the bare essentials, but I don't think it's quite analogous to not using a more complex structure _where appropriate_.
- Andrew C (✓)
Nice... "The main thing I noticed about the experts I’ve encountered is they are into impressing you with their abilities. They are usually incredibly good, but their need for recognition gets in the way of mastery. Everything they do is an attempt to prove themselves and in order to do this they must perform like an actor on stage. There’s nothing wrong with this, and I don’t think the...
more...
- Ken Sheppardson
Andrew: Maybe the point was that an Expert would say "Aha! You need to keep these items in order, so a self-balancing tree is the perfect solution.", while a Master would say "Ah, but you never have more than 5 items, so a linked-list will always be faster!"
- Gabe
this part, so much guy/son stuff! i dislike superfluous interfaces as much as anybody else: “There was this guy I worked with who once optimized a complicated red- black tree getting 300% performance boost. I was baffled and ask, 'How’d you do that? That’s impossible.’ To which he responded…” “'That’s my linked list my son.’”
- Neha Narula
This is the kind of crap that gives java such a bad image. It used to be that people used it for what it was -- a simple OO language with garbage collection and a fast VM. Now you have architecture astronauts going off the deep end and making everyone assume the language has to be that way. I believe this disease stems from people who focus more on the process than on the product of their work. That's a recipe for disaster in my book.
- Joel Webber
from BuddyFeed
Neha: So lt's the fact that the language is male?
- ⓞnor
from Android
The impulse is good, but people have such different senses of what is simple, what has quality, what flows with the Tao. It's like beauty that way. What the story doesn't say is the 300% performance boost was on a limited test data set, in the real world it performed 3x worse and all the complexity had a reason that made sense once you "know." :-)
- Todd Hoff
Complexity that's "there for a reason" is the worst kind. But who even talks about red-black trees vs linked lists? TreeMap vs LinkedList isn't the issue, interface swaddling and hyperfine dependency injection is the issue. Thing is, fights are decisively won, but code maintainability is much harder to measure, and even the importance of performance can be disputed.
- ⓞnor
from Android
I find it funny how the article, while praising simple approach, suffers from superfluity of language.
- andrei_c
Neha, I thought the final "That's my linked list my son" was to make clear the parallel with the earlier quote "That was my foot my son" from Mestre Bimba.
- Ruchira S. Datta
Todd: Imagine the situation where you are storing data for the US Census, and need to keep track of the people in a household by age. Since it's sorted and unbounded (there's no maximum number of children a family can have), you can easily think that a nice O(n lg n) algorithm that keeps a balanced binary tree is the right way to go. However, if you bother to look at the data, you'd see...
more...
- Gabe
I wish I could "Like" this article again :)
- scott willeke
might have created a "MEGA-liked" button:)
- alex melnikov
It's a great analogy, but in reality, the martial arts stuff is mythology. Wing Chun proponents often talk about simplicity of the art, but they'd get their butts kicked in a sloppy street fight because invariably, most real world fights are messy, quickly go to the ground, and result in grappling and choking and eye gouging. Bullshido has lots of examples of this. The 80 year old guy...
more...
- Ray Cromwell
I used to be more conscientious in logging in my blog. I can tell you it's really useful and most of the time these are the posts that constantly get Google searches. An alternative is to use a personal wiki.
- Chu Yeow
from iPhone
Wiki, blogs, docs. Whatever works --> be agile. So long as it's searchable :)
- Jason
from iPhone
I keep all my engineering findings in my Google Notebook, and sometimes I replicate some stuff in my blog. The stuff that I found most useful in keeping a log of are Getting Started instructions of these and that, which I will use once in a blue moon, but ever so helpful when the instructions are somewhere.
- Winston Teo
Ashwin : Download the repository and view the log.html on local machine for now. If you dont have Git, you can find a download button on top.
- Deepak Jois
I can see your point but I think he is referring more to complete products where the code itself is not the product (like it is in open source like you described), so I'd give him the benefit of the doubt here :)
- Chu Yeow
I don't agree code is trivial. But I think the point of the post was to show that product != code. Obviously code matters, but a lot of us think that if our code is great, the product will succeed, which is obviously not true.
- arunthampi
Another example I can think of is how Gitorious never took off, but GitHub did so spectacularly.
- arunthampi
Arun read my mind and said what I wanted to say far more eloquently than I ever could! Yup I feel that that's exactly the takeway from the CH blog post.
- Chu Yeow
You're right lol, I forgot about his legions of other readers. I actually thought that the post was trying to say that code (and building a product along with the code) is NOT trivial but I think that'd be hard to extract from the post for different people.
- Chu Yeow
"I stopped thinking in terms of problem solving, modelling, structuring, simulating, all the mental tools that I used for ‘work’ went out the door. I got to the point where, when I was making a cup of tea, I was able to concentrate all my effort in making that one cup of tea, and drinking it. I became single-minded. If I wished to do something, I did it with a complete focus. Mind you, I was not managing difficult problems. I was trying to get things done such as ‘eat something’ and ‘drive to the next village, where I can eat something’. Occasionally I had to convert longitude-latitude into map grids, but that was a simple task with a calculator. Then all of a sudden, when I was driving to the next village so I could eat something, in the expanse of the Mongolian desert, I had an epiphany. A part of my brain that was turned off eight months ago, spontaneously rebooted. Wherever I saw, I saw patterns. They arranged themselves into problems, which I’d try and solve."
- arunthampi
from Bookmarklet
Awesome read and a great reminder about life.
- Chu Yeow
yup, really jealous of ppl who take months off work and go travelling.
- arunthampi
but you 2 took 19 days off and went travelling!
- Sunny Wong
Hehe I realized that soon after commenting. What I meant was ppl taking months or like a year off work
- arunthampi
It doesn't sound to me like he burned out on developing as much as simply the job when the new/interesting work dried up, and politics wore him out. Maintenance doesn't excite a lot of devs, office politics are a social pursuit, again, not always a techies' favorite game either. I bet he might've "found himself again" as easily back in an new actual development job as he would've in the middle of the desert. Of course for people who can afford to take a year off of work, more power to ya :)
- Gary Theis
"He advocates putting 85-90% of your investment money into something extremely stable, like treasury notes. The other 10-15%, invest it in the riskiest things you can find - things where a black swan might make it go crazy."
- Chu Yeow
from Bookmarklet