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 標記和屬性 。 如果你想嘗試這么做, 請讓我知道是如何進行的 。

推薦閱讀