Comment

Comment by eatonphil

Take a look at https://web.eecs.utk.edu/~azh/blog/challengingprojects.html and https://web.eecs.utk.edu/~azh/blog/morechallengingprojects.h... for some good summaries.

For me, I started building programming languages (and standard libraries) years ago as personal challenge and to learn more about how various languages work. Later on that branched into emulation (x86/amd64, armv8/aarch64) and more recently databases. (You can find these kinds of projects on my github).

Before that when I was more focused on web tech, I'd build clones of React or Bootstrap or Flask to increase my understanding there.

It helped being surrounded by people with a lot more experience than I so I'd keep being in a situation where I knew nothing about some field and wanted to not be embarrassingly naïve :D so I'd try to build something from scratch to learn it.

It doesn't always work out! An example of a topic I haven't yet been able to get into is the TCP/IP stack. I got somewhere into the IP layer on top of userland raw sockets but TCP complexity and may poor C skills failed me as the algorithms needed for tracking state came up.

parent eatonphil 5 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton