Live data from Hacker News

Challenging projects every programmer should try (2019)

austinhenley.com

111–120 of 346 posts

Re: Challenging projects every programmer should try (2019)

#111

I wish every dev would try projects and things completely unrelated to computers. I enjoy being outside. These headlines “projects every dev should try” really annoy me. I try to put in enough effort at work, and that’s tough. But I have been messing with computers for over 20 years now.

I don't really understand how this comment relates to anyone but you.

Nerding on a computer and doing outdoor things are not mutually exclusive. They may be for you, but that's... well... you.

Re: Challenging projects every programmer should try (2019)

#112
post #73
post #62

Earlier quoted context omitted.

And the most challenging part is making a text editor that actually works well from a usability perspective. Which has almost nothing to do with data structures and optimization. I've used dozens of text editors. I have never once thought "man, that thing is slow". But I have thought "man, that thing is a bug-ridden, unintuitive piece of garbage" many, many times.

You must not have used Eclipse back in the day

oh man, this one hurts.

the original Eclipse was so godawful slow, this was back in the days where you would install Textpad after installing Java because it would pick up your classpath during installation and configure it for you. Java 1.4 I think.

Re: Challenging projects every programmer should try (2019)

#113

If you think you need a "factory pattern" to write Space Invaders, there is something wrong. I'm close to absolutely certain no such design concept was involved in the original.

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?

Re: Challenging projects every programmer should try (2019)

#114
post #68
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…

Do you have any good resources for what you mentioned?

I wish. As you can plainly see in this thread, most "real programmers" consider such things beneath them, and the scarcity of relevant resources is a natural consequence.

Re: Challenging projects every programmer should try (2019)

#115
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 agree that these are all valuable things for a software engineer to learn, but in my experience, it’s valuable to at least take a crack at the projects listed in the post. I wasn’t under any illusion that I was going to build anything amazing, and gave me deeper appreciation of why you don’t try and build everything in-house.

Re: Challenging projects every programmer should try (2019)

#116
post #100
post #95

Earlier quoted context omitted.

> In that spirit, I offer the following alternative challenge: Create a web search engine. Yea, no thanks. If I'm going to work on something in my spare time, I am going to work on something that I am interested in and find fun. I generally loathe the dirty work often involved in software engineering and debugging all of these dependencies all the time. It's exhausting. Doing things from scratch puts me in charge. An…

> And I mean, creating a search engine is the ultimate "not invented here" project. I'd just pay for and use Google, Bing, or whatever else API to do things for me. So it doesn't even make sense in the context of your objections. Except that none of the established search engines actually does full-text search (anymore). There is no way to prevent those engines from breaking apart and rewriting your query as they see…

This sounds like an excellent project! I look forward to following your work on GitHub. Everybody needs a crappy search engine from the 90s!

Re: Challenging projects every programmer should try (2019)

#117

Earlier 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…

And then you get needlessly inefficient CRUD apps that take minutes or even hours to generate a simple report because they're doing accidentally quadratic or even cubic work somewhere.

Re: Challenging projects every programmer should try (2019)

#118
post #59

Earlier quoted context omitted.

If you want learn how things scale across a team and last years, read or contribute to open source code. It takes years for a single person to get a project to the point where it's a good learning ground for scaling and maintenance. Gluing a few libraries together is real software engineering but unless you're really invested in the outcome it's not that engaging and it's not that educational.

> Gluing a few libraries together is real software engineering but unless you're really invested in the outcome it's not that engaging and it's not that educational. That's only true if complex systems don't interest you. Personally, I have always found the experience of "putting the pieces together" and orchestrating highly diverse systems into a coherent whole to be much more educational than learning about algorit…

So if I'm understanding your argument correctly, if you enjoy it, it's what everybody else should do. The other points are just post-hoc justification.

Re: Challenging projects every programmer should try (2019)

#119

I wish every dev would try projects and things completely unrelated to computers. I enjoy being outside. These headlines “projects every dev should try” really annoy me. I try to put in enough effort at work, and that’s tough. But I have been messing with computers for over 20 years now.

You could always pull a Wolfram [1].

[1] https://content.wolfram.com/sites/43/2019/02/07-popcorn-rig1...

Re: Challenging projects every programmer should try (2019)

#120
post #102
post #83

Earlier quoted context omitted.

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.

> 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're conducting a high school or (god help you :) ) middle school orchestra), etc, etc.

But does anyone actually do that? Has anyone ever done that?

"I'm going to learn how to conduct an orchestra without learning any instruments" kinda feels like "I'm going to become a software engineer using an LLM instead of learning any foundations)"

(To be clear - the LLM path might be viable in the future, possibly the near future, but at least today it's not quite there. My apologies in advance if my analogy doesn't work in the future :) )

Post reply on HN