Live data from Hacker News

Challenging projects every programmer should try (2019)

austinhenley.com

21–30 of 346 posts

Re: Challenging projects every programmer should try (2019)

#21

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.

Can you please elaborate what do you mean by " completely unrelated to computers" ?

Woodworking, blacksmithing, gardening, etc

Things that don't take computers to create

Re: Challenging projects every programmer should try (2019)

#22
post #14
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.

You can make a surprisingly usable OS with (relative) ease - because you can control all the features you choose to support (or not). An emulator already has a "spec" you have to operate to.

I guess you could do something ultra-simple (no loadable programs or me port allocation for example) but that doesn’t feel like an OS to me.

You can sort of do that with an emulator too. For example on the GB you could do just the CPU/memory at first, skipping some rare/tough/quirky ones. Graphics aren’t that bad, you can avoid emulating some bugs/ultra-tight timing. Controls are quite easy.

Honestly none of it is that tough as long as you’ve skip sound. Sound is the worst part, and what’s next on my plan for my Swift based emulator.

Of course if you wanted to keep going you could add on color Game Boy support, Game Boy advanced support, cheat codes, save states, stuff like that.

It’s turned in to a pretty great little project.

Re: Challenging projects every programmer should try (2019)

#23
For a more UI / Web based slant, I would recommend these (beyond a Spreadsheet - which is incredibly helpful for understanding data flow systems):

* Simple video game using Unity or Unreal (understanding perf limitations in a game where 30-60 fps is critical helps make performant interfaces elsewhere - even on Web)

* A simple Javascript framework similar to React (again, will help understand data flow & handling events)

* An http library wrapper around XMLHTTPRequest (fetch exists now, but understanding how to send & read HTTP requests from scratch will help in debugging any problems down the line like CORS issues, OPTIONS requests, etc.).

Re: Challenging projects every programmer should try (2019)

#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 engineering, are almost never discussed and even more rarely practiced:

- Deciding what to write yourself and what to take from a library

- Identifying high-quality libraries and frameworks that meet your project needs

- Deciding where optimization is worth the effort and where it is not

- Writing code that will still be readable to you (and others) a few years from now

- Thinking about the project as a large-scale, complex system with software and non-software dependencies

In that spirit, I offer the following alternative challenge: Create a web search engine. Don't bother with string matching algorithms etc., others have already done that for you. "Just" make a search engine (and crawler) that can actually work, even if it only supports a subset of the web and a single concurrent user at the beginning.

Re: Challenging projects every programmer should try (2019)

#25

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.

Agreed. This site selects for people who have made computers their entire life. Consider this an unsolicited reminder to touch grass.

Re: Challenging projects every programmer should try (2019)

#27

Earlier quoted context omitted.

Can you please elaborate what do you mean by " completely unrelated to computers" ?

Woodworking, blacksmithing, gardening, etc Things that don't take computers to create

*makig music

Re: Challenging projects every programmer should try (2019)

#28
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]
Post reply on HN