Live data from Hacker News

Challenging projects every programmer should try (2019)

austinhenley.com

281–290 of 346 posts

Re: Challenging projects every programmer should try (2019)

#281
post #130

Earlier quoted context omitted.

> If you are only using ready-made building blocks, there is a lot of great software you just cannot write. And I think we all see that, because there isn't much great software around. I claim that the opposite is true: The reason there are so few software projects that are really great is because high-level skills, not low-level ones, are in short supply. Every CS graduate can implement Paxos. The number of people w…

> Every CS graduate can implement Paxos Is all of this satire?

Just plain old elitism.

Re: Challenging projects every programmer should try (2019)

#282
post #24

While writing a text editor, a compiler, an operating system, or a raytracer might make you a better programmer, it won't make you a better software engineer. In fact, it might make you worse at software engineering, because it embodies the disastrous "Not Invented Here" doctrine. Hackers like to obsess about Big-O, data structures, HoTT, and other high-theory stuff, yet the following skills, essential for software e…

I don't understand why you think a search engine requires the use of "real engineering skills" like picking and choosing libraries and identifying which opportunities will yield fruitful optimization. Literally all of the listed projects, text editors, compilers, operating systems, and ray tracers, can exercise the exact same activities. I'm more inclined to think that your comment is really more revealing about what…

> It's much more a matter of whether you want to do something small scale and fun, or whether you want to suck all the joy out of it by applying the same soul crushing constraints we already get paid to do in our day jobs. Bleh.

Amen. And further, what better prepares a programmer to assess the relative costs of implementing a thing vs using a library providing that thing than having attempted an implementation?

Learning by doing is a valid approach, and this can even be called fun.

Re: Challenging projects every programmer should try (2019)

#283
post #24

While writing a text editor, a compiler, an operating system, or a raytracer might make you a better programmer, it won't make you a better software engineer. In fact, it might make you worse at software engineering, because it embodies the disastrous "Not Invented Here" doctrine. Hackers like to obsess about Big-O, data structures, HoTT, and other high-theory stuff, yet the following skills, essential for software e…

There is a lot of disagreement towards this idea in the thread, but I really like this project suggestion for someone to make a multi-faceted project that'll help someone "grow up" and it resonates with something I've long felt missing from comp sci education: that it doesn't focus enough on studying and replicated big successful projects.

You mostly learn by doing, true, but you learn by copying what the masters did. Software engineering education feels more like taking classes and writing code for exercises, whereas it probably should have more projects of the form "study this complicated-implementation-of-X and use those techniques in your implementation of Y", where x = google search, postgresql, whatevers and y is a complicated project [for one person or a small team] like your own single concurrent user search engine

I've held this idea for a really long time, in fact, I've not actually looked at comp sci education recently, so maybe this isn't true anymore, or maybe it never has been

Re: Challenging projects every programmer should try (2019)

#284
post #24

While writing a text editor, a compiler, an operating system, or a raytracer might make you a better programmer, it won't make you a better software engineer. In fact, it might make you worse at software engineering, because it embodies the disastrous "Not Invented Here" doctrine. Hackers like to obsess about Big-O, data structures, HoTT, and other high-theory stuff, yet the following skills, essential for software e…

one wonders whether you’ve created having completed two of the items on the list, i can confirm that it makes you better, whichever way you’d like to measure it. as a google engineer told me once: operating systems and compilers are where all the good ideas are. study them! only thing that beats that is probably writing them yourself, even if toy versions.

Re: Challenging projects every programmer should try (2019)

#285
post #258

Earlier quoted context omitted.

It can be useful in general, but it is hard to provide the type of tolerances expressed in physical units you’d expect in an engineered solution when all the constants are ignored.

I'm not sure what you mean. Sounds a bit like you might be misunderstanding what were talking about.

It is a bit rude to become confused and then assume the other person was the one with the misunderstanding.

Re: Challenging projects every programmer should try (2019)

#287
post #231

Earlier quoted context omitted.

making a database is easy. making a fast database is what's hard.

even implementing all of sql92 or datalog without concern for efficiency is fairly complex

implementing a toy datalog should take no more than a week.

Re: Challenging projects every programmer should try (2019)

#288

I would add in a security or network related project. Overflow attack, (sql) injection attack, and maybe something like using wireshark to see what a http request actually looks like. I took two capture the flag classes which changed how I look at some of my day to day dev work.

Interesting, I will look into this for learning, thanks for the inspiration

pwn.college

Re: Challenging projects every programmer should try (2019)

#289
post #239
post #39

Earlier quoted context omitted.

Who do you think puts systems like a web search engine together? It's certainly not people who are lost in details like string matching or how ACID is implemented in distributed databases. Of course you need all these things in order for the search engine to work – but if you write them yourself, even if you think about them excessively, you will never finish. Software engineering is knowing that you don't need to kn…

> Who do you think puts systems like a web search engine together? i've met a good fraction of the first 128 google employees, and this could not be farther from the truth: > It's certainly not people who are lost in details like string matching or how ACID is implemented in distributed databases. the people who thought those things were unimportant details were the ones who tried to compete against google and failed…

BTW at Yahoo in the 2000s I learned that Manber had invented at least one new trade-secret algorithm while he was there. The one I ran across wasn't for string matching but it was a fairly basic kind of thing.

Re: Challenging projects every programmer should try (2019)

#290
post #76

Discussed at the time: Challenging projects every programmer should try - https://news.ycombinator.com/item?id=21790779 - Dec 2019 (297 comments) Also related: More challenging projects every programmer should try - https://news.ycombinator.com/item?id=25489879 - Dec 2020 (223 comments)

[deleted]
Post reply on HN