編程初學者如何在GitHub尋找適合自己的小項目?
01-01
我剛剛學完了Python,由於是編程初學者,各種技術都沒有(或者說不知道有什麼技術),不知道如何找到簡單有趣的小項目。發現了GitHub,裡面有很多開源項目,但是尋找起來卻有點大海撈針。請各位高手指導~
要找就找個流行的項目如Flask:
然後你找到這個項目最早的提交: 接著,你就可以看到他6年前的代碼:最後,你就看到了這個代碼了:
不要謝我,我以前就是這麼學過來的
說一下最近一年來的經歷吧,我主要是做python web開發的,用的是Django。
首先,找找python圈裡面比較高產的developer,像Node.js圈的TJ的那種,看看他們曾經做過的項目。找找github上最近比較流行的python項目,可以在Trending repositories on GitHub today · GitHub上找。然後從中選擇一個你喜歡的。如果通過上面的方式,還是沒有找到合適的項目的話,建議還是多做一些實踐性的練習。練習的過程中應該會遇到一些問題,把遇到的問題研究明白也能提升不少。比如我在使用Django做開發的時候就遇到了一些坑,通過研究相關的模塊,就能把一部分django的代碼過一遍。另外,有些工具是一定要學的!
- 一定要熟悉git的操作哈。
- 學習下virtualenv。在你研究一個項目的時候,使用virtualenv能夠方便搭建一個隔離性很好的實驗環境。
新手不適合在 GitHub 找項目。新手不如認一個方向,直接自己去寫東西。喜歡 Web 就去找 Django 或者 Flask 拿來用;喜歡數據挖掘就去看 Python for Data Analysis,喜歡遊戲直接看 pygame 之類。沒有自己足夠的代碼積累之前看別人代碼……事倍功半。
去年註冊的Github,今年算是入門Github 啦,我是新手,看到Github 上有好多好項目,看到了就果斷Star 啦,但是後來呢?就沒有後來啦,不是說自己不想學,而是大多流行的項目太大,不適合新手,所以我覺得在Github 入門學東西,一定有一定基礎,一定經驗之後,再去看,當然也有適合新手的,但是不容易找,比如這個:Home · codepath/android_guides Wiki · GitHub,我看著都醉了,特別適合小白(好吧,我是小白);對於學習了語言,基礎一定要學好,比如學了網路編程,就寫一個Demo,練練手,學了IO,也一樣,當語言基本上都學完了,在找點大的項目,在此期間,利用Google 搜索還是很靠譜的,從小的Demo,慢慢來,相信會積累經驗;其次就是Github 好多項目(幾百Star),連一個README.md 都不寫,這讓人怎麼看呀,在Google 一搜索,哇,找到一篇博客,通俗易懂,跟著寫完一個Demo,頓時好有成就感;其實在編程的學習過程中,沒有什麼是固定的,比如,看好書,讀博客,搜索,包括Github,其實在學習中慢慢發現,慢慢積累,注意要記錄筆記,寫博客,剛開始學習多看Getting Started,Guide,Head Fist 之類,再深入就是進階,權威指南之類的,多動手,雖然說著容易,但是做起來就很難啦。
https://github.com/thekarangoel/Projects
我覺得沒必要急著參與項目~可以自己先搞著玩~玩的深入了 自然也就有機會參與了機會是給有準備的人 準備的我也剛入python不久,學了flask 寫了自己的blog系統~ 還寫了一些博客感覺蠻好的
一般針對新手的項目基本star or fork都不多,所以很難通過這些指標來辯識哪些項目適合你。因此,我建議與其盲目去github上找,不如找一些實戰型的博文,這些博文一般會把項目代碼放到github上,研究這些項目可能效益會好一些。
從你的描述推斷,你極有可能是非專業出身,對專業基礎認識不深。
GitHub主要是一個代碼託管的地方,其次是協作的地方,鑒於你的能力,參與到項目幾乎不可能。而且GitHub上只有有價值的項目(一般不會小)和無價值的項目(小的有很多,但一般是自個兒鬧著玩的)
建議先做一個自己覺得好玩的東西,在這途中發現問題(例如這過程涉及什麼,需要什麼lib),並解決(有沒有現成的lib,是否需要創造輪子)。
等你覺得現有的lib不好用或發現bug了,你就可以參與到項目裡頭了,給作者一個pull request。首先可以根據自己的興趣搜索關鍵字,找一些小項目來fork
看你想要什麼。娛樂自己可以去找個小遊戲的項目,想賺點零用錢就去找個購物車的項目,總之學以致用才比較容易長久堅持。
如果你想練習一下Pull Request看這裡GitHub - AlbertGithubHome/TestPullRequest: This is a test project for everyone that can practice to use "Pull Request".如果你想寫點代碼可以看看這個GitHub - AlbertGithubHome/LuaCase: This is a exercise for lua. It contains some function usage of lua.這個項目我剛剛開始寫
怎麼贊同一位網友的回答,要為解決問題而學習。
推薦閱讀:
※用腳本構建的程序是怎麼保持後期重構的健壯性的?
※centos在python3環境下安裝PIP的問題?
※python3.x 如何從str中提取bytes?
※python安裝pandas包快要崩潰了?
※Python pygame如何安裝?