Live data from Hacker News

Great Programmers (2004)

bramcohen.livejournal.com

1–10 of 31 posts

Re: Great Programmers (2004)

#2
Fascinating discussion in the comments about version control. This, in retrospect, is particularly good:

"If distributed operation is such a key feature, why is Subversion enjoying the amount of marketplace success it has?"

Re: Great Programmers (2004)

#5
Why everyone has to write new code to learn?

I find best way to learn is to read existing code. When I find interesting project, I download source code and read it from top to bottom. I may even fix a few bugs before hitting compiler.

Re: Great Programmers (2004)

#6
Does anyone have any good resources for learning how to better architect systems? Other than, say, The Architecture of Open Source Applications: http://aosabook.org/en/index.html

Reading source code of prominent projects is a good way to get better, but it's hard to understand the architecture if you aren't aware of the design constraints/requirements that led it to be the way. Surely there must be a way to fast track this to some extent. Under the deliberate practice model by Anders Ericsson's (i.e. the 10,000 hour rule), simply reading and understanding code is suboptimal because of the lack of immediate feedback on your understanding. I think it'd be interesting to see tutorials/guides that showed how a system design has changed throughout its history as well as the reasons for those changes.

Re: Great Programmers (2004)

#7

Does anyone have any good resources for learning how to better architect systems? Other than, say, The Architecture of Open Source Applications: http://aosabook.org/en/index.html Reading source code of prominent projects is a good way to get better, but it's hard to understand the architecture if you aren't aware of the design constraints/requirements that led it to be the way. Surely there must be a way to fast trac…

In my experience, there is no better way than to build it. You learn quickly from your failures and become aware of subtle issues that no text-book or article will ever touch since they are so domain specific.

The best way to learn by doing, IMO, is by joining an organization that works on a large and complex code base. It won't be as exciting as writing new code, but adding to an existing complex system will force you to take into consideration things that you otherwise would not.

Re: Great Programmers (2004)

#8
Thanks for adding the 2004. I wondered why he was still bashing poor subversion and talking about codeville. Interesting thoughts otherwise. When I interview potential co-workers I ask what makes good code and it's interesting to hear the variety of answers. Definitely one of the best interview questions I have discovered. I think Mr. Cohen would pass my interview :-)

Re: Great Programmers (2004)

#9
Changing things dramatically for the better always seems to involve "forgetting what you know", ditching everything, and starting from scratch, doesn't it?

In relation to the other post about the Core Infrastructure Initiative here, you could use that principle and realize that funding and improving OpenSSL, will still keep things more or less as "secure" as they've been until now. But to truly improve the security of the infrastructure of the Internet, we need to rethink things from scratch, and fund and adopt those, too (in browsers, operating systems, etc).

Post reply on HN