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