7 ms·
How Larry Page learned Java
- deleted 16y ago[deleted]
- deleted 16y ago[deleted]
- zmanji 16y agoIt's amazing what information mailing lists hold about people.
- sahillavingia 16y agoThe quality of something working >> any other quality of a project.
- singular 16y agoGrr I've seen many posts like this recently jumping on the slightest stuff - at the risk of being down-voted, what the hell people? I expected better, pretending like we can just hack together pieces of crap and pretend like it doesn't matter is exactly how we end up with 99% of software out there sucking and the few who bother trying for more cleaning up, in fact that's how google won out in the first place. The quality of software is not unrelated to how its implemented. The quality of software is defined by how it's implemented. The user might not care about the details of how you got there but they sure do care about the quality of the software itself only they don't see it in terms of the underlying details, only what the product does for them and how it does it. Now can we stop denigrating our craft, please.
- yuhong 16y agoThat reminds me of Ask HN/Slashdot/Reddit. Ideally I'd prefer most of them to be non-anonymous, but I know in the real world it isn't possible.
- rxin 16y agoWhy didn't he just use Google!? Oh... that was before the inception of Google.
- bigiain 16y agoIt seems to me that this submission (and the other recent Google code quality submission) are an amusing but perhaps misleading sidetrack. Google isn't what it is because of Larry's language choice or his coding chops. It's _much_ more about the idea and execution of page rank. In one sense, this is the classic path trodden by people who listen to all the good advice available here. The idea of page rank was worth very little. What Larry did was learn enough programming chops to build a prototype, then used then prototype to prove the idea worked, then iterated better and better versions as the requirements became more clear and as the bottlenecks became apparent. This is exactly the sort of advice I'd give today to anyone with "an idea" - learn enough to code up a quick prototype. If you're starting from scratch, choose a modern fashionable language since it'll probably give you an enthusiastic community of people prepared to give advice and help when you get stuck. (right now, my choice would probably be between Ruby and Haskell). Don't worry too much about code beauty or scaleability or efficiency yet - there's a very high chance your idea will turn out to be not such a great one, and you'll either pivot a few times to find a variation on the idea that is great, or drop it altogether for the next "great idea", so don't fall into the trap of investing more effort than required too early. Have a plan for how you'll do it "properly" if you get traction, but first just get something running quickly to see if anybody is likely to pay you for it...
- singular 16y agoWoah 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.
- akent 16y agoVery misleading headline.
- Jach 16y agoIn other words, don't just sit there with your hands in your pockets waiting for your friend to figure out the answer! "How do I learn to program?" "Pick a language, start building something, ask around (with good, detailed enough questions) when you're stuck." Larry's message could have been written by anyone posting on StackOverflow.
- 16s 16y agoThat seems like a reasonable question to ask on a Java list back in 1996.
- presty 16y agoI think so to. In 1996, was "Programming for the Internet" (or the equivalent) actually taught in college?
- waterlesscloud 16y agoYeah, I'm having trouble seeing any problem with it. He wanted to do things the right way, made an effort to figure it out by himself, and then asked in the appropriate forum.
- michaelpinto 16y agoI love how the email was sent at 4am!
- karussell 16y agoOk, sorry. title is indeed missleading. It should have been: This was Larry Page! 1996 is perfect and then he decides to use Python after the Java mess ;) Like I said recently http://twitter.com/#!/timetabling/status/59909520436117505 http://twitter.com/#!/timetabling/status/59909520436117505