1. 程式人生 > >10個業餘時間可完成的專案,助你飛速提升編碼能力!

10個業餘時間可完成的專案,助你飛速提升編碼能力!

全文共4586字,預計學習時長9分鐘

在這裡插入圖片描述
圖片來源:Aphinya Dechalert.

在程式設計行業想要有好的職業發展,必須有足夠的創造才能。那麼,當你的創意枯竭或者不知道該如何培養創意時該怎麼辦?

本文將給出十個程式設計提示,並附上要求指南,來給程式設計開發者提供一些思路和創意。

下文的專案將提供商業化的全棧技能,並且都可以在一兩個月內完成。如果把下班後和週末的時間都花在這些專案上,絕對是可以實現的。

每個專案都有足夠多的細節可以幫助開發者入門。我們的目標是採用可以在一段時間內完成的最佳程式設計實踐,儘快地建立和完成專案。

在這裡插入圖片描述

by studiog
在這裡插入圖片描述

1. 建立一個間歇性禁食的應用程式

專案介紹

人們越來越關注健康和健身的話題,間歇性的禁食成為流行的做法。此專案需要建立一個可以在應用商店內獲取的移動應用程式。

對於JavaScript開發人員來說,這是深入研究跨平臺移動應用程式開發和使用各種框架(如Ionic、Flutter和React Native)的機會。

商業需求

· 可通知使用者禁食時長的計時器

· 可設定/編輯禁食開始和結束時間

· 可設定禁食提醒鬧鐘

· 跟蹤以下資料:結束禁食時間、7天平均禁食時間、最長的禁食時間、最長的連續禁食時間、當前連續禁食記錄

· 跟蹤圖表顯示:禁食目標、已達到目標、未達到目標

· 可選擇禁食方案:晝夜節律、16:8、18:6、20:4、36小時連續禁食

預期提升/掌握的技能

· 持久本地裝置儲存方面的經驗

· 開發移動本地應用程式

· 利用移動裝置的特定功能,如鬧鐘和通知

在這裡插入圖片描述
by studiog

在這裡插入圖片描述

2. 製作新聞聚合器

專案介紹

世界上每天都在發生著海量的新聞,人們很難跟蹤所有事件的最新進展。可以建立一個新聞聚合器應用程式,從多個來源提取聚合內容(RSS),並根據日期將其整合。

此應用程式可以基於移動裝置,也可以基於網路,具體取決於開發者想要在哪個平臺提升技能。

製作一個新聞聚合器的好處是不需要資料庫,並且可以只使用前端框架或庫(如Angular、React或Vue)將其構建為單頁應用程式。

商業需求

· 必須包含至少10個不同的資訊來源

· 按日期排序選項

· 按來源篩選選項

· 聚合到35個連結後分頁

預期提升/掌握的技能

· 能夠將XML資料轉換為可讀的JSON格式

· 瞭解前端架構

· 獲得框架/庫的經驗

· 外部資源使用

在這裡插入圖片描述
by studiog

在這裡插入圖片描述
3. 使用外部應用程式呼叫介面(API)建立線上商店

專案介紹

Printful有一個可靠的應用程式呼叫介面,開發人員可以利用它來建立貼牌商品。使用它可以建立一個具有購物車和支付功能的、功能齊全的電子商店。

使用Pngtree中的圖片建立商品,並將其上傳到Printful的免費帳戶裡,從而可以用MVP模式部分處理此應用程式。不需要太多的商品,只要10個就足夠用於測試。也可以使用Pngtree的模擬生成器來建立成品影象。

理論上可以使用這個專案進行匿名驗證,並且不需要身份驗證系統。該專案的目的是幫助開發者深入瞭解應用程式呼叫介面的結構、工作機制以及商業層面上的配合方式。Printful提供了一個絕佳的機會。

開發者還需要選擇支付通道提供商(Stripe或Paypal),並瞭解支付的方法。兩種支付通道都有測試版本,不需要現實中的貨幣就可以進行模擬購買。

商業需求

· 客戶可以檢視商品

· 客戶可以新增商品到購物車

· 客戶可以檢視運費

· 客戶可以下訂單

· 客戶可以檢視/跟蹤訂單

預期提升/掌握的技能

· 瞭解商業應用程式呼叫介面套件的使用

· 瞭解常見的應用程式呼叫介面模式和結構

· 瞭解資料結構、JSON建立和使用

· 瞭解開發人員視角下的商業購物車流程

· 瞭解支付提供商處理流程

在這裡插入圖片描述
by jemastock

4. 使用自己的資料庫架構建立日誌

專案介紹

從零開始的部落格系統是提升CRUD技能以及建立資料庫體系結構能力的絕佳方式。在這個專案中,開發者需要建立自己的應用程式呼叫介面,以連線資料庫和前端來顯示資料。

要關注部落格的功能,而不是它的外觀。建議使用諸如Twitter Bootstrap 和CSS Materialize的載入程式來加快開發過程。

至於資料庫,可以使用MySQL資料庫,也可以使用MongoDB之類的無表格資料庫。由於歷史原因,大多數僱主仍在使用MySQL,而初創企業則更傾向於使用無表格架構。但無論選擇什麼,它們都能有效地豐富你的簡歷。

該專案的重點是資料庫、連線到資料庫的介面以及資料的呈現。應用程式呼叫介面將帶你瞭解Node.js這一領域,或者任何你選擇的後端技術。

雖然一個部落格聽起來很簡單,但它是個可以遷移到實際環境中的合適的全棧專案。

商業要求

· 使用者必須在釋出前登入

· 使用者可以建立、更新和刪除日誌

· 使用者可以將類別和標記附加到日誌上

· 任何人都可以檢視日誌

預期提升/掌握的技能

· 掌握資料庫體系

· 使用後端技術建立應用程式呼叫介面

· 提升對所選前端框架或庫的掌握程度

在這裡插入圖片描述
by studiog

在這裡插入圖片描述

5.使用產品的外部應用程式呼叫介面建立心願單應用程式

專案介紹

這個專案既需要建立自己的資料庫來跟蹤心願,也需要使用外部應用程式呼叫介面。許多傳統零售商,如梅西百貨和沃爾瑪,都有可以用於這個練習的產品介面。

這個專案的優點是,開發者還需要建立自己的身份驗證系統,或者利用開放的系統(如社交賬號登入),以便為每個使用者建立個性化的列表。開發者的選擇取決於時間和希望學習的技能。使用社交賬號登入可能比建立自己的身份驗證系統更容易,因為開發者只需再次使用第三方應用程式呼叫介面。

商業要求

· 使用者可以建立列表

· 使用者可以從列表中新增/刪除專案

· 使用者可以將列表中的專案標記為已獲取

預期提升/掌握技能

· 使用外部商業應用程式呼叫介面

· 資料庫CRUD操作

· 提升對所選前端框架或庫的掌握程度

在這裡插入圖片描述
by studiog
在這裡插入圖片描述

6. 製作一個廣告欄

專案介紹

Craigslist網站和其他招聘網站本質上都是電子廣告欄。開發者需要具備製作付費廣告位的能力,以此獲得報酬。

看起來這似乎是個比較簡單的功能,只需列出職位、建立表格,並新增支付方式就能完成。

商業要求

· 使用者必須能夠註冊賬戶和釋出廣告

· 使用者支付後才能展示廣告

· 使用者可以儲存廣告草稿

· 使用者可以修改草稿和展示中的廣告

· 廣告過期後不再顯示

· 廣告對任何人可見

預期提升/掌握的技能

· 建立、讀取、更新和刪除等資料庫操作

· 將API連線到資料庫

· 支付通道流程和實現

· 提升對選定前後端框架或庫的掌握

在這裡插入圖片描述
by gstudioimagen

在這裡插入圖片描述

7. 搭建一個具有人工智慧特性的預訂App

專案介紹

機器學習是今年最火爆的話題之一,人工智慧也是這一潮流的一部分。Google、AWS和Microsoft Azure都為開發者提供人工智慧雲服務。開發者可以從最流行或者自己最感興趣的專案開始。

預訂應用程式就像個遊戲。你是個有特殊偏好的顧客,為什麼不用這些偏好來影響這個遊戲,通過人工智慧增加銷售量呢?

挑選一個需要預訂服務的行業,比如賓館、租車行或者餐廳,並建立一個允許使用者執行預訂操作的應用程式。然後讓人工智慧基於使用者偏好給出建議。和朋友分享這一程式,測試它推銷產品的能力。開發者還需要一個數據庫來跟蹤所有的訂單。

使用社交媒體賬號登入可以減少專案所需開發時間,但這並非必須。也可以使用Firebase的身份驗證系統來達到同樣的效果。如果開發者熱衷於建立自己的身份驗證系統,並且希望探索相關概念,這個領域有很多值得研究的內容。

可以把這個專案做成網站或者移動應用。它是個簡單有趣的小練習,簡單到足以入門,但也複雜到足以吸引潛在的面試官。

商業要求

· 使用者必須登陸以訪問預訂列表

· 使用者能夠執行預訂操作

· 系統能夠檢測使用者偏好和基於歷史資料提出建議

預期提升/掌握的技能

· 實現雲端人工智慧服務

· 理解身份驗證系統以及它與前端的關係

· 能夠跟蹤資料的資料庫架構

· 提升對選定前後端框架或庫的掌握

在這裡插入圖片描述
by gstudioimagen

在這裡插入圖片描述

8. 搭建無伺服器社群論壇

專案介紹

未來的人工智慧是無伺服器架構的。這一專案與雲架構相適應,使得開發者有機會探索滿足專案需求的潛在架構方案。

本專案需要CRUD操作、身份驗證系統以及資料庫知識。但開發者的任務並非用傳統的MEAN棧、MERN棧在機器上搭建Node應用,而是採取分散式解決方案並且使用無伺服器架構。這意味著一種稍有不同的在本地構建程式碼的方式。這個練習能夠很好地鍛鍊開發者應對各種困難的能力,同時幫助開發者培養新的思維習慣。

從程式設計角度來看,無伺服器對於新手來說可能有些怪異,但它有自己的優點。名為serverless的框架可以幫助開發者的學習,並且它支援所有主流的服務供應商。這篇文件非常出色,這一社群也正在蓬勃發展。

商業要求

· 使用者登入後才能建立/編輯/刪除評論或帖子

· 使用者可以發帖

· 使用者可以評論

· 使用者可以回覆帖子中的評論

· 帖子和評論對任何人可見

預期提升/掌握的技能

· 理解無伺服器架構的基礎知識

· 理解無伺服器條件下的CRUD操作和資料庫連線

· 理解身份驗證系統的工作機制

· 提升資料庫搭建技能

· 接觸雲服務

在這裡插入圖片描述
by jemastock

在這裡插入圖片描述

9. 搭建一個基於雲服務的聊天室

專案介紹

基於雷達應用的即時通訊工具極大地影響了人們的日常生活,以至於人們甚至不再注意它們。這個專案所需的主要技能是在無需重新整理頁面的條件下動態更新訊息。

如果開發者不熟悉這一領域,或者不知道應該使用哪種服務,這一點可能有些困難。AWS有個叫做AppSync的應用,Google有Firebase,而Azure也有SignalR。這些只是建議,還有其他可用於不同服務的架構。

這一專案將讓開發者瞭解他們選擇的雲服務商的產品。雲端程式設計本質上也是其中之一。學會使用這些產品能夠拓展開發者的能力範圍。

商業要求

· 使用者可以使用暱稱匿名聊天

· 使用者可以登入聊天

· 已登入使用者可以建立聊天室

· 已登入使用者可以將聊天室設定為公開或私密

· 匿名使用者只能訪問公開聊天室

· 使用者可以在聊天室中傳送訊息

· 使用者可以刪除自己建立的聊天室

· 使用者可以邀請其他使用者加入私密聊天室

· 只有加入私密聊天室的使用者才能在其中瀏覽和傳送訊息

預期提升/掌握的技能

· 瞭解指定的雲服務

· 學會一系列特定服務的使用方式以及不同服務配合的方式

· 身份驗證系統

· 資料庫連線和更新

在這裡插入圖片描述
by djvstock

在這裡插入圖片描述

10. 擴充套件聊天室以包含付費訂閱選項

專案介紹

前文列出的所有專案可能涵蓋了製作商業專案所需技能的90%,但是付費訂閱功能卻沒有被提及。

訂閱功能需要開發者瞭解選定的支付服務供應商的應用程式介面以及支付流程。這就是在此提及這個專案來補充已有專案的原因。理論上,訂閱功能可以用於以上任何一個專案,因為訂閱功能的要求一般都是一致的。

Stripe和Paypal都把支付功能和其他沙盒環境一起作為自身應用程式介面的一部分。

商業要求

· 使用者能夠登入訂閱以獲得內容訪問許可權

· 使用者可以取消訂閱

· 使用者可以把訂閱作為禮物贈送給其他使用者

預期提升/掌握的技能

· 瞭解選定的支付功能供應商的訂閱功能

· 實現支付沙盒

在這裡插入圖片描述

結語

每個專案都需要獨特的技能和知識,但也涉及一些重複的部分。

開發者的程式碼量越豐富,就越能跳出選擇的特定程式語言或者技術棧,識別出重複應用的模式。上面的專案會為開發者執行CRUD操作和搭建身份驗證系統打下堅實的基礎。如今,它們是在幾乎任何商業專案中都至關重要。

記住,這些專案的目的是豐富技能和程式設計知識。關注重要的特性而不是細枝末節,除非那正是你想要提升的技能。開發者可以儘可能地自己實現這些功能,或者在頭腦中搭建可擴充套件和可增長的結構。具體的程式設計和實現方式將基於開發者目前的程式設計水平。

在這裡插入圖片描述
留言 點贊 關注
我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”
在這裡插入圖片描述
新增小編微信:dxsxbb