【one觀點】做一個開源專案
對於普通程式猿來說,擁有一個開源專案就意味著你需要把自己約會、打遊戲、刷劇的時間貢獻出來,去編寫一個非直接利益相關的程式碼。
當然,更多情況下,應該是某猿(媛)在工作的專案中受到了啟發,覺得可以把某個元件提煉出來,作為自己的一個積累,然後編寫一個demo釋出到開源社群,順便寫寫部落格,記錄一下自己的工作歷程。能收穫人氣或start數自然更好,再不濟用來自己日後檢視總結,也是一個非常好的資源。
我個人覺得,那些對技術非常熱衷的大牛們,要麼就是堅持寫自己技術部落格的,要麼就是由自己開源專案的,或者這兩者都有(那可以說是非常厲害了)
我雖然也寫過一些技術部落格,在git上傳過幾個專案,但是礙於自身水平,更多的內容其實都是在總結網上教程和一些程式設計技巧,二次加工把他們釋出出去,然後美其名曰積累,畢竟都是程式設計師的事情嘛,怎麼能叫抄(手動滑稽)
雖然質量一般般,但是我還是覺得,有總比沒有強吧,一點點積累唄。
學習就是一個輸入和輸入的過程。搬磚、寫部落格、做開源專案,都是輸出,而唯有讀書、看教程、寫總結才算是輸入。二者之前是需要找到一個平衡的,接下來的事情,就是自然而然地在平衡點間成長。
什麼是開源
開源並不是一堆原始碼,而是一個相對完整的工程體系。
一個完整的開源專案應該包含如下的幾個內容:
原始碼
文件 使用的文件和二次開發的文件
開發環境 環境搭建
允許他人貢獻程式碼
問題回答社群 QQ群或交流平臺的搭建和維護
問題列表和升級計劃 公開問題並記錄,確定升級計劃,給開發者一個可預期的結果
為什麼開源
開源能帶來的好處如下:
全面提升程式設計能力:從0開始打造,負責專案的方方面面,而不再是像平時工作中只負責一部分。
提升社群知名度: gitHub star數量能夠間接反映一個程式設計師在業界的影響力,得到行業同行的認可。
提升產品意識: 因為是做的開源產品,所以會涉及到運維、推廣、收集反饋等環節。
技術範兒、極客精神:作為一個程式猿,能有一個自主開發運維的專案,其實是一個件蠻cool和成就感爆棚的事情。
不要做哪些開源
複雜的大型框架,例如UI框架,短期內做不完,使用成本高。
模擬成熟的輪子,例如再造一個Jquery,業內已有成熟方案,使用者不會替換。
小眾的東西,基本沒人用
沒有特色,100%模仿,使用者沒有理由更換。
做什麼型別的開源?
要知道想做什麼,就得先明半你做開源的一些期望,然後再去想做什麼:
要快速做出第一版,至少能用,後面在慢慢迭代升級
要方便地推廣使用,最好是0成本使用。
那麼具體可以做哪些內容呢:
小而精的工具,開發快,成本低
要有特色,那麼只有一個,也要差異化競爭。
一定要大眾,50%以上的開發人員有相應的使用場景
避免壟斷市場的技術框架,比如Jquery、Vue、React等
ok,如果你心中已經有了一個小想法,仔細琢磨了一下之後覺得還不錯,那麼一定一定要慢慢著手開始做,因為只有開始實踐,才能有進展!
如何宣傳
寫部落格:即便不是為了開源,平時也可以寫寫部落格,如果說是為了專門宣傳開源產品,可以介紹一下開源產品應用的場景問題,或者記錄一下開發這個開源產品過程中遇到的坑以及如何解決他們的。以一個引子,過度出自己的開源產品。
把部落格釋出到各大部落格平臺,例如簡書、CSDN、掘金等
在問答平臺上回答相關的問題,然後順帶推薦自己的開源產品,回答儘量符合如下的原則:
(1)字數只能多不能少,最好圖文並茂,還能講個笑話
(2)回答要專業,經過親自測試,不要想當然地瞎猜
(3)回答問題的最後,順便推廣自己的產品口碑宣傳
(1)明確產品定位,有特色,做“T”型產品,差異化競爭,大體及格,一方面突出即可。
(2)及時回覆問題,定期更新升級,做好升級計劃,讓使用者看到產品在不斷進步和變化
以上,只摘要了部分我覺得不錯的內容,有興趣的小夥伴可以去慕課上觀看完整的教程~
筆者個人訂閱號~歡迎小夥伴們關注
若有疑問可以QQ聯絡筆者,雖然不一定100%解決你的問題,但是可以交流探討一波:2276604211
順便打個內推廣告:如果有想入職中國銀聯上海技術開發的童鞋,也可以加上面的QQ資訊,筆者可以幫你回答一些相關問題~~