掌握這十個編程項目,讓你的簡歷含金量暴漲
學習編程時常見的一個問題是:設計程序時,什么樣的想法算是好的?
如今,大家會經常聽到一些陳詞濫調式的答案,如:“做個象棋游戲”或者“命令行界面”,這些答案確實沒錯,但它們沒有適應現代編程的需求。
現代軟件很大一部分是SaaS和web應用。這意味著你需要了解在線編程。編寫擁有用戶的網站或者應用程序,需要服務器、身份認證和數據庫,這操作起來要復雜得多。必然會要用到那些在開發一行命令的井字游戲時永遠用不到的技術。
其中一些可以由AWS或其他一些大公司通常用的第三方平臺完成。同樣,還是會接觸到在行業中多數人傾向的有用技術。這會給你的簡歷加分,同時有助于學習如何使用新技術。
如果選的項目很復雜,那就集中精力關注一個特性。一次性建立完整的網站或者應用程序是很難的。從創建一個登陸頁面開始,或用戶的著陸頁。如果試圖立刻一下子接手整個項目,那么很大概率會失敗。
娛樂
1. 無需人工干預便能發布前10名博客的web爬蟲工具
一些推薦項目的帖子中存在的問題之一是那些編程不能激勵程序員繼續開發下去。
例如,很多人建議開發web爬蟲。一旦構建了web爬蟲,就會抓取數據,那這些數據有什么用呢?
相較于僅抓取數據,為什么不利用它們建立一個網站呢?不一定要太花哨也無需很多評價。該爬蟲工具可以將數據錄入數據庫,選出最受歡迎的帖子,復制標題和幾個句子,然后創建一個在線分享的帖子。項目雖簡單,但能真正展示出它精彩的一面。
現在已經表明,你能做的不僅只是對系統的一小部分進行代碼的編寫。相反,你可以思考整個系統。這需要考慮如何實現流程自動化、數據庫管理、網站創建和帖子的選擇。實際上,你也創建了一個有形的最終產品。
沒有那樣的成品,真的很容易使人變得毫無動力,結果只能停留在web爬蟲的建立上。
此外,也許你永遠不知道你的網站會很受歡迎!
涉及技能:數據庫操作、web爬蟲應用、自動化、web開發(針對博客)、一般程序設計。
2. 使用Meetup和Eventbrite APIs的行程提醒系統
你是否曾經想去看樂隊或喜劇表演,卻意識到那是上周的事嗎?也許你所在的地區舉行了一個關于數據科學或大數據的免費會議,但你卻因為忘記檢查日期而錯過了。
為什么不使用Meetup和Eventbrite APIs創建自己的信息收納器呢?當描述的事件或標題中出現關鍵字時,它會通知你。現在,假設Meetup和Eventbrite都有相似的選項,但是嘗試建立自己的系統總是很有趣的。
你可以定制系統,讓它按照你想要的方式運轉,甚至可以把它變成一個網站,讓其他人來制作自己的行程提醒。我們喜歡這個項目的原因是可以練習使用兩種不同的APIs。你可以比較歸納兩者中你喜歡和不喜歡的地方。這樣一來,如果你曾經負責構建一個API,將會更好地了解什么是有效的,什么是無效的。
涉及技能:APIs、數據庫、自動化、web開發、一般編程設計。
3. 仿冒9GAG
在創建自己的項目時,并不總是需要嘗試重復造輪子。簡單的項目,如可以登錄、發布照片、GIF包和通過訂閱源更新內容的網站,給先創建堅實基礎網站提供了一個機會。然后可以添加許多有趣的功能,比如關注、點贊和搜索。特別是搜索功能,將是了解推薦系統和機器學習的好機會!
嘗試仿制流行網站總是很有趣的。事實上,這實際是一種很好的學習方式,因為你必須對每個功能進行逆向工程。逆向工程是一項非凡的技能,因為作為一名軟件工程師,你將不斷地維護他人的代碼,潛入他們的系統插件。
涉及技能:機器學習(針對推薦系統)、數據庫、自動化、web開發、一般程序設計。
零售類網站
4. 推薦禮物的應用程序
你是否曾經為朋友尋找合適的禮物而感到煩惱?如果你能創建一個告訴你如何為朋友挑選禮物的網站呢?終端用戶在這里不僅可以創建賬戶還能得到禮物推薦。
同樣,這也為創建需要身份驗證、數據庫開發等的帳戶提供了機會。
此外,這個項目的另一個重要部分是可以使用亞馬遜的API作為附屬鏈接,憑借它你可以做一些事情。其一,了解如何使用APIs,并可以輕松閱讀API文檔。其二,如果做得好,你可以從每件他人購買的產品中獲得傭金。
這個項目也有機會嘗試創建一個基礎的機器學習模型。可以創建一個測驗,嘗試找出什么是適合的禮物,然后,根據人們是否點擊該禮物,從而使得模型基于回應率學習。
涉及技能:APIs、數據庫、一般程序設計、應用程序開發。
5. 物物交易網站
想想OfferUp(二手閑置交易平臺),與其花錢,倒不如創建一個僅允許物物交易的網站。這個概念促使你在開發功能前需進行一番思索。沒有計劃,你就不能拿下這個項目。
人們如何發布,在哪里找到最近發布的物品,以及如何搜索,這些都是可以構建的獨立功能。此外,你需要考慮用戶如何互動,甚至他們實際上是如何進行交易的。
這個想法在真實生活中不一定100%實用,但在提高程序員的技能方面必須切實可行。
涉及技能:數據庫、web開發、一般程序設計、應用程序開發(前提是選擇開發一個應用程序)。
B2B
6. 發票和合同管理系統
合同和發票管理是非常復雜的過程。因為有許多難以追蹤的有著細微差異的條款和規定。
即使你將它簡化為一些核心組件,它還是會成為一個非常好的項目。將復雜的業務流程轉化為軟件系統并不容易。但該項目也因此成為很好的挑戰。
還是那樣,別把這個項目過度復雜化。使用一個基本功能,比如輸入合同條款,而且首先開發這一部分。然后,可以添加其他一些功能,如發票跟蹤、合同分析和預測。
涉及技能:過程管理、數據庫、web開發、一般程序設計。
7. 任務管理系統
像KanbanFlow這樣的任務板是由幾個模塊化功能構建而成,這樣一個大項目讓我們有了更多的嘗試。剛開始有一些操作,正如需要建立一個穩定的動態用戶界面一樣。事實上,這個項目更多的是兩個人的工作。一個人在前端,另一個人在后端。
不要因此而氣餒!這實際上是你提高溝通和團隊合作技能的機會。你需要通過討論設計內容來確保你們都完全理解該項目,知道你們的模塊將連接到哪里。通常,這比看上去還具有挑戰性。
涉及技能:溝通、前端、數據庫、web開發、一般程序設計。
8. 工作板
任何允許各種類型的用戶輸入內容的項目都會為設計添加一個有趣元素。與潛在求職者相比,你如何確保雇主體驗網站的方式滿足他們的需求?像大多數其他項目一樣,你不需要同時關注所有的功能。首先嘗試創建發布工作職位的功能。然后可以去關注求職者和他們的反應。
涉及技能:數據庫、web開發、一般程序開發。
9. 基于預測利潤的網站
對于大多數公司來說,有許多非常標準化的數據集。這包括通常基于成本中心、賬戶、行描述以及最終實際交易成本的會計數據。
任何數據集標準化的偉大之處在于,在該數據集之上進行分析會變得容易。為何不創建一個標準化的儀表板,幫助公司預測支出,查看每月支出,并可能幫助他們減少支出。
對于這個項目,你可能要花很多時間學習如何確保數據安全。當然,建議大家在深入研究安全性之前,首先嘗試構建側重于獲取和標準化數據和數據可視化的模塊。那是一個永遠避免不了的步驟!
涉及技能:預測、商業邏輯、數據庫、web開發、一般程序設計。
游戲思維
10. 貪吃蛇
如果你在21世紀初擁有手機,可能已經玩過貪吃蛇了。這是一個簡單的游戲,但是你總是可以試著讓事情變得更復雜有趣!首先,從嘗試做游戲開始。
這要求你弄清楚如何在線開發游戲。Sebastian Opperman的《霓虹蛇》是一個很好的開始。不過在原有的基礎上,可以添加一些很酷的新功能,比如特殊物品或者特殊能力。
這會是一個玩游戲和娛樂的機會。從有很多用戶注冊并使用該網站的角度來看,這個項目不需要什么專業技巧性操作。然而,如何讓游戲在線運行是一個很棒的挑戰。