將極大豐富你的編程技能和知識的10個項目
在編程行業想要有好的職業發展,必須有足夠的創造才能。那么,當你的創意枯竭或者不知道該如何培養創意時該怎么辦?
本文將給出十個編程提示,并附上要求指南,來給編程開發者提供一些思路和創意。
下文的項目將提供商業化的全棧技能,并且都可以在一兩個月內完成。如果把下班后和周末的時間都花在這些項目上,絕對是可以實現的。
每個項目都有足夠多的細節可以幫助開發者入門。我們的目標是采用可以在一段時間內完成的***編程實踐,盡快地創建和完成項目。
1. 建立一個間歇性禁食的應用程序
項目介紹
人們越來越關注健康和健身的話題,間歇性的禁食成為流行的做法。此項目需要創建一個可以在應用商店內獲取的移動應用程序。
對于JavaScript開發人員來說,這是深入研究跨平臺移動應用程序開發和使用各種框架(如Ionic、Flutter和React Native)的機會。
商業需求
- 可通知用戶禁食時長的計時器
- 可設置/編輯禁食開始和結束時間
- 可設置禁食提醒鬧鐘
- 跟蹤以下數據:結束禁食時間、7天平均禁食時間、最長的禁食時間、最長的連續禁食時間、當前連續禁食記錄
- 跟蹤圖表顯示:禁食目標、已達到目標、未達到目標
- 可選擇禁食方案:晝夜節律、16:8、18:6、20:4、36小時連續禁食
預期提升/掌握的技能
- 持久本地設備存儲方面的經驗
- 開發移動本地應用程序
- 利用移動設備的特定功能,如鬧鐘和通知
2. 制作新聞聚合器
項目介紹
世界上每天都在發生著海量的新聞,人們很難跟蹤所有事件的***進展??梢詣摻ㄒ粋€新聞聚合器應用程序,從多個來源提取聚合內容(RSS),并根據日期將其整合。
此應用程序可以基于移動設備,也可以基于網絡,具體取決于開發者想要在哪個平臺提升技能。
制作一個新聞聚合器的好處是不需要數據庫,并且可以只使用前端框架或庫(如Angular、React或Vue)將其構建為單頁應用程序。
商業需求
- 必須包含至少10個不同的資訊來源
- 按日期排序選項
- 按來源篩選選項
- 聚合到35個鏈接后分頁
預期提升/掌握的技能
- 能夠將XML數據轉換為可讀的JSON格式
- 了解前端架構
- 獲得框架/庫的經驗
- 外部資源使用
3. 使用外部應用程序調用接口(API)創建在線商店
項目介紹
Printful有一個可靠的應用程序調用接口,開發人員可以利用它來創建貼牌商品。使用它可以創建一個具有購物車和支付功能的、功能齊全的電子商店。
使用Pngtree中的圖片創建商品,并將其上傳到Printful的免費帳戶里,從而可以用MVP模式部分處理此應用程序。不需要太多的商品,只要10個就足夠用于測試。也可以使用Pngtree的模擬生成器來創建成品圖像。
理論上可以使用這個項目進行匿名驗證,并且不需要身份驗證系統。該項目的目的是幫助開發者深入了解應用程序調用接口的結構、工作機制以及商業層面上的配合方式。Printful提供了一個***的機會。
開發者還需要選擇支付通道提供商(Stripe或Paypal),并了解支付的方法。兩種支付通道都有測試版本,不需要現實中的貨幣就可以進行模擬購買。
商業需求
- 客戶可以查看商品
- 客戶可以添加商品到購物車
- 客戶可以查看運費
- 客戶可以下訂單
- 客戶可以查看/跟蹤訂單
預期提升/掌握的技能
- 了解商業應用程序調用接口套件的使用
- 了解常見的應用程序調用接口模式和結構
- 了解數據結構、JSON創建和使用
- 了解開發人員視角下的商業購物車流程
- 了解支付提供商處理流程
4. 使用自己的數據庫架構創建日志
項目介紹
從零開始的博客系統是提升CRUD技能以及創建數據庫體系結構能力的***方式。在這個項目中,開發者需要創建自己的應用程序調用接口,以連接數據庫和前端來顯示數據。
要關注博客的功能,而不是它的外觀。建議使用諸如Twitter Bootstrap 和CSS Materialize的引導程序來加快開發過程。
至于數據庫,可以使用MySQL數據庫,也可以使用MongoDB之類的無表格數據庫。由于歷史原因,大多數雇主仍在使用MySQL,而初創企業則更傾向于使用無表格架構。但無論選擇什么,它們都能有效地豐富你的簡歷。
該項目的重點是數據庫、連接到數據庫的接口以及數據的呈現。應用程序調用接口將帶你了解Node.js這一領域,或者任何你選擇的后端技術。
雖然一個博客聽起來很簡單,但它是個可以遷移到實際環境中的合適的全棧項目。
商業要求
- 用戶必須在發布前登錄
- 用戶可以創建、更新和刪除日志
- 用戶可以將類別和標記附加到日志上
- 任何人都可以查看日志
預期提升/掌握的技能
- 掌握數據庫體系
- 使用后端技術創建應用程序調用接口
- 提升對所選前端框架或庫的掌握程度
5.使用產品的外部應用程序調用接口創建心愿單應用程序
項目介紹
這個項目既需要創建自己的數據庫來跟蹤心愿,也需要使用外部應用程序調用接口。許多傳統零售商,如梅西百貨和沃爾瑪,都有可以用于這個練習的產品接口。
這個項目的優點是,開發者還需要創建自己的身份驗證系統,或者利用開放的系統(如社交賬號登錄),以便為每個用戶創建個性化的列表。開發者的選擇取決于時間和希望學習的技能。使用社交賬號登錄可能比創建自己的身份驗證系統更容易,因為開發者只需再次使用第三方應用程序調用接口。
商業要求
- 用戶可以創建列表
- 用戶可以從列表中添加/刪除項目
- 用戶可以將列表中的項目標記為已獲取
預期提升/掌握技能
- 使用外部商業應用程序調用接口
- 數據庫CRUD操作
- 提升對所選前端框架或庫的掌握程度
6. 制作一個廣告欄
項目介紹
Craigslist網站和其他招聘網站本質上都是電子廣告欄。開發者需要具備制作付費廣告位的能力,以此獲得報酬。
看起來這似乎是個比較簡單的功能,只需列出職位、創建表格,并添加支付方式就能完成。
商業要求
- 用戶必須能夠注冊賬戶和發布廣告
- 用戶支付后才能展示廣告
- 用戶可以保存廣告草稿
- 用戶可以修改草稿和展示中的廣告
- 廣告過期后不再顯示
- 廣告對任何人可見
預期提升/掌握的技能
- 創建、讀取、更新和刪除等數據庫操作
- 將API連接到數據庫
- 支付通道流程和實現
- 提升對選定前后端框架或庫的掌握
7. 搭建一個具有人工智能特性的預訂App
項目介紹
機器學習是今年最火爆的話題之一,人工智能也是這一潮流的一部分。Google、AWS和Microsoft Azure都為開發者提供人工智能云服務。開發者可以從***或者自己最感興趣的項目開始。
預訂應用程序就像個游戲。你是個有特殊偏好的顧客,為什么不用這些偏好來影響這個游戲,通過人工智能增加銷售量呢?
挑選一個需要預訂服務的行業,比如賓館、租車行或者餐廳,并創建一個允許用戶執行預訂操作的應用程序。然后讓人工智能基于用戶偏好給出建議。和朋友分享這一程序,測試它推銷產品的能力。開發者還需要一個數據庫來跟蹤所有的訂單。
使用社交媒體賬號登錄可以減少項目所需開發時間,但這并非必須。也可以使用Firebase的身份驗證系統來達到同樣的效果。如果開發者熱衷于建立自己的身份驗證系統,并且希望探索相關概念,這個領域有很多值得研究的內容。
可以把這個項目做成網站或者移動應用。它是個簡單有趣的小練習,簡單到足以入門,但也復雜到足以吸引潛在的面試官。
商業要求
- 用戶必須登陸以訪問預訂列表
- 用戶能夠執行預訂操作
- 系統能夠檢測用戶偏好和基于歷史數據提出建議
預期提升/掌握的技能
- 實現云端人工智能服務
- 理解身份驗證系統以及它與前端的關系
- 能夠跟蹤數據的數據庫架構
- 提升對選定前后端框架或庫的掌握
8. 搭建無服務器社區論壇
項目介紹
未來的人工智能是無服務器架構的。這一項目與云架構相適應,使得開發者有機會探索滿足項目需求的潛在架構方案。
本項目需要CRUD操作、身份驗證系統以及數據庫知識。但開發者的任務并非用傳統的MEAN棧、MERN棧在機器上搭建Node應用,而是采取分布式解決方案并且使用無服務器架構。這意味著一種稍有不同的在本地構建代碼的方式。這個練習能夠很好地鍛煉開發者應對各種困難的能力,同時幫助開發者培養新的思維習慣。
從編程角度來看,無服務器對于新手來說可能有些怪異,但它有自己的優點。名為serverless的框架可以幫助開發者的學習,并且它支持所有主流的服務供應商。這篇文檔非常出色,這一社群也正在蓬勃發展。
商業要求
- 用戶登錄后才能創建/編輯/刪除評論或帖子
- 用戶可以發帖
- 用戶可以評論
- 用戶可以回復帖子中的評論
- 帖子和評論對任何人可見
預期提升/掌握的技能
- 理解無服務器架構的基礎知識
- 理解無服務器條件下的CRUD操作和數據庫連接
- 理解身份驗證系統的工作機制
- 提升數據庫搭建技能
- 接觸云服務
9. 搭建一個基于云服務的聊天室
項目介紹
基于雷達應用的即時通訊工具極大地影響了人們的日常生活,以至于人們甚至不再注意它們。這個項目所需的主要技能是在無需刷新頁面的條件下動態更新消息。
如果開發者不熟悉這一領域,或者不知道應該使用哪種服務,這一點可能有些困難。AWS有個叫做AppSync的應用,Google有Firebase,而Azure也有SignalR。這些只是建議,還有其他可用于不同服務的架構。
這一項目將讓開發者了解他們選擇的云服務商的產品。云端編程本質上也是其中之一。學會使用這些產品能夠拓展開發者的能力范圍。
商業要求
- 用戶可以使用昵稱匿名聊天
- 用戶可以登錄聊天
- 已登錄用戶可以創建聊天室
- 已登錄用戶可以將聊天室設置為公開或私密
- 匿名用戶只能訪問公開聊天室
- 用戶可以在聊天室中發送消息
- 用戶可以刪除自己創建的聊天室
- 用戶可以邀請其他用戶加入私密聊天室
- 只有加入私密聊天室的用戶才能在其中瀏覽和發送消息
預期提升/掌握的技能
- 了解指定的云服務
- 學會一系列特定服務的使用方式以及不同服務配合的方式
- 身份驗證系統
- 數據庫連接和更新
10. 擴展聊天室以包含付費訂閱選項
項目介紹
前文列出的所有項目可能涵蓋了制作商業項目所需技能的90%,但是付費訂閱功能卻沒有被提及。
訂閱功能需要開發者了解選定的支付服務供應商的應用程序接口以及支付流程。這就是在此提及這個項目來補充已有項目的原因。理論上,訂閱功能可以用于以上任何一個項目,因為訂閱功能的要求一般都是一致的。
Stripe和Paypal都把支付功能和其他沙盒環境一起作為自身應用程序接口的一部分。
商業要求
- 用戶能夠登錄訂閱以獲得內容訪問權限
- 用戶可以取消訂閱
- 用戶可以把訂閱作為禮物贈送給其他用戶
預期提升/掌握的技能
- 了解選定的支付功能供應商的訂閱功能
- 實現支付沙盒
結語
每個項目都需要獨特的技能和知識,但也涉及一些重復的部分。
開發者的代碼量越豐富,就越能跳出選擇的特定編程語言或者技術棧,識別出重復應用的模式。上面的項目會為開發者執行CRUD操作和搭建身份驗證系統打下堅實的基礎。如今,它們是在幾乎任何商業項目中都至關重要。
記住,這些項目的目的是豐富技能和編程知識。關注重要的特性而不是細枝末節,除非那正是你想要提升的技能。開發者可以盡可能地自己實現這些功能,或者在頭腦中搭建可擴展和可增長的結構。具體的編程和實現方式將基于開發者目前的編程水平。