“大多數優秀的程序員從事編程工作,不是因為期望獲得報酬或得到公眾的稱贊,而是因為編程是件有趣的事兒。”
——林納斯·托瓦茲(Linus Torvalds)
在美國亞馬遜,有一本書的影響力超高的Python入門書,Kindle版本在美國亞馬遜網站的計算機軟件、軟件開發分類中排行均為第一,超越了眾多實力派Python書,眾多五星好評。也許你有所耳聞,這本書就是《Python編程無師自通——專業程序員的養成》
《Python編程無師自通——專業程序員的養成》作者是一名自學成才的程序員,作為一名文科生他通過自學編程,掌握了編程技能并在eBay找到了一份軟件工程師的工作。這本書是作者結合個人經驗寫作而成,旨在幫助讀者從外行成長為一名專業的Python程序員。
這本書可以滿足幾乎所有想要學習編程的初學者。本書適合高中、大學階段想要自學編程的學生,以及其他行業想入門編程的人,同時也適合作為編程入門的培訓教材。
《Python編程無師自通——專業程序員的養成》
作者:[美] 科里?奧爾索夫(Cory Althoff)
作者自述
我畢業于克萊門森大學政治學專業,曾考慮過是否選擇學習計算機科學專業,還在大一那年報名參加了“編程概論”課程,不過很快就退出了。實在是太難了。畢業后我一直住在硅谷,我發現我需要學習編程。一年后,我成為了eBay公司的一名中級軟件工程師。我不想讓大家覺得這是很輕松就能做到的。實際上,這是極具挑戰的一件事。在這一年的不斷嘗試努力過程中,我得到了很多樂趣。
剛開始,很多人學習的是如何用流行的編程語言Python來進行編程。但是本書不僅是教你如何使用某種特定的語言編程,還會介紹標準教材中所不包括的其他所有知識點。本書分享的是我在成為軟件工程師過程中不得不自學的內容。不管你的目標是成為一名軟件工程師、企業家,還是在其他的崗位上使用編程技能,你都是本書的目標讀者。
學會一門編程語言還不夠,你還需要學會其他技能,才能像計算機科學家一樣地工作。我會教授大家我從編程新手到專業軟件工程師過程中學到的一切。我寫是為了向有志于編程崗位的人分享他們需要掌握的知識框架。編程概論的書籍都大同小異——用Python或Ruby介紹編程的基礎知識,然后就讓你自己摸索。我經常從讀完類似書籍的朋友那聽到這樣的反饋:我現在該做什么?我還不是一名程序員,也不知道下一步該學什么。
本書,就是我給出的答案。
本書結構
本書中涵蓋很多主題,作者的目標不是包羅你需要了解的每個主題的所有細節,而是提供一份指引——一個編程職業發展所需要的所有技能的導覽。
▌第一部分:編程簡介。讓你盡快寫出自己的第一個程序,最好在今天。
▌第二部分:面向對象編程簡介。這部分將介紹不同的編程范式,著重闡述面向對象編程。你會開發一個游戲,體會編程的強大能力。讀完這部分后你會沉迷于編程。
▌第三部分:編程工具簡介。將介紹提升編程生產力的不同工具。這時,你已經沉迷于編程,并希望變得更好。你將會學習相關的操作系統、使用正則表達式提升效率、安裝并管理他人的程序,以及使用版本控制與其他工程師協作的知識。
▌第四部分:計算機科學簡介。將簡要介紹計算機科學知識,主要涵蓋兩個主題——算法和數據結構。
▌第五部分:找到工作。最后一部分是關于最佳編程實踐,如何找到軟件工程師的工作,團隊協作以及程序員的自我提升。本文會分享如何通過技術面試與團隊協作的建議,以及如何進一步提升自己的技能。
從終點出發
一般來說,你會先花很多時間學習理論,理論知識學的太多以至于許多計算機科學的畢業生甚至不知道如何動手編程。杰夫·阿特伍德(Jeff Atwood),在其博客“為什么程序員不會編程”中寫道:“和我一樣,許多人都碰到了這樣的情況,編程崗位的200位申請者中,有199個根本不會寫代碼。重申一遍:他們一點代碼都不會寫。”這種現象直接促使Atwood發明了FizzBuzz代碼挑戰,一種用來在面試中篩選申請者的編程測試。大部分人都通不過測試,這也是為什么你要學習本書并掌握實踐中要使用到技能。
《王者之旅》電影中的主角喬什(Josh Waitzkin),在《學習的藝術》一書中回憶了他如何反向學習國際象棋。他沒有和其他人一樣研究開局,而是從學習象棋殘局。這樣做讓他對國際象棋有了更深的理解,并贏得了多次大賽冠軍。與此類似,先學習如何編程再學習理論的方法更高效,因為你會擁有了解背后原理的強烈驅動。雖然理論很重要,但是在你擁有了編程經驗之后,理論的價值才更大。
《王者之旅》電影截圖
你不是一個人在戰斗
畢業后再學習編程,已經越來越常見。Stack Overflow(一個程序員在線社區)在2015年的一份調查中顯示,48%的受訪者不是計算機專業卻從事編程職業。
自學的優勢
在eBay工作期間,作者的團隊中有從斯坦福大學、加州大學和杜克大學計算機科學專業畢業的程序員,還有兩名物理學博士。當時他25歲,而年僅21歲的同事對編程和計算機科學的知識比其強10倍這個事實,讓作者尤其惶恐。
雖然與擁有計算機科學學士、碩士甚至是博士學位的同事一起工作的壓力很大,但別忘記了你還有“自學的優勢”。你選擇讀本文,不是出于老師布置的任務,而是因為你內心學習的渴望,這一點是你所擁有的最大優勢。蘋果公司的創始人斯蒂夫·沃茲尼亞克(Steve Wozniak)就是一位自學成才的程序員;還有因在美國宇航局的阿波羅登月計劃中做出卓越貢獻而獲得總統自由勛章的瑪格麗特·漢密爾頓(Margaret Hamilton);還有Tumblr 的創始人大衛·卡普(David Karp),Twitter的創始人杰克·多西(Jack Dorsey),Instagram 的創始人凱文·斯特羅姆(Kevin Systrom),他們都是自學成才的程序員。
為什么應該編程
不管你從事什么工作,編程都有助于你的職業發展。學習編程將給你自己賦能。你喜歡嘗試新想法,時刻都有希望啟動的新項目。學會編程后,你就可以坐下來自己實現,而不需要依賴他人。
編程也會提升你在其他方面的技能。因為你熟練掌握了問題解決能力,鮮有其他工作不會因此而受益。如我最近要在網上租房,搜索并篩選房子是個非常費力的活兒。但是我寫了一個程序來代替我搜索,最后將結果以郵件形式發送給我。學會編程,將把你從重復性工作中解放出來。
如果你想成為軟件工程師,市場上對這類崗位的需求也日益增長,但是符合要求的候選者卻總是供不應求。到2020年,預計將有一百萬個編程崗位空缺。即使你的目標不是成為軟件工程師,科學和金融等領域的崗位也開始傾向那些擁有編程經驗的申請者。
堅持不懈
如果你之前沒有任何編程經驗,擔心自己無法勝任編程工作,但是你要相信自己:你完全有能力做到。人們對程序員有一些常見的誤解,比如程序員都得擅長數學。這是錯誤的印象,不過編程確實是一件困難的工作。幸運的是,本書涵蓋的內容將讓這一切變得比你想象得更加容易。
為了提高編程技巧,你應該每天練習編程。擋在你面前的唯一障礙就是無法堅持,所以我們要采取一些措施確保自己能夠堅持不懈。準備一張檢查清單,來確保每天都有做練習,而且也能夠幫助你保持專注。
如果你還需要其他幫助,效率專家Tim Ferris建議采用如下技巧來保持驅動力。事先給家人或朋友一筆錢,如果你在規定的時間內完成了目標,就讓他們把錢還給你,否則就將錢捐獻給你討厭的機構。
本書使用的技術
為了讓讀者盡可能的積累編程經驗,書中會介紹多種技術。在某些情況下,必須在許多不同的技術中做出選擇。我們將會學習Git的基礎知識。Git是一個流行的版本控制系統,選擇介紹Git是因為筆者認為它已經成為版本控制的業界標準。書中用Python來編寫大部分的編程示例,因為它是一門很流行的初學者語言,而且即使從來沒有使用過Python的人學習起來也比較簡單。此外,目前幾乎每個領域對Python開發者的需求都非常大。不過,會盡量做到內容與技術無關——注重概念,而非技術本身。
-
軟件開發
+關注
關注
0文章
621瀏覽量
27384 -
編程
+關注
關注
88文章
3633瀏覽量
93854 -
python
+關注
關注
56文章
4801瀏覽量
84863
原文標題:美亞Kindle排名第一的Python 3入門書,火遍了整個編程圈
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論