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?
Challenging projects every programmer should try (2019)
281–290 of 346 posts
Re: Challenging projects every programmer should try (2019)
#282While 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…
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)
#283While 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…
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)
#284While 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…
Re: Challenging projects every programmer should try (2019)
#285Earlier 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.
Re: Challenging projects every programmer should try (2019)
#286Re: Challenging projects every programmer should try (2019)
#287Re: Challenging projects every programmer should try (2019)
#288I 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
Re: Challenging projects every programmer should try (2019)
#289Earlier 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…
Re: Challenging projects every programmer should try (2019)
#290Discussed 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)