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? A really good programmer who is free from the tyranny of software “engineering”.
Challenging projects every programmer should try (2019)
131–140 of 346 posts
Re: Challenging projects every programmer should try (2019)
#132Earlier quoted context omitted.
At no point does the author say or even imply that you need the factory pattern to implement Space Invaders. Are we reading a different article?
In the bullet points "things to learn": - Creating and managing a dynamic number of objects (e.g., factory pattern).
Re: Challenging projects every programmer should try (2019)
#133While 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…
This is like telling a student learning an instrument never to practice scales or études because there are other skills necessary for playing in an orchestra. Those other skills are important, but you have to develop your chops at some point, and being a better a programmer will certainly help with basically all those skills you listed anyway.
It's not possible to be a "productive" musician on a traditional instrument (i.e. excluding iPads) without knowing how to play scales, chords, etc.
Re: Challenging projects every programmer should try (2019)
#134Total long shot. But does anyone have any good side projects that would center around simulating fluid dynamics? I’ve always been interested in aerodynamics and I’ve wanted to see if there is a way to learn more about it with my programming skills.
https://youtu.be/rSKMYc1CQHE?si=pXdsHlQSCpw8nY8m
The GitHub repository also contains links to some of the research papers used to implement the simulation.
Re: Challenging projects every programmer should try (2019)
#135Earlier quoted context omitted.
> This is like telling a student learning an instrument never to practice scales or études No, it's like recognizing that an orchestra conductor doesn't need to play every instrument (or even any instrument!) in order to make music. Or alternatively, that a violin player doesn't need to understand the physics of acoustic dispersion in order to be the best in the world at playing the violin.
> an orchestra conductor doesn't need to play [...] any instrument! in order to make music Ok, this is clearly a side-topic AND at the risk of being pedantic: Is this actually true? Like, I can see how theoretically one could learn to sight-read music well enough to be able to direct an orchestra of individual musicians, then do enough ear-training to identify enough notes to keep tabs on everyone (especially if you'…
There is at least one (so I'm speculating he's not the only one, but it is likely to be rare) proficient conductor (Leopold Stokowski) who had no real proficiency with any instrument but he did have some very rudimentary piano training... and then pretty much taught himself conducting. Whether that rudimentary piano ability counts as "play an instrument"
Re: Challenging projects every programmer should try (2019)
#136Re: Challenging projects every programmer should try (2019)
#137While 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…
Notice it said programmer , not software engineer . Speaking for myself, software engineering is something I do because I have bills to pay. Programming is something I started doing because it’s fun. The projects in this article are the types of projects I would do for fun if I had the time.
Re: Challenging projects every programmer should try (2019)
#138Earlier quoted context omitted.
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…
> Literally all of the listed projects, text editors, compilers, operating systems, and ray tracers, can exercise the exact same activities. In the linked article, these projects are all explicitly described as opportunities to learn about low-level stuff like how to efficiently store editable text. The difference with a web search engine is that nobody today can build such a thing completely from scratch, therefore…
I'm sorry, but can you substantiate this claim? I've seen no indication that a search engine is not buildable from scratch at all.
Re: Challenging projects every programmer should try (2019)
#139Earlier quoted context omitted.
>Not all hackers are overly obsessed with the most efficient Big O and various low level (sorry pun intended) details. A NAND gate is low level. Big O is just theory that anyone should know if he's worth something as a programmer.
Most of the time, big O is not relevant if you're not writing new algorithm. For the usual CRUD app? Not so much. Heck even for more involved work, you will not touch them because your solution will be called or will call some external tools. The good news is that, while still valuable, you won't have to lose time creating a new broken wheel. The bad news is that this part of CompSci is now mostly fundamental researc…