Live data from Hacker News

Challenging projects every programmer should try (2019)

austinhenley.com

31–40 of 346 posts

Re: Challenging projects every programmer should try (2019)

#32
I would really love to try my hands on something much more physical, like a robot; or a drone with autopilot; maybe accurate simulation of flight dynamics of a spaceplane with programmable GNC parameters?

I have a copy of "Fundamentals of Astrodynamics" by Bate, Mueller et al and I would love to do something with it this holiday season.

I say simulation because all the rest of the stuff seems to cost a lot. I am really interested in the GNC aspect of robots, and would love some good pointers on the topic!

Re: Challenging projects every programmer should try (2019)

#33
post #32

I would really love to try my hands on something much more physical, like a robot; or a drone with autopilot; maybe accurate simulation of flight dynamics of a spaceplane with programmable GNC parameters? I have a copy of "Fundamentals of Astrodynamics" by Bate, Mueller et al and I would love to do something with it this holiday season. I say simulation because all the rest of the stuff seems to cost a lot. I am real…

https://ksp-kos.github.io/KOS/ Kerbal Space Program might not simulate aerodynamics quite to the realism level you prefer, but a lot of people seem to enjoy writing GNC software for it.

Re: Challenging projects every programmer should try (2019)

#34
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…

What if we don't want to be "software engineers"?

I'm still not totally convinced that "software engineer" is even a thing, frankly.

Re: Challenging projects every programmer should try (2019)

#35
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…

[flagged]

[deleted]

Re: Challenging projects every programmer should try (2019)

#36
post #30

For a fun challenge, implement space invaders in Verilog (i.e. purely in hardware)

How would you suggest going about the display? Driving an LCD or generating an NTSC/PAL signal?

Or maybe a giant array of LEDs?

Is there a good tool to simulate Verilog so you can test without hardware?

Re: Challenging projects every programmer should try (2019)

#37
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…

[flagged]

I strongly disagree. Software engineering is simply the next higher abstraction level above programming. Just like programming is the level of abstraction above writing machine code, and writing machine code is the level above hardware manipulation.

Almost all "programming" problems have been solved. Today's software is laughably inefficient not because we need better implementations of data structures, but because putting all those existing pieces together properly is a neglected discipline.

The best place to see this is in Machine Learning. The vast majority of ML/AI software that is published (which often implements revolutionary techniques!) is of incredibly poor quality from a software engineering standpoint. As a result, practical AI applications are orders of magnitude slower than they could be.

Re: Challenging projects every programmer should try (2019)

#38
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…

[flagged]

I genuinely love your sentiment. We have way too much faux asceticism and way too little self-mockery in this godforsaken industry that pays us all way too much money. Programming is wizardry. But being a professional one (a software engineer) is a ridiculous occupation we're coerced into. We all know this, otherwise Silicon Valley wouldn't have been a universally cathartic show.

But GP is completely correct that all of the fun, magical projects in the OP article are antithetical to the profession.

Re: Challenging projects every programmer should try (2019)

#39
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…

What if we don't want to be "software engineers"? I'm still not totally convinced that "software engineer" is even a thing , frankly.

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 know everything, you only need to know where to find everything. "Programming" is an important part of it, but far from the only one.

Re: Challenging projects every programmer should try (2019)

#40
post #37

Earlier quoted context omitted.

[flagged]

I strongly disagree. Software engineering is simply the next higher abstraction level above programming. Just like programming is the level of abstraction above writing machine code, and writing machine code is the level above hardware manipulation. Almost all "programming" problems have been solved. Today's software is laughably inefficient not because we need better implementations of data structures, but because p…

Not to split hairs but writing machine code is programming. I'm not sure what you're thinking about as "hardware manipulation". Programming is just one (and a very important one) part of what it takes to be a "software engineer" (or software developer, or whatever you want to call having skills to deliver, or be part of a team that delivers, major software projects).
Post reply on HN