1. 程式人生 > >九步!讓你從零基礎學習python成為一名開源程式設計師!

九步!讓你從零基礎學習python成為一名開源程式設計師!

摘要: 探索技術世界,是一件非常令人興奮的事情。很多初學Python的同學都面臨著很多的疑問:Python學習步驟應該如何安排?多長時間可以達到精通呢? 首先,學習Python程式設計技術,自學或者參加培訓學習都適用,每個人都有自己的學習方式和方法。小編也幫大家總結了九個步驟。

不過首先要明白的是開源是開放的,這聽起來似乎是句廢話,但現實中有很多人恰恰就忘記它只是一個文化現象的描述,而不是一家500強公司的名字。不需要去面試或完成登錄檔或登錄檔單,只需要做好程式,然後共享程式碼,在理想情況下保證程式碼能保持開放,不管它被如何使用。

就是這樣,你就是一名開源程式設計師!

那現在目標已經有了,過程要怎麼樣呢?

第一步:找到和選擇自己的 Skill trees (技能樹)

玩過 RPG 遊戲的人應該知道,這些遊戲中會有“技能樹”的概念。 最開始的時候,會獲得基礎技能,然後不斷“升級”和獲得新技能,再用新技能獲取更新的技能……

成為一名程式設計師有點像往你的技能樹上不斷新增新技能的過程。 先得到一些基本的技能,持續練習直到它們進入第二階段,然後獲得新的技能。最終沿著你選擇的技能樹不斷進步。

在這個過程中你會遇到許多技能樹。就像開源有很多切入點,每個人都有自己獨特的優勢、才能和興趣。 但是,某些積累下來的悟到的心得技能有助於你成為一名偉大的程式設計師,並且它們是成功參與到開源專案的重要組成部分。

第二步:程式設計,從 Scripting 開始

POSIX 系統(如 Linux 和 BSD )的優點之一是每次使用電腦時,都有機會練習一些小程式設計。 如果不知道要從哪裡開始學習程式設計,那麼就從你的工作方式開始。找出自己每天需要重複執行的任務,開始自動執行。 這個步驟其實很簡單,例如批量轉換或調整照片,檢查電子郵件,甚至只是每天自動點選啟動五個應用程式。反正不管是什麼任務,花時間為自己的東西自動化。

如果你可以從終端做一些事情,那麼它可以指令碼化。 學習 bash 或 tsch ,讓系統 Scripting 引導你學習如何編寫程式碼和告訴你係統如何工作。

第三步:找準自己的發展方向

從這裡開始,你可以選擇繼續成為一個程式設計師,或者可以完全跨越到另一個不同的技能樹:系統管理。 這兩個職業有一些重疊,一個好的系統管理員應該有一點程式設計經驗,可以隨時準備好使用 Python、Perl 或類似的語言來開發獨特的解決方案,但程式設計師更偏向是一個日夜以程式碼為伴的人。

第四步:學習別人的開原始碼

開源是學習程式設計技巧的好方法, 你可以檢視其他人的程式碼,借鑑別人的想法和技巧,從他們的錯誤中學習,積累自己的程式碼經驗,如果你使用 Linux 或 BSD ,整個堆疊是開放的 - 只要是眼睛可以看到的,都是你可以採用的。

實際情況是,你可能不會去深挖專案的原始碼,而是從側面突然意識到自己意外地學會了程式碼。 程式設計是一項艱苦的工作。 如果不是的話,所有人都去做了。

但又幸運的是,程式設計是邏輯化和結構化的。你不會深陷其中,因為越捅破它,就會越理解它。

理解如何控制和自動化電腦是一回事,但知道如何編寫其他人想要自動化的東西是你跨入程式設計領域的關鍵點。

第五步:選擇最適合自己的語言

所有程式語言的目的都是做同樣的事情:讓電腦計算。選擇一個你想做的、你想針對的行業中常用的語言,並考慮是否現有的資料和你的學習方式能讓自己更好地去理解它。

通過一點點研究,你會得到一個關於語言複雜性的參考,然後根據自己當前的水平嘗試最適合自己的。

選擇一種語言的另一種方法是觀察你的目標,找出朝著同樣的方向努力的其他人,然後看看他們在使用什麼。如果你的目的是開發桌面工具,你可能會學 C 和 Vala 中的一個,或 C ++。

一旦你學會了一種程式語言,當你需要完成一些工作時,你會發現拿起另一種語言會比較容易。畢竟“語言”只是一套語法和規則,學會一個,在同一個理論上疊加新規則是相當微不足道的事情。

所以說,最主要目標是先去學習一門語言。選擇一個有意義的,或者最有吸引力的,或者你的朋友正在使用的,或者有你最能讀懂文件的,然後集中注意力,專注去學習它。

第六步:瞭解開源背後的知識,如協議

不管是正在學習程式設計的新人,還是準備進入開源的老司機,在跳入這個新世界的大門之前,你需要了解什麼是開源。

“Open”一詞不是商標,沒有委員會管轄要如何或何時才能使用這個詞。 然而,由 Debian Linux 已故的 Ian Murdock 共同創辦的開源計劃(Open Source Initiative)定義了開源的含義(允許軟體被自由使用、修改和共享的許可),正式認可和履行 licenses 才被認為是真正的 “Open”。

將其中一個許可證應用於你的程式碼,你就是一個真正的開源程式設計師。 恭喜!

第七步:加入開源社群,瞭解開源專案運作

做開源專案最重要的就是人,如果沒有積極的貢獻者,專案就很容易停滯。

如果想加入一個開源社群,你需要成為這個社群的一部分。這通常包括訂閱郵件列表,加入 IRC 頻道,或跳到論壇,並從團隊的底部幹起。任何成熟的社群都已經發展了足夠長的時間,他們看慣了潛在的成員來來去去,所以你必須明白,當你在準備改變他們的世界,讓他們都同意你的規劃之前,你必須先證明你不是鬧著玩的,不會在三個月後消失。如果你想把事情做大,就準備好足夠的時間吧。

如果你只是想借力,那也是可以被接受的。比如向專案提交小補丁,有時專案管理會認為這些都是好的,有時候會被拒絕。如果被拒絕的補丁對自己來說很重要,可以自己去維護它。因為它也是過程的一部分。

這些社群在哪裡存在?這取決於專案。一些專案有專門的社群管理者,會在公共場所釋出讓每個人看到。還有一些專案圍繞論壇、使用郵件列表,甚至是問題跟蹤等等。

此外,這裡還有一個同樣重要的步驟,那就是看程式碼!既然是開源,就務必去多找程式碼檢視。即使它仍然高於你的理解水平,但它會提供給你如何自己組織一個專案的經驗,以及目前這個專案可能需要的幫助方向。程式碼是如何組織的?程式碼有註釋嗎?風格是否整潔?多檢視文件,特別是 README、LICENSE 和 COPYING 檔案。

不要低估開放程式碼的承諾的重要性。這是你參與的原因,所以從各個角度去想想你可以從中學到什麼,以及你要如何貢獻。

第八步:少說多寫,為開源專案做貢獻

作為一個開源程式設計師,想得多不如程式碼敲的多。你需要告訴自己在做什麼,願意把時間花在專案上,並備份你的想法和編譯的東西。

為了做到這一點,你應該對專案本身做一些“家庭作業”來提高自己對它的熟悉度。包括學習一個專案怎麼接受別人的提交,哪些分支是穩定的等等。

準備開始:

  • 熟悉專案及其發展文化,並尊重它。
  • 編寫補丁,bug 修復或一些小的功能,並提交。
  • 如果你的工作被拒絕,不要灰心。 你的能力不會被拒絕,你做的工作會被評估,開發團隊會和你電話聯絡。
  • 如果你的工作被接受,改變就建立在認可之上。
  • 不斷重複,並嘗試新的和更大的變化。

開源中沒有排行榜。只有你做的所有的正確的參與和貢獻,比如新增到 pool 中的想法,新增到 commits 中的 stash。

第九步:擴充套件新的技能,持續成長

不管是在任何環境中的程式設計最終總是會涉及到個人發展。 無論你是尋找新的方法來解決問題,尋找新的方法來優化程式碼,還是學習一種新的語言,或學習如何更好地與其他人打交道,你永遠都不會想停止成長。 把自己開發的越全,專案就越有利。

成長,無論是個人和專業,最後呈現在一個 list 上,但它實際上持續整個過程。 成為開源程式設計師不像是一份穩定的政府工作,而更像是一個不斷分裂的過程。 學習,分享,再學習,分心去做一件其他的事情,然後學習更多。

以上就是關於開源的過程: open source,自由發展,每一個字的意義其實就是開源最終的意義。 所以快去找你的技能樹,選擇你最強的能力,支付你在這個過程中的學費(或時間、或金錢),升級,並參與!

如果你還需要python輔助資料,可以加小編的python交流群:714042473或我們的Lina老師QQ:1900006399哦~免費領取資料和教學視訊~

相關推薦

基礎學習python成為開源程式設計師

摘要: 探索技術世界,是一件非常令人興奮的事情。很多初學Python的同學都面臨著很多的疑問:Python學習步驟應該如何安排?多長時間可以達到精通呢? 首先,學習Python程式設計技術,自學或者參加培訓學習都適用,每個人都有自己的學習方式和方法。小編也幫大家總結了九個

五本書籍助基礎學習java編程到精通之路

html 書籍 區域 快速 學會 即使 沒有 j2e j2se 前天的文章給大家介紹了Java初學者應該學習哪些基礎,亦是美網絡小編從Java的三個大方向:J2SE、J2EE、J2ME對大家做了前景分析,這兩天也收到了大家的很多反饋,很多小夥伴看了後對自己的Java編程方向

Python與量化投資》作者王小川10月帶基礎掌握Python量化投資實戰技能

《Python與量化投資》作者王小川: 華創證券研究所金融工程高階分析師,國內知名MATLAB、Python培訓專家,MATLABSKY創始人之一,經管之家CDA課程Python金牌講師。從事量化投資相關的工作,承擔了部分高校的統計課程教學任務,長期研究機器學習

基礎學習python

fix pytho 零基礎 基礎 tar install 基礎學習 默認 prefix wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar -zxvf Python-2.7.8.tgz cd Py

開始學習python,寫一個mp3播放器

從零開始學習python,寫一個mp3播放器! 《從零開始PYTHON3》第十四講 通常來說,Python解釋執行,執行速度慢,並不適合完整的開發遊戲。隨著電腦速度的快速提高,這種情況有所好轉,但開發遊戲仍然不是Python的重點工作。 從零開始學習python,寫一個mp3播放器

成為JAVA程式設計師的必備知識都懂了嗎?

每逢長假都會有很多程式設計師跳槽,十一、過年是跳槽黃金時刻,尤其是過年。過年的時候年終獎到手,沒有了多少牽掛,年終同學同事聚會比較多,溝通的就多,各種工作機會的訊息也相應會多,所以跳槽的機會也就會多。跳槽就必不可少的要經過面試,那麼作為一個Java程式設計師需要準備哪些面試

大資料處理過程只需這四0到1

大資料這幾年火得不要不要,如同“站在風口上的豬”,但很多人只是停留在耳聞的階段,並不知道大資料真正的用途或是實操在哪,這其中也包括

開始學習Python用於資料科學,Python想象的要強大

為什麼是Python? Python是一種多用途的程式語言,廣泛應用於資料科學,被稱為本世紀最性感的工作。資料科學家通過大資料集挖掘,以獲得洞察力並做出有意義的資料驅動決策。Python是一種通用的程式語言,用於Web開發、網路建設、科學計算等領域。我們將進一步討論python中的一系列令人敬畏

基礎學習python編程不可錯過的學習總結,小白福利

不執行 方式 true hat 出現 結合 conda tab鍵 底層 一 軟件使用 1 第一句Python 在C盤根目錄下,創建1.tx文本,打開並輸入如下內容保存。 #!/usr/bin/env python #-*- coding:utf8 -*- print("人

編程學習第一20天搞定Python編程

目標 如何解決 從零學習 人工 參考 每次 遇到的問題 批量上傳 智能 大家好,歡迎大家閱讀篇文章,Python是當前火爆的編程語言之一;從後臺開發到自動化,從數據分析到人工智能,都有Python的身影。我們掌握Python,就有了進入這些行業的可能。下面簡單介紹下老貓和這

基礎學習小猴子《概率論》視訊

第一課-事件的概率.mp4 第二課-一維隨機變數.mp4 第三課-一維隨機變數函式.mp4 第四課-五種常見分佈.mp4 第五課-二維隨機變數.mp4 第六課-二維隨機變數的獨立性、二維隨機變數的函式.mp4 第七課-期望與方差.mp4 第八課-協方差相關係數、切比雪夫不等

跟我基礎學習Unity3D開發--資源打包篇(AssetBundle)

好久沒更新了,一直在加班敢專案進度。這裡和關注我的部落格的童鞋表示一下歉意!這裡有我錄的Unity3D從零開始的視訊教程大家可以關注一下:http://www.imooc.com/view/555  視訊會陸續的更新,需要講什麼也可以留言給我。 之前在專案中一直用的是別人以前的寫的打包

基礎Python爬蟲是如何做到的?

  任何一門技術,都應該帶著目標去學習,目標就像一座燈塔,指引你前進,很多人學著學著就學放棄了,很大部分原因是沒有明確目標,所以,在你準備學爬蟲前,先問問自己為什麼要學習爬蟲。有些人是為了一份工作,有些人是為了好玩,也有些人是為了實現某個黑科技功能。不過可以肯定的是,學會了爬蟲能給你

Python程式設計練習的幾道小題,開始學習Python

資料排序 Python對資料進行排序計算練習用到input及range、append及if控制流語句等等的綜合應用練習。在這裡小編準備了一份Python入門學習資料,加QQ群:700341555即可獲取!   Python解題思路分析: 首先可以利用選擇法,即從9個數

小甲魚《基礎學習Python》課後筆記(二十):檔案——一個任務

動動手 0.編寫一個程式,接受使用者的輸入並儲存為新的檔案,程式實現如圖: 程式碼如下: f_name = input('請輸入檔名:') f = open(f_name, 'wt') print("請輸入內容【單獨輸入':w'儲存退出】:") s

七天基礎學習android(2)--第一個安卓程序

基礎學習 技術分享 解決方案 osc ever 環境配置 應該 www. 新建 在環境配置的那一部分,已經把基礎的環境配置好了,接下來應該實現第一個安卓程序,就是著名的hello world 先在avd裏面新建一個虛擬機,並且啟動它 然後該虛擬機器能夠在eclipse上正

小甲魚《基礎學習Python》課後筆記():了不起的分支和迴圈2

測試題 0.下面的迴圈會列印多少次 for i in range(0, 10, 2):   print('I love FishC')   5次。range(0, 10, 2)得到[0,2,4,6,8],總共5次。 1. 下面的迴圈會列印多少次“I Lov

[Python接口自動化]開始學習python自動化(1):環境搭建

help ins cnblogs 文件中 ssi 空格 plugins 變量 mod 第一步:安裝python編譯環境 安裝python編譯環境之前,必須保證已安裝jdk哈,如果為安裝,請參考https://jingyan.baidu.com/article/6dad507

基礎學習Python文本處理

python源 | 小象 文 | 賈庸本文將帶領小夥伴們一起,使用Python進行文本處理,先來看下要處理的文本, 文件名為“data.txt”, 文件裏面的內容是三行中英對照的文本,和兩個空行,我們要實現的功能就是從這三行文本中分別抽取出中文及其對應的英文,這個功能再加上爬蟲,就可以制作自己專屬的英

基礎學習Python培訓,應該選擇哪個培訓班?

python 同學 去哪裏 編程語言排行榜 快速 遠的 培訓班 內部 哪裏 近幾年中,Python一直是市場上最受歡迎的編程語言之一。它語法自然,入門簡單,同時應用範圍又極廣,無論是大火的人工智能、大數據還是傳統的web開發、自動化運維,Python都能夠大展拳腳。根據職友