Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Reference implementations of medium sized applications are incredibly useful for leveling up as a programmer. While there are many large successful open source applications, many are overwhelming to read and learn from.

Having something that outlines the key features and components and which ignores the important but complicated edge cases assists in keeping the attention focused.

Now if there are annotation within the source code, that would be truely incredible.



I found that another hard thing that feels like a prerequisite for leveling up further is getting the feel for design/architecture of medium-sized systems. There's a pretty awesome resource for that particular need - the series of books called "The Architecture of Open Source Applications".

http://aosabook.org/en/index.html

(The books are CC and free to read on-line :))

I'm just through the few first chapters of the first book, and I must say it's absolutely amazing. Each chapter gives some understanding of the thought process people designing (and iterating on) a known open-source project had.


> getting the feel for design/architecture of medium-sized systems

Yes. This is exactly the kind of thing I was once looking for, only I didn't know how best to phrase at the time. Think I've since found some of the details I needed then, but will look into these nonetheless and see what I missed, if anything.

Thanks!


Both, the tutorial and the aosabook are very, very, helpful ressources. We certainly need more like that.


Ooh, the matplotlib chapter looks super-relevant for a project I'm working on. Thanks!


https://github.com/jameysharp/corrode/blob/master/src/Langua...

Corrode is absolutely incredible. This file is literate Haskell, which means there's more documentation than code (I guess), and it transforms C into Rust.


> This file is literate Haskell, which means there's more documentation than code (I guess)

That's the intent, but to the compiler, the meaning of literate Haskell is that comments are the default, and only lines starting with > contain code


I know. The "I guess" was because I hadn't actually counted the lines to see if there were more comments.


Wholeheartedly agree. Making my own lisp was an eye opener on how programming languages work - and that's after I've read a lot of theory on the matter.

By the way, is there are similar resource for building your own relational SQL-based database?


Maybe peek at H2? http://h2database.org


Do you know a good example which implements a GUI, e.g. a drawing program or a graphical editor?


You could check out http://www.catch22.net/tuts/neatpad

It is Windows specific but very informative.


> While there are many large successful open source applications, many are overwhelming to read and learn from.

As long as the first commit isn't something like 'import to git' or 'add the code' (which seem to be tragically frequent) I find VCS a huge help here. The problem is that large OSS applications are (tautalogically) large. VCS allow cutting it back, and showing the evolution.


Do you have anything similar that you would recommend?


Xv6 is a pedagogical implementation of UNIX v6 that MIT created for an operating systems course.

https://pdos.csail.mit.edu/6.828/2012/xv6.html


Minix (mini Unix) is a teaching operating system that goes with the well known os book "Operating Systems Design and Implementation". We used it at Cal. Very fun.


was about to post a link. Minix is great.






Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: