3 ms·
Woah there. Be careful with that quick dismissal of what you term 'code beauty'. Sure, constructing quick and dirty prototypes is necessary, especially if you
by singular 15y ago
Woah there. Be careful with that quick dismissal of what you term 'code beauty'.
Sure, constructing quick and dirty prototypes is necessary, especially if you want to assess whether the idea is actually worthwhile, but this 'well, hey, even Larry Page didn't seem to know much early on so obviously code quality is overrated, blah blah' attitude is a bit dangerous and something of a stretch (we're basing this discussion on him not knowing one small aspect of a then-beta language, c'mon).
Sure, write something quick and dirty, and seek to refactor it later, but keep in mind that doesn't justify not having the chops to be able to write reasonable code first time.
I really think this 'none of this stuff matters, it's just aesthetics' idea is really pernicious - what is this 'aesthetic' stuff? To my mind it's writing code which is clear + understandable to you and other human beings - that is all that good code is. I believe that, with discipline, you can learn to do that quickly and efficiently and scale it accordingly from prototype -> critical library without ever just totally letting loose and writing crap (where crap is defined as being difficult to understand). That's before you even begin to consider the quality of the software perf-wise if you make naive algorithm choices.
Note that prototypes very often become core systems way more often than you would expect, so these 'throwaway' systems are often not as throwaway as you first thought.
This stuff isn't aesthetic, irrelevant or subjective nicety (all ideas 'code beauty' brings to mind), this stuff is the very means by which we construct our products and core to everything we do. Can we please stop pretending otherwise?
And, though it's something of an appeal to authority, I do think it's relevant in this particular case - keep in mind when google interview people, they themselves actually seem to think this stuff you're down-playing is important. I doubt an appeal to 'well I'll learn algorithms and so on later once I've got stuff working' would really prove sufficient.
- bigiain 15y agoOh for sure. To a hacker ( or a progrMmer, or the guy who's going to have to maintain the code, possibly when it's scaled to 40,000 servers), code beauty is critical. To "an ideas guy", a prototype is _way__ more important. But I hope the ideas guy partners with or hires someone like you, or like Tom Christiansen - the guy who got the "write it at least twice. always throw the first version away" meme firmly stuck in my head back in comp.Lang.perl.misc in the mid 90s. Modern startup techniques, particularly the "fail fast" mantra, strongly suggest that quick prototypes, even if they are crappily coded prototypes, are often a great idea - and are often within reach of inexperienced or non technical founders. (and yeah, I know what you mean by throwaway code ending up as critical production systems, just this morning I got mail from a cron job trying to run a crappy perl script I wrote over 10 years ago - it's monitoring critical infrastructure for a project I did for a company I haven't been in touch with since 08, and from the grapevine I hear they got sold in 09 or 2010 and I've never even met the new owners...)
- singular 15y agoCool, I'm glad you see my point :-) - it's just that there seems to be almost a meme going round, not just on hn, that 'hey this stuff just doesn't matter because the customer doesn't care' which seems fallacious to me (see other posts for why :-) I think the term 'code beauty' is a poor choice though; that seems to me to implies something subjective, when in fact I fundamentally believe code quality dictacts product quality.