news.volyx.in

Challenging projects every programmer should try (web.eecs.utk.edu)

911 points by azhenley · 2495 days ago · 297 comments on HN

Article summary

The article discusses challenging projects that every programmer should try, but the content is not available. However, based on the comments, it appears that the article lists various projects, such as a MS paint clone, vector graphics editor, and text editor. The comments suggest that these projects can help programmers learn and improve their skills. The article's author is open to suggestions and is compiling a list of community-suggested projects.

Main themes

  • challenging programming projects
  • learning and improvement
  • text editors
  • graphics and emulation

What commenters say

  • Implementing a basic widget toolkit or text editor can be a valuable learning experience, teaching nuances such as clipping and scrolling.
  • Recoding existing software, like GNU coreutils or git, can be a fun and educational project.
  • Some argue that using a simple array to store text documents is sufficient due to modern processor speeds, while others believe more complex data structures like gap buffers or ropes are necessary.
  • Writing a terminal emulator or a driver, such as a PCIe Linux driver, can be a challenging project that teaches a broad range of details and concepts.
  • A raytracer or software rasterizer can be a phenomenal project, especially when done from scratch without relying on GPU or OpenGL.
  • Some commenters suggest that web-based projects, such as a collaborative messaging service, can provide exposure to various technologies and ecosystems.
  • There is disagreement over the suitability of different data structures, such as gap buffers or piece tables, for storing and manipulating large text files.