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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

A list of practical projects that anyone can solve in any programming language

320 点作者 truth_seeker超过 6 年前

17 条评论

mrsuprawsm超过 6 年前
Not only do I doubt that &quot;anyone&quot; can write these programs, most of them do not look particularly interesting or fun. Many if not all of the non-mathematical ones are simply replicating off-the-shelf utilities or tools; what is the point of reinventing the wheel?<p>Even if you are looking to hone your skills in a new language, creating something genuinely new seems like it would be more useful and motivational.
评论 #18501665 未加载
评论 #18502036 未加载
评论 #18502997 未加载
评论 #18501712 未加载
评论 #18501201 未加载
评论 #18505229 未加载
评论 #18501436 未加载
评论 #18504380 未加载
评论 #18503572 未加载
评论 #18503042 未加载
albertzeyer超过 6 年前
Writing a game should be on the list as well. You touch many of the listed topics, and some more, have to combine them in an efficient way, and also it&#x27;s fun. And your can write games of any complexity level.
评论 #18501610 未加载
评论 #18501009 未加载
sethammons超过 6 年前
Fun enough list. I&#x27;m not sure the &quot;any programming language&quot; part holds up. Some of these programs require a GUI element. Others, you have to squint at to see how you would put into some languages due to the wording (cough, class and abstract class, cough). The web ones, it will be hard to avoid JavaScript.
评论 #18503865 未加载
AndrewOMartin超过 6 年前
I would add a bunch of cellular automata to that list, Conway&#x27;s Game of Life, Wolfram and Wireworld are easy to make something very rewarding, cover many bases, and are absolutely open ended.
评论 #18501137 未加载
a-saleh超过 6 年前
Looks really good :-)<p>I would just change <i>Classes</i> sot something more generic like <i>Domain modeling</i>?<p>I.e. I am thinking of using this as a list to help me learn some languages I find interesting, currently Purescript&#x2F;Haskell and ReasonML&#x2F;Ocaml. I don&#x27;t think you would model any of the solutions to the projects in the list by creating class-hierarchies (and Ocaml even is capable of creating class-hierarchies.)<p>Even in more mainstream languages, such as Golang or Javascript, you wouldn&#x27;t go with classes&#x2F;inheritance.
评论 #18501036 未加载
cstuder超过 6 年前
My personal favorite to implement in order to learn a new framework (mostly GUI oriented): A RPN calculator.<p>Learn about stacks, state, GUI... Small enough in scope, lots of additional features imaginable.
outime超过 6 年前
Personally (but most likely majority of the people) motivation is so much higher when new knowledge can be applied in the short-term, and a pool of ideas like this comes very useful after e.g. reading the basics of a language.
评论 #18501441 未加载
Someone超过 6 年前
Nice list, but ‘anyone’? The first on the list is <i>”Find PI to the Nth Digit - Enter a number and have the program generate PI up to that many decimal places. Keep a limit to how far the program will go”</i><p>Easily solvable if you set that limit low and cheat. Just put a string representation of pi in the program, and chop it off at the requested length:<p><pre><code> n = Input “num digits?” if n between 0 and 8 inclusive print left(“3.1415927”, n+1) else print “number out of supported range” </code></pre> If you don’t cheat or if <i>”Keep a limit to how far the program will go”</i> doesn’t mean what I read in it, I have my doubts <i>anyone</i> can write that program, even with support from Google.
评论 #18501077 未加载
评论 #18503325 未加载
评论 #18501307 未加载
评论 #18501085 未加载
评论 #18501090 未加载
评论 #18501317 未加载
fooker超过 6 年前
It&#x27;s sad that there isn&#x27;t a single item related to implementing a compiler or an interpreter here.<p>That is how I got interested in computer science, and I can bet, a significant fraction of the others here had that experience too.
评论 #18505248 未加载
AllegedAlec超过 6 年前
Additional one which I found very fun to dick around with: a symbolic calculator capable of doing simple differentiation and integration.
评论 #18501682 未加载
dragonwriter超过 6 年前
There&#x27;s a whole set specifically about class-based OO, which is pretty hard for “anybody” to solve in a non-class-based or non-OO language; any solution involves developing a class-based OO extension to the language, which is kind of big deal.<p>That could probably be addressed in part by focussing on <i>types</i> or <i>data structures</i> rather than classes per se.<p>Similarly, there are problems which mandate threading rather than either concurrency or parallelism, whichever is intended; there are languages in which threads <i>as such</i> are not directly supported, but with one or more structures for concurrency&#x2F;parallelism that could solve the problem (and languages where threads are supported but directly using them may not be the idiomatic approach depending on the actual concurrency&#x2F;parallelism requirements.)<p>So, for a language-neutral set of tasks, it focuses in some places too much on specific languages solutions rather than the problem to be solved.
OliverJones超过 6 年前
How about this?<p>Write an autopilot module to take inputs from altimeters, airspeed instruments, compasses, gyros, GPS, and user input. Give outputs suitable for controlling ailerons, elevator, rudder, and throttles. Extra credit: deploy it in an airliner. :-) :-)
holografix超过 6 年前
Recently implemented A* Path finding algo using Go as a way to learn Go. Couldn&#x27;t help myself and went ahead and added a UI layer on top of it using a 2d game library called Ebiten.<p>Very fun little project! Got a hairy bug, which took me about 1-2 hours to figure out, which involved not realising that when I created a struct and added it to a slice, it was not the same struct as I had just created, in terms of memory address!<p>So in pseudo code:<p>myThing := struct{attributes...} mySlice[0] := myThing sameThing := mySlice[0] &amp;sameThing == &amp;myThing False<p>Definitely know Go a lot better now. Looking forward to doing some others on this list.
jonathanstrange超过 6 年前
If you&#x27;re talking German, I can wholeheartedly recommend <i>Taschenbuch der Algorithmen</i> by Vöcking et al., Springer 2008. Unlike the name suggests, it is a highly entertaining, but more or less unsystematic collection of common and also less common algorithms. The descriptions are informal and just detailed enough so you can implement them on your own.<p>It&#x27;s a great little book that is unfortunately only available in German.
em-bee超过 6 年前
i would love to see these projects and solutions be contributed to <a href="https:&#x2F;&#x2F;rosettacode.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;rosettacode.org&#x2F;</a><p>the readme mentions rosettacode as inspiration, which is great. i live the idea of working on tasks through git, but i&#x27;d love it even more if i could work on rosettacode tasks directly this way.<p>greetings, eMBee.
dasanman超过 6 年前
The Web list is a good one for beginners
leoh超过 6 年前
This is seriously awesome