TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Challenging software projects some programmers should try

70 点作者 cmpit大约 1 年前

7 条评论

bosch_mind大约 1 年前
To add onto this list (unless I missed it), I would recommend interpreter, compiler and assembler. An interpreter is a fun way to learn a new language and can be done creatively and artistically which allows you to exercise the art of programming in expressive ways. Lexing for optimal string manipulation and parsing, AST construction for fun ways of building and creating the grammar and interpretation which can be done any number of ways.<p>Also, it’s not as hard as it seems if compilers in college was your last attempt in this area.<p>- crafting interpreters<p>- writing and interpreter&#x2F;compiler in Go<p>Both good books on the domain for an amateur compiler writer.<p>For lower level assembler and chip design stuff&#x2F;logic gates etc. obviously I recommend Nand2Tetris
评论 #40039885 未加载
poulsbohemian大约 1 年前
We did many of these in the course of a CS degree 25 years ago, IE: scientific calculator, a server, interpreter, a VM… I would expect people working in industry who have completed a degree have done most of this list in the course of their studies?
评论 #40041267 未加载
评论 #40041348 未加载
评论 #40044657 未加载
评论 #40043214 未加载
deaddodo大约 1 年前
I got to the &quot;lesser known data structures&quot; section and was already questioning the rest of the article:<p>&gt; B-Tree<p>&gt; Circular Buffer<p>Are either of these &quot;lesser known&quot;? Maybe if all you ever program in is higher-level languages.<p>B-trees are damn near ubiquitous in OSdev, file systems, databases, or pretty much any indexing system.<p>Ringbuffers are a hard requirement for pretty much any modern hardware interfacing. All Nvidia, AMD, etc graphics commands are issued via constructed ringbuffers. They&#x27;re also pretty common in network programming, editor&#x2F;IDE development, gamedev, and certainly OSdev (outside of drivers).<p>&gt; Cuckoo Hash Table, Open-Addressing Hash Tables<p>These have the opposite status to the previous ones. They&#x27;re not ubiquitous because the alternatives are better.<p>Cuckoo Hash Tables exist almost singularly as a teaching paradigm about what not to do, because it&#x27;s overly complex for little benefit. Open-Addressing Hash Tables are avoided (but definitely in use out there) because they require a very good hashing algorithm to avoid clustering+collisions and a large static address space.<p>That all being said, it picks up and the later sections are much better.
评论 #40045125 未加载
评论 #40040792 未加载
评论 #40041275 未加载
sevagh大约 1 年前
Save your time: work on stuff you _like_, or work on Leetcode for employability. Don&#x27;t work on things you don&#x27;t like for employability (unless it&#x27;s Leetcode).
评论 #40048581 未加载
评论 #40044001 未加载
light_triad大约 1 年前
Instead of cloning well known sites I would talk to people and try to solve their problems. There&#x27;s a big difference between people telling you they&#x27;ll use your product and people actually using it. The bar is extremely high since your product has to solve their problem, it has to be better than the alternative, they have to remember to use it (or you have to remind them) etc. You will learn a ton and might produce something useful. Wish I had done that more especially as a student!
hulitu大约 1 年前
Build a GUI program with clearly visible and easy to interact with, GUI elements: text input, labels, buttons, menus, scrollbars, visible titlebar.<p>I know: i&#x27;m old.
poulpy123大约 1 年前
Not directly related but the author writes:<p>&gt; However, it’s important to note that most of these ideas may not be relevant to today’s job market<p>Then advise to clone the frontend&#x2F;backend of well known site.<p>What other project HN would advise to do that could increase attractability for the job market, especially in python (the language I know) or C# (the language I would like to learn). I&#x27;m not looking for a job currently or in the foreseeable future, but I&#x27;m not against having a step in advance in case things go wrong
评论 #40039647 未加载
评论 #40042998 未加载
评论 #40040625 未加载