4个创业的项目 程序员创业项目有哪些

一年前, 我发表了“每个程序员都应该尝试的项目”一文 。 文中列出了每个程序员都应该去尝试的项目, 包括一个文本编辑器、太空入侵者游戏、一个 BASIC 编译器、一个小型的操作系统、一个电子表格和一个视频游戏控制台模拟器 。 这篇文章在网上爆红, 一个月内浏览量超过 10 万次 。
现在, 我要加入更多“现代”的项目:光线追踪器键值存储Web APIWeb浏览器股票交易机器人
光线追踪者它是 3D 图形!在发表前一篇文章后, 我收到很多评论, 建议加入光线追踪器 。 我同意了他们的建议 。 事实上, 这是我在 2009 年学习 C#时最先尝试的一个项目 。 如果你无法马上理解所有与数学相关的东西或术语, 请不要担心, 你可以循序渐进, 努力取得进步 。 网上有很多关于光线追踪器的资源优势, 在学习过程中, 你会获得强烈的视觉感受 。
光线跟踪器可以生成一些非常好看的图像, 只需要 300 行代码!首先, 你可能需要支持各种反射、光线和纹理, 或者你开始意识到原来渲染一张图片需要几分钟, 所以你开始优化 。 你可以使用线程并行化光线追踪器、减少交集的数量, 或者使用分析器来跟踪分配了多少对象并找出瓶颈 。
创意!我不想再去做另一个优化到半路的光线追踪器, 也不想追求超现实的折射效果 。 相反, 我特意降低了分辨率, 这样就可以做出实时动画 。 一个带有下落粒子旋转圆环的动图可以让你在推特上获得不少点赞 。 我认为独立游戏可以走这条路, 创造出独特的艺术风格 。 请期待我的 8 位复古视频游戏!
更多资料:系列书籍之“Ray Tracing In One Weekend”《计算机图形程序设计入门》计算机图形入门用Python开发光线跟踪器Go光线追踪器优化用JavaScript实现实时的光线追踪层次包围盒结构光线追踪宝石光线追踪器挑战实时渲染
键值存储 Web API键值存储实际上就是一个字典 。 向它提供一个键, 它就返回一个值 。 你可以添加新键、删除键或更新值 。 实际上, 这就是一个 NoSQL 数据库!不过你可以更进一步, 将其作为 Web API, 这样你未来的所有 Web 应用程序都可以使用你的数据库服务 。
我真的很喜欢这个项目, 因为用它来创建最基本的“数据库”真的很容易 。 你可以从使用任何一门编程语言所提供的字典数据结构开始, 并在这个基础之上添加一个 Web API 。 除此之外, 你还可以添加更多的内容:性能优化、安全性和多用户、原子事务、数据类型、批处理操作、持久性、故障恢复, 以及跨多个服务器运行能力 。 很快, 你就会拥有像 Redis 或 Amazon DynamoDB 那样价值 10 亿美元的产品 。
说真的, 打开你的代码编辑器, 并使用你最喜欢的编程语言尝试一下 。 为了获得不同的体验, 我用 Go 和 Racket 试过了, 并从中获得了很多启发 。 在一些小型的测试中, 我的 Go 版本的性能已经足够好了 。
更多资料:键值数据库B树数据结构原子性如何使用Go构建一个键值存储Badger:超快的Go键值数据库如果你想深入了解数据库, 可以看看这本《自己动手设计数据库》
Web 浏览器第一次面试一个软件开发岗位时, 面试官问我:“当你在浏览器上输入 Yelp.com 并按回车键时, 都发生了什么”?我回答得不好, 没有通过面试 。 于是, 我开始了解万物运作原理的旅程 。 我发现最有趣的是浏览器如何将 HTML 和 CSS 转换成渲染好的 Web 页面 。 这是一个很常见的面试题, 但我却因为太无知没有回答好 。 有一个非常棒的资源, 它为很多问题提供了答案 。
想要设计出一些足以击垮 Safari 或 Brave 的杀手级用户界面?不要抱太大希望了 。 在你达到那个目标之前, 还有很多事情要做!不如让我们来缩小一下范围, 假设你有一个 HTTP 库和一个 HTML 解析器, 你必须实现自己的渲染器 。 你不能使用 WebBrowser 或 WebKit 之类的东西 。 你会怎么做?
我的建议是从创建一个基于文本的 Web 浏览器开始 。 实际上, 你也可以忽略所有的格式化问题, 忽略所有的 JavaScript 和 CSS 。 你要做的是使用给定的 URL 执行 HTTP GET, 解析 HTML, 找到需要显示的文本, 并将其显示在屏幕上 。 你要做的就是这些 。
获得纯文本之后, 你就可以添加其他功能了 。 你可以添加标签、历史、后退和前进按钮, 等等 。 但到了某个时候, 你可能想要的不只是文本……那么祝你们好运 。 渲染网页视觉元素可能是我永远不会去尝试的事情, 或许要等到我有用不完的时间 。 一步一步来, 每次只关注一个 HTML 标记和属性 。 如果你想尝试这么做, 请让我知道是如何进行的 。

推荐阅读