相信不少同學在處理數據,建模分析時都會出現程序報錯的問題,今天科研Lab推薦一個編程學習(全世界最大的同性交友)網站—GitHub
維基百科對GitHub的解釋是:GitHub是一個利用Git進行版本控制、專門用於存放軟體代碼與內容的共享虛擬主機服務。它由GitHub公司(曾稱Logical Awesome)的開發者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails編寫而成。
相信不少人可能有點暈暈的,一言以蔽之,GitHub就是一個代碼託管平臺。
看到這,你可能會想:「咦,這不是程序猿的網站嗎,又不經常coding?更何況我有CSDN。」
先別急,等看完全篇,你就知道GitHub不僅可以建立屬於自己的代碼庫,搜索代碼,而且其開源數據的質量,數量以及種類的全面性等等都比CSDN要更上好幾層樓,甚至有人使用GitHub定製健身計劃,找女(nan)朋友……
登錄GitHub官網https://github.com/,註冊一個帳號並登錄。
登錄後的界面
前面提到GitHub是一個代碼託管平臺,其代碼託管的基本形式就是Repository(如圖左上角),即repository就是用於保存項目代碼。
註冊一個GitHub帳號之後,你可以擁有多個代碼倉庫,每個倉庫可以用來保存一個獨立的項目;可以創建獲得(New repository),當然,也可以從其他倉庫導入(Import repository)。
下面,科研Lab將重點介紹在日常的科研中如何使用GitHub資源搜索功能和代碼存儲功能。
GitHub可以搜索的資源包括但不限於代碼,電子書,數據。交通中經常用到人口數據,以搜索世界人口數據為例,簡單展示GitHub強大的搜索功能。
Tip:想要了解更多高效搜索GitHub開源項目的方法,https://zhuanlan.zhihu.com/p/55294261
作為普通的理工科學生,我們並不是程序猿,但GitHub的代碼存儲功能仍然很強大,我們可以將其作為一個免費的網盤使用,其優秀的存儲功能不僅可以實現代碼的有序管理,還可以將你「相中」的代碼免費遷移到自己的代碼庫中。下面科研Lab將介紹如何建立自己的repository及相關的術語。
https://desktop.github.com/
安裝完成後登錄。
選擇「create a tutorial repository」,第一次打開會有教學功能。
Tips:
1.電腦需要安裝文本編輯器,官方推薦atom或者visual studio
2. 點擊個人主頁中右上角「+」,選擇「new repository」也新建代碼庫的功能,但代碼庫的其他功能仍需要在GitHub Desktop才能實現
在GitHub Desktop客戶端上完成項目文檔的建立後,就可以在GitHub官網上面填寫自己的項目了
點擊頭像,進入主頁,可以看到建立的代碼庫。
進入自己的代碼庫,便可以編輯了。
Tip:GitHub使用的markdown不是標準markdown,而是GitHub flavored markdown。
更多信息可以參考 https://guides.github.com/features/mastering-markdown/
在使用GitHub時,初學者經常會遇到一些晦澀難懂的詞,在此補充一些常用的GitHub術語
• Fork, clone, pull requests & merge
前面說,一個倉庫,只能該倉庫的所有者;或者是一個倉庫屬於某個組織,組織中擁有權限的帳戶;才可以向倉庫中提交代碼。那麼,針對一個大型的開源項目,我們既不是創建者,又沒有任何權限,那麼如何將自己的代碼提交到這個開源項目的倉庫呢?
解決方案是:fork開源項目的代碼,到我們自己的帳戶;從我們自己的帳戶中clone代碼到本地;添加代碼,提交到我們自己的GitHub倉庫;發起pull requests,等待merge。
每個代碼庫默認有一個分支master;在開發的時候,可以拉取新的分支develop來開發(當然分支名稱可以隨意取);每次提交commit都是到develop分支,一旦確保代碼無誤,可以將分支的代碼合併到主分支。
最後科研Lab送大家利用一套利用GitHub獲取的Python資源
簡明Python教程 https://woodpecker.org.cn/abyteofpython_cn/chinese/
零基礎學Python https://looly.gitbooks.io/python-basic/
Python入門指南 http://www.pythondoc.com/pythontutorial3/index.html
笨方法學Python https://www.seebug.org/paper/books/LearnPythonTheHardWay/
Dive into Python https://woodpecker.org.cn/diveintopython/
Python繪圖庫(matplotlib官方指南)https://liam.page/2014/09/11/matplotlib-tutorial-zh-cn/
動手學深度學習 https://github.com/d2l-ai/d2l-zh/
Python數據結構與算法 https://github.com/facert/python-data-structure-cn/
Python 一百天從新手到大師(訓練計劃)https://github.com/jackfrued/Python-100-Days
《What the f*ck Python!》https://github.com/leisurelicht/wtfpython-cn
好噠~以上就是本期推送的全部內容啦!如果想和我們交流,請在評論區留言。
我們是一個有靈魂的團隊,堅持探索,致力於分享交流學習經驗。想學習更多交通編程知識的小夥伴就請持續關注我們吧~