|
|
|
|
|
by eatonphil
1938 days ago
|
|
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. |
|
Thanks for the examples. I'd never even think of being able to build my own programming language, or clone of Flask - which I guess is the point, I shouldn't treat these things like black boxes :)