歡迎光臨
每天分享高質量文章

美亞kindle排名第一的Python 3入門書,火遍了整個編程圈

“大多數優秀的程式員從事編程工作,不是因為期望獲得報酬或得到公眾的稱贊,而是因為編程是件有趣的事兒。”

——林納斯·托瓦茲(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開發者的需求都非常大。不過,會儘量做到內容與技術無關——註重概念,而非技術本身。

《Python編程無師自通——專業程式員的養成》 每章結尾處都有術語表和挑戰練習,讓你更好地學習Python 3。

目錄一覽

第1章 概述

第2章 起步

第3章 編程概論

第4章 函式

第5章 容器

第6章 字串操作

第7章 迴圈

第8章 模塊

第9章 檔案

第10章 綜合練習

第11章 練習

第二部分 面對物件編程簡介

第12章 編程範式

第13章 面向物件編程的四大支柱

第14章 深入面向物件編程

第15章 綜合練習

第三部分 編程工具簡介

第16章 Bash

第17章 正則運算式

第18章 包管理器

第19章 版本控制

第20章 融會貫通

第四部分 計算機科學簡介

第21章 資料結構

第22章 演算法

第五部分 找到工作

第23章 最佳編程實踐

第24章 第一份編程工作

第25章 團隊協作

第26章 更多學習資料

第27章 下一步

赞(0)

分享創造快樂