
科裏·奧爾索夫
本書作者是一名自學成才的程序員,經過一年的自學,掌握了編程技能並在eBay找到了一份軟件工程師的工作。本書是作者結合個人經驗寫作而成,旨在幫助讀者從外行成長爲一名專業的Python程序員。 本書包括5部分內容:第一部分(第1~11章)介紹了編程基礎知識,以及函數、容器、字符串、循環和模型等概念;第二部分(第12~15章)介紹了編程範式和麪向對象編程等知識;第三部分(第16~20章)介紹了Bash、正則表達式、包管理器和版本控制等編程工具方面的知識;第四部分(第21~22章)主要涉及數據結構和算法方面的知識;第五部分(第23~27章)則是關於求職與團隊協作的內容。 本書可以滿足幾乎所有想要學習編程的初學者。
Python 學習#3:還是基礎知識入門書。基礎知識介紹比上一本書詳細些。介紹各種應用及開發工具。作者還明確說:“本書不適合那些想要隨意瞭解下編程知識、將寫代碼作爲愛好的人,而是專門寫給那些希望以編程爲職業的人。不管你的目標是成爲一名軟件工程師、企業家,還是在其他的崗位上使用編程技能,你都是本書的目標讀者”。說白了就是給那些想用它人。不想用,誰又來讀這種書? 本書特點就是爲碼農而碼數,而是提供一份指引一個編程職業發展所需要的所有技能的導覽。其學會編程的方式,與計算機科學通常的教學方式正好相反,這些聽起來都不錯。書第一部分不錯。 “視代碼如詩詞,勿要做無所謂的堆砌。” ——伊利亞·多爾曼(Ilya Dorman) 可是,其第二部分就有點呵呵了。其實如果作者真知道讀者具體問題是什麼,及如何解決此問題,就可以先單刀直入,然後介紹概念。書其他部分都還行,囉嗦話也有些。呵呵。
01 讀後感大概是我看的最快的一本編程書了,只花了一小時哈哈哈。 我對這本書的評價就是入門選手很適合拿來複習和鞏固,因爲整本書真的言簡意賅,點到爲止,但它又能讓你看懂,每一章的最後都會總結術語表,也有一些簡單的題目。書涉及的範圍很廣,大概是我看的Python所有書裏涉及面最廣的了。既講了Python基礎,還出乎意料講了BASH、GIt操作、數據結構與算法,雖然都是蜻蜓點水。 02 主要內容Python部分:基礎變量、函數、模塊、函數式編程、面向對象編程(封裝、抽象、多態、繼承、組合、類變量和實例變量、魔法方法)、爬蟲(BeautifulSoup 模塊解析Google 新聞的 a 標籤)、Python的包管理pip和虛擬環境管理(點到了Virtualenv,沒講Conda,還點到了Flask),基本的都講到了。 補充部分:介紹了點非常基礎BASH基本命令、正則表達式(Python和Bash都點到了)、Git操作,還補充了數據結構(棧和隊列,實現方法就是用類裏面套個列表,吐槽下出棧出隊都是用的列表的pop函數)、算法(FizzBuzz、迴文詞、變位詞anagram、計算字母頻數、遞歸) 最後一部分:介紹乾貨和後續發展 03 介紹乾貨“本書不適合那些想要隨意瞭解下編程知識、將寫代碼作爲愛好的人,而是專門寫給那些希望以編程爲職業的人。不管你的目標是成爲一名軟件工程師、企業家,還是在其他的崗位上使用編程技能,你都是本書的目標讀者” “視代碼如詩詞,勿要做無所謂的堆砌。” DRY(Dont’t Repeat Yourself)。不要重複自己,指的是不要在程序中編寫重複的或是基本相同的代碼。正確的做法是將代碼封裝至函數中,後續可重複使用 Always Be Coding
廣而淺,優點是從純新手角度講解,有些教材裏直接略過的部分在這本會很通俗的講出來,比如程序的副作用、bash和grep之類的,缺點就是對Python的內容覆蓋可能還不如Python自帶的tutorial教程。看完其他Python書後用這本來回顧知識點和拓寬知識面比較好。
從完整性來說,本書很有特色,適合入門一兩年內閱讀,覆蓋全面,基本上沒難度;完整性4星; 深度2星; 書名略微誇大,有經驗人員,略看一兩小時讀物比較合適。 亮點: 每個章節有術語表用於回顧,最後有一些推薦讀物,進階指南。
看完這本書之後特意翻回第一頁看了一下:“本書作者是一名自學成才的程序員,經過一年的自學,掌握了編程技能並在eBay找到了一份軟件工程師的工作。本書是作者結合個人經驗寫作而成,旨在幫助讀者從外行成長爲一名專業的Python程序員。”簡介的這段話會讓人(至少我是這樣)產生看完這本書自己也能找到軟件工程師工作的錯覺,事實上,這本書所有內容都是淺嘗輒止,應該說只能讓你達到面試官問你某個問題的時候你不會完全沒聽過的程度。不過總的說來書的內容是很好的,但就是簡介這麼寫難免有點容易誤導。
涉及廣泛,淺嘗輒止。 從Python編程的概論到函數、類、模塊、循環、正則表達,操作文件都有涵蓋,另外還講到了更深入的面向對象編程的方法。 除此之外,還有其他編程相關內容的介紹。bash下的基本操作、代碼倉庫(Github)、有趣的網絡爬蟲、數據結構(棧和隊列的操作)、算法(FizzBuzz、迴文詞、變位詞-sorted、計算字母頻數、遞歸)。 有一些黃金建議: 1 寫代碼是最後的手段。你所做的工作很可能前人已經解決並且更好,所以首先在網上檢索。2 DRY。Don't Repeat Yourself,減少重複和複製,嘗試寫新的代碼3 正交性。每個模塊應該儘量保持獨立,不相互影響。4 每個數據都只應保存在一處。讓不同的函數共用同一數據文件。5 函數只做一件事。每個函數只負責一個特定任務。6 若耗費時間過長,你的做法很可能就是錯的。7 第一次就要用最佳的方法完成。如果在編程中想到更好的方法,還是最好重寫。8 遵循慣例。學習語言慣例,提高速度。9 使用強大的IDE。繼續挖掘PyCharm的特性。10 記錄日誌。將日誌記錄在數據庫中,便於調試。11 測試 。12 代碼審查 。Code Review是一個專注於代碼審查的程序員社區。13 安全。 避免保存敏感信息,賦予用戶最低的訪問權限,儘可能少用第三方庫(代碼量越小、漏洞越少),剔除不再使用的功能代碼(代碼量越小、漏洞越少)等。 不足之處:代碼模塊用手機看起來太費眼力。 總之,這本書旁徵博引,旨在讓讀者做到掌握不同方向(Python, bash,算法等)的編程技巧,融會貫通,從而做到無師自通。值得一讀。
五星因爲這是一本可以看完的編程書,而且會看得非常快,用了大約三個半天(最後職業部分基本粗略掃過)。 所以不言而喻,書的弱點在於蜻蜓點水,別提什麼無師自通了。 話說回來,任何教程本身不能讓我們學會這項技能,實踐實踐再實踐纔是根本。練習的時候會發現各種問題。最有意思的是好幾次程序報錯都是因爲我的小粗心。 因爲工作關係實在是較難有個自然而然的實踐環境。因此看這書本來的目的也不是爲了突然讓自己變成一個程序員。 在這個越來越依賴計算機科學來運轉的社會,如果相對編程有稍許的idea,這會是一本不錯的啓蒙書。
本書涵蓋範圍廣,講了Python基礎語法,基礎數據結構及算法,面向對象基礎,版本控制,包管理,正則表達式,編程思想等作者提供了一張學習地圖,每個知識點都是點到即可,不會讓初學者望而生畏,淺顯易懂。
前半部分基本都能看懂,往後就看的雲裏霧裏了,對於我這個初學者,還得深入學習,不斷理解編程概念,並加以實踐。
你走到如今這一步付出了很大的努力,即使做不到無所不知也是可以理解的,因爲沒有人能夠做到。只需要保持謙虛的心態,不斷學習不瞭解的問題,你就會持續成長。