Live data from Hacker News

Challenging projects every programmer should try (2019)

austinhenley.com

271–280 of 346 posts

Re: Challenging projects every programmer should try (2019)

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

I think your view of low-level projects from scratch is simply wrong, if you describe them as 'algorithmic details'.

Re: Challenging projects every programmer should try (2019)

#272

Total 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.

Not sure if this fits, but I've thought about doing an app to approximate cyclists drag coefficients from video and help improve aero positioning. I have no idea if it's realistic - from what I've read, it looks like not really, but hell, I would love to give it a shot.

https://github.com/ProjectPhysX/FluidX3D

Re: Challenging projects every programmer should try (2019)

#274
post #102

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

the skills of conducting do not require any instrument. Many conductors tell someone how to play their part despite not knowing how to play it themself. However it is hard to imagine anyone learning music theory not in context of learning an instrument.

Re: Challenging projects every programmer should try (2019)

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

>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.

YES!

But You learn that writing low level code, not high level.

Writing Text editor, or even a compiler, you don't spend much time on algorithm optimization. You spend it on designing good abstractions. You are given basic tools, and have to come up with good architecture on your own. And because you are forced to use more levels then with pre-made libraries (that create the structure for you), you will see your mistakes much faster.

Re: Challenging projects every programmer should try (2019)

#276
post #3

I’m surprised an emulator (especially Game Boy) is considered harder than a little operating system. I guess that would make sense if you’re not familiar with ASM but an OS will force you to learn that too.

Having checked off most of the list, I would agree the Game Boy emulator is far easier than the OS. I guess with the emulator it depends how much you want to do. You'd be foolish to write a console emulator and not import someone else's CPU code. When I wrote a Game Gear emulator 26 years ago I used off-the-shelf CPU code and just mapped all the in/out and did the graphics bits. Took me and a friend a single evening…

Wait what?

Cpu instructions are literally the easiest part of writing an emulator there is.

Re: Challenging projects every programmer should try (2019)

#277
post #218

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.

"I took two capture the flag classes" Can you share links for the same ?

The two I took were a part of my masters program, so they aren’t publicly available. But there are tons of Capture the Flag (CTF) resources. https://picoctf.org/ Is a good one for beginners, and you can find more from this list - https://old.reddit.com/r/securityCTF/comments/ewpdt8/top_10_...

Re: Challenging projects every programmer should try (2019)

#278

Earlier quoted context omitted.

was it udacity's cs101?

Yes! Thank you.

Incidentally, the first Google search result for

"introduction online cs course that uses Python the build a search engine from scratch"

is udemy CS 101

Even through my smartphone autocorrect mistakes of 'introductory -> introduction' and 'the -> to'

Re: Challenging projects every programmer should try (2019)

#279
post #210

Earlier quoted context omitted.

> I have never once thought "man, that thing is slow". You’re either lying or incapable to detect typing latency. Try typing while CLion indexes stuff in background or open couple hundred thousand line file in VS Code with Vim plugin and let me know how it goes.

There's a difference between noticing latency and considering it a problem. My car doesn't go at the speed of sound. That doesn't mean I think "man, this car is slow" each time I drive it. But if the same car suddenly stops, and I have to open all the doors and close them again in order to keep going, that sure is a problem.

I'm sure then you'd be perfectly content if your otherwise perfect car were replaced with one identical in all ways except that the acceleration was 1/4 of the previous rate.

Re: Challenging projects every programmer should try (2019)

#280
post #216

Earlier quoted context omitted.

If you don't want to learn you chose the wrong profession.

To expand, the software industry moves fast, and you have to keep learning to stay afloat, or risk stagnating and ending your career early. look at where software was at 5 or 10 or even 20 years ago. There was no react and no rust 20 years ago, nor was there even git! Whatever you know now is going to be out of date in a matter of years. good luck getting a job if that's all you ever want to learn.

Stagnating yes, but not ending career early. There will be python/java/c/c++ jobs for decades just keeping the lights on for non-tech companies.
Post reply on HN