游戲代碼編程買哪本書好,如何看待有人培養孩子學習編程代碼的行為?
謝邀。
----------------------------------------------------------------------------------
先關注,后收藏,總有一天用得著。
----------------------------------------------------------------------------------
1. 編程能培養孩子的哪些能力?
編程是一件很有趣的事情,我覺得主要能培養這些能力:
1) 構思能力。編程是一種“先寫劇本,后看結果”的活動,這要求孩子先在腦子里進行構思并模擬出結果,然后再實際驗證結果是不是符合預期。這是一個“異步”的過程,對于這種“都得事先想好”的方式,孩子一開始是不適應的,因為這違背他們的直覺。我見過很多父母給孩子買“迷宮書”,其實走迷宮也包含這個要素,有的孩子會先在腦子里走一遍,然后一次性下筆把路線畫出來,這就是一種構思和模擬能力的體現。
2) 邏輯能力。編程需要考慮到各種情況,根據不同的情況作出不同的選擇(分支),而且各個分支之間不能重復,也要避免遺漏某一種可能性造成程序的異常行為。在邏輯思維中有個詞叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整體完備”,也就是“不重復,不遺漏”。這是邏輯思維中的一個重要原則。舉個例子,交通信號燈有紅、黃、綠三種狀態,如果你在寫程序的時候只考慮了紅燈和綠燈的情況,沒考慮黃燈的情況,那就不“完備”了。此外,條件還會涉及到“與”、“或”、“非”等邏輯操作,比如說,“當信號燈為紅色或黃色時”和“當信號燈不是綠色時”這兩個描述應該是等價的,這對于孩子來說都是非常好的邏輯訓練。
3) 模式識別能力。在編程中我們經常需要發現一些“可以重復”的單元,然后讓計算機去重復它。舉個簡單的例子,計算(1+5)×4相當于(1+5)+(1+5)+(1+5)+(1+5),其中每一個(1+5)就是一個可重復的單元,或者說是一種模式(pattern)。在解決實際問題時,模式并不都是顯而易見的,有些模式是隱藏的,或者需要一定的變換才能出現的,這些都考驗孩子觀察力和識別力。
4) 分解問題的能力。一些復雜的問題都可以分解中等的問題,中等的問題還可以進一步分解成小問題。在解決復雜問題時,問題的分解是非常重要的,編程中我們也經常需要使用這樣的方法。舉個例子,比如要造一輛汽車,我們先要把汽車分解成很多小的部件,比如發動機、變速器等,這些部件還可以繼續分解成更小的部件,我們需要先造好每一個小部件,再把他們組合起來變成一輛汽車。
5) 調試除錯能力。任何工作都無法一蹴而就,是人總會犯錯誤,程序運行起來發現不對有問題,這時需要孩子能夠找到出錯的地方在哪里,并且將它改正。這里面包含的能力很多,比如抗挫折力、觀察力、專注力等等。
總之,通過學習編程所培養的能力并不只是適用于編程,而是可以在很多方面派上用場。
關于不同年齡段學些什么,我只能大致給點建議:
4~6歲:玩一些編程小游戲,比如用指令控制一個角色到達終點,繞過一些障礙物,用循環來完成重復任務等等。我家哥哥玩過的不錯的游戲包括:Box Island、LightBot Jr.等。7~9歲:用一些可視化編程工具來完成一些復雜的任務,比如Scratch、AppInventor等。也可以挑戰一些復雜的編程游戲,比如Cargo-Bot、Human Resource Machine等。10歲+:學習一種真正的編程語言,比如Swift、Python等,嘗試編寫一些軟件,初步學習算法、數據結構以及面向對象編程。也可以嘗試一些硬件編程,比如用Arduino做個小機器人。上面這個建議中,我認為對于接受度好的孩子,可視化編程的部分可以跳過去,那個不是學編程的必經階段。或者這么說,如果你是7~9歲才開始入門的,那么用Scratch之類的東西沒問題,如果你4歲已經入門了,那么不必按部就班地上Scratch,直接奔著Swift、Python這種正經編程語言去就可以了——就好像學自行車不是一定要用輔助輪一樣,有些孩子不用輔助輪反而學得快。
關于書,我只看過兩本,一本叫《Scratch少兒趣味編程》(這本書最近還出了2),一本叫《父與子的編程之旅:與小卡特一起學Python》,都是國外引進的書。其他的書歡迎大家推薦吧,我只能說我看得比較少。
3. 家長不會編程,怎么教孩子學?
說實話,就4歲孩子玩的那些編程游戲,再不會編程的家長,看一眼也都能玩,怎么可能智商還不如4歲的娃呢?所以就啟蒙來說,我不相信哪個家長不能勝任,主要有沒有興趣和時間。當然,到了正經學編程語言、算法和數據結構這些東西的階段,如果家長不會編程,那肯定是輔導不了了,但反過來說,到了這個階段,孩子都可以自主學習了,也可以通過交朋友、參加興趣班等方式來學。
4. 現在社會上出現了一些編程培訓機構,要不要讓孩子去上?
目前編程培訓相對于美術舞蹈之類的培訓機構相對較少,主要原因也是老師相對比較少,市面上出現了一部分培訓機構,能力參差不齊,要多對比多嘗試。
5. 學編程是不是一定要數學好?
首先應該搞清楚的是,數學和算術是兩碼事,孩子對數字敏感不敏感,會不會做加減乘除,跟能不能學好編程關系不大,跟能不能學好數學關系也不大。
編程和數學確實是相輔相成的,因為編程所需要的很多能力和數學所需要的能力是相通的,比如邏輯完備性、模式識別等等;編程中的一些概念也是來自數學,比如函數;而到了學算法的時候,就會用到更多的數學思想和工具;至于最近特別火的機器學習,那更是純數學模型。
對于這個問題,我只能說,編程和數學應該是相互促進的關系,學編程有利于更好地學數學,而學好數學當然也能夠幫助你更好地學編程。
6. 學編程要花很多時間在屏幕前,擔心影響視力怎么辦?
這個問題很大程度上是個誤會。
近視的最大影響因素在于基因,環境因素的影響相對較小。在環境因素中,目前認為相關性(并非因果性)最強的是戶外活動時間,戶外活動時間長有助于減少近視的發生率,這可能和陽光的刺激有關。除此之外,無論是看書的距離、姿勢和時間、光線的明暗,以及電子屏幕的使用,都沒有證據表明這些和近視的發生率有關,網上的很多文章其實都是嚇唬人的,或者是犯了因果倒置、選擇偏見(cherry picking)之類的邏輯錯誤。
因此,只要不是戶外活動,無論是看書、玩玩具還是使用電子設備,這些都是劃等號的,如果說認為看書就是比用電子設備要“不傷眼”,那只能是自欺欺人。我家不限制孩子使用電子設備的時間,基本管夠,中間提醒休息,但會確保每天戶外活動的時間。
7. 有哪些編程方面的比賽?
最有名的當然是國際信息學奧賽(IOI),這是僅次于國際數學奧賽的規模第二大的國際青少年學科競賽,也是編程領域最高級別的國際比賽。在中國有相應的國家信息學奧賽(NOI),我在初中和高中的時候也參加過,成績一般(算法沒學好嘛)。這項比賽是偏重算法的,對數學的要求也比較高,但如果在NOI中拿獎,就會被很多一流大學mark。
除了編程比賽,還有很多機器人方面的比賽,不過我沒太仔細了解過。我所知道的大概就是樂高贊助的國際機器人奧賽(IRO),中國應該也有相應的國內比賽。機器人比賽考察的能力更寬泛,但對算法的要求就比較低——或者說,信息學比賽更偏重Science,機器人比賽更偏重Engineering。至于大學會不會關注這類比賽,我就不清楚了。
比賽不是學習的目的,如果有能力的話去挑戰一下也不錯。
你覺得必須讀的科學書籍有哪些?
本文從以下幾個方面給大家分享幾本高價值書單,并不一定全面,歡迎讀者補充,希望能對你有幫助。
1 關于編碼與重構
1.1 代碼整潔之道
英文名《Clean code》,該書出自 Robert C Martin 之手,又被稱為 Bob 大叔,是一位美國著名的軟件工程師和作家,他已經寫了有關敏捷軟件開發的書籍。書中提到眾多有名的編程原則:比如 SOLID 原則、 Law of Demeter(LoD,又被稱為最少知識原則)。推薦理由:每個程序員都必須擁有本書并閱讀它。這是一本非常著名的書,它將完全改變您的編程風格,書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名、數據結構、面向對象的設計原理到重構的多個編程方面,雖為一“家”之言,然誠有可資借鑒的價值。或許,真正整潔的代碼真能讓同行讀起來像詩一樣。任何傻瓜都可以編寫計算機可以理解的代碼。優秀的程序員編寫人類可以理解的代碼。— 馬丁·福勒如果只能讀一本書,我就推薦這本。最后,基于本書,眾多開發者還推出了各種語言的整潔之道:? Javascript 整潔之道? PHP 整潔之道? ABAP 整潔之道? Java 整潔之道? .NET 整潔之道還有各大科技公司的代碼風格指南:? Google 風格指南? Uber Go 語言風格指南Bob 大叔的《架構整潔之道》也值得推薦,這本書是在架構領域的登峰之作,圍繞“架構整潔”這一重要導向,系統地剖析其緣起、內涵及應用場景,涵蓋軟件研發完整過程及所有核心架構模式。還有《程序員的職業素養》,作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為后來人引路,助其職業生涯邁上更高臺階。1.2 重構(第2版)
英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本書是理論和實踐最佳組合的罕見書籍之一。重構是一個使您的工作代碼更加美麗的過程,這本書可以利用已經嘗試和測試的軟件開發世界的模式來為您提供幫助。推薦理由:重構一詞經常在各種大會上被提及,那就是這本書帶來的影響。重構也就是重寫軟件的過程,而無需更改其功能,以提高其可讀性,可檢驗性或可維護性。重構是使工作代碼美觀的過程,重構有助于改進工作代碼的設計。這也是優秀程序員的必備技巧之一,通常優秀的程序員也擅長重構。本書將教你重構代碼的藝術和科學。無論您是 Java 程序員、C++ 開發人員還是 Python 開發人員,每個程序員都可以從本書中受益。與《重構》經常被提及的書就是大名鼎鼎的《代碼大全》,書中解釋的也是久經考驗的技術和策略,能有效幫助程序員和軟件開發人員。筆者也曾在大學的時候把這本書圖書館借出來,發現這本書太厚,啃不動,到期就立馬歸還了。1.3 代碼之美
英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。推薦理由:大牛前輩的博客合集,同時也是提高編碼技能的好書之一,因為它為您提供了一個機會,讓您了解專業程序員如何處理問題、編寫的代碼以及他們如何解決問題,并且仍然能夠保持他們的代碼美觀。這本書是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型網站架構秘密,講述了那些專家程序員,包括布萊恩·克尼原,喬恩·本特利(Jon Bentley)(編程珠璣的作者),蒂姆·布雷(Tim Bray),卡爾·福格爾(Karl Fogel),邁克爾·菲瑟斯(Michael Feathers)(有效地使用舊版代碼的作者),以及許多更多偉大的作者和程序員。關于二分查找,在書中數次被不同作者提及,了解不同作者的觀點。無論您使用哪種編碼語言,例如 Java,C#,Python 或 Ruby,都會在本書中找到有趣的東西。代碼之美調查了一項努力的人類發明和創造力的范圍:計算機系統的開發。每章中的美觀來自發現獨特的解決方案,這是作者的力量超越界限,識別他人所忽略的需求,并找到令人驚訝的解決方案,以解決令人困擾的問題。2 關于職業成長
2.1 程序員修煉之道(第2版)
英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的譯者是大名鼎鼎的云風,副標題是:通向務實的最高境界。推薦理由:本書是時隔 20 年的新版,覆蓋哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術。剛出來的時候博文出版社舉辦了一個推廣活動,在云風和皓子叔聯袂推薦下,毫不猶豫的入手了本書。程序員往往最難得就是務實主義,總想追求新技術,炒新概念。工作后才逐漸明白,編程的本質,均不依賴于特定語言、框架和方法,技術改變世界在于能夠有效解決用戶的真實需求。本書本質上是程序員的自助指南。它探索了良好的軟件開發實踐,并為您提供了出色的建議、提示和技巧,以更有效地編程。正是對經典和現代軼事、引人入勝的類比和發人深省的例子的創造性使用,使每個部分的學習都變得有趣而有趣。如果說大學期間讀的都是類似于 C 語言圣經和 Head First 系統書籍的話,工作后的人才會真正懂得為什么這本書籍不厚,讀起來拍案叫好,這大概就是大道至簡。作者另一著作:《程序員修煉之道: 從小工到專家》也是值得推薦的2.2 卓有成效的程序員
英文名:《The Productive Programmer》,作者:Neal Ford。推薦理由:本書就是講述如何在開發軟件的過程中變得更加高效。同時,《卓有成效的程序員》的講述將會跨語言和操作系統:很多技巧的講述都會伴隨多種程序語言的例子,并且會跨越三種主要的操作系統,Windows(多個版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。貫穿全文的思想大概就是盡量讓機器做機器該做的事情,讓程序和程序打交道,發揮程序員在這方面的先天優勢。學會善用工具,命令行、學會寫腳本,學會宏。提供效率,不去做重復單調的工作。最終的目的:成為一個“慵懶”的程序員。2.3 軟技能:代碼之外的生存指南
英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez推薦理由:研究生期間讀過最受益的一本非技術書。程序員都知道編碼很重要,這是我們吃飯的硬技能。可是實際工作上才發現不止寫代碼,代碼之外的軟技能也很重要:比如面臨著與客戶溝通、與產品打交道的溝通問題;比如應該關注自身發展,書中也介紹了怎么做職業突圍;還有更多章節介紹了作者如何學習、如何理財、健身、自我營銷等等。分享書中有趣讓我印象深刻的點是作者去面試,面試官瀏覽過他的博客文章,兩人因此相談甚歡。 最后也想給閱讀的朋友聲明一下:這本書涉獵了很多方面,但是并不是沒一點都是一套可以照抄的完美答案,畢竟作者也是從當時的環境和自己經歷出發介紹這些內容,每個讀者應該都有自己的選擇,綜合而言,這本書挺適合各個階段的人閱讀的,尤其大學生和初入職場的朋友。作者也出了《軟技能2:軟件開發者職業生涯指南》,如果說軟技能關注于生活,那軟技能 2 則更加關注于了軟件開發職業。3 關于黑客與開源
3.1 Unix 編程藝術
書籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》從 1982 年開始就是 UNIX 開發者。推薦理由:本書涉及 Unix 系統領域中的設計和開發哲學、思想文化體系、原則與經驗,由公認的 Unix 編程大師、開源運動領袖人物之一 Eric S.Raymond 傾力多年寫作而成。程序會過時,編程語言會更新,代碼會跟隨業務不斷改動,但編程思想的生命力會長盛不衰,好的編程藝術也是具有穿透力的,盡管書中的案例已經偏老,但貫穿始終的 KISS 原則、思想文化體系、設計與開發哲學一定能夠給你帶來醍醐灌頂的感覺。Keep it simple stupid,簡稱 KISS 原則。在做軟件設計的工作中,很多時候都不要想得過于復雜,也不要過度設計和過早優化,用最簡單且行之有效的方案也就避免了復雜方案帶來的各種額外成本。這樣既有利與后續的維護,也有利于進一步的擴展。另外,本書還可以與“左耳朵耗子”ef="">皓子叔推薦 過的《UNIX傳奇:歷史與回憶》結合著一起看,了解 UNIX 的誕生記與發展史,貝爾實驗室的幕后故事!本書不但書寫 Unix 的歷史,而且記錄作者的回憶,一探 Unix 的起源,試圖解釋什么是 Unix,Unix 是如何產生的,以及 Unix 為何如此重要。3.2 大教堂與集市
英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix編程藝術》作者 Eric S. Raymond 的另一封神之作,副標題是《對 Linux 和開源革命的沉思》。推薦理由:大家都知道程序員熱衷于開源文化,都在說不要重復造輪子。開源時代下的軟件開發可能只需要三個鍵盤按鈕:CTRL + C + V,開個玩笑。說到開源文化,那么本書《大教堂與集市》是開源運動的《圣經》,顛覆了傳統的軟件開發思路,影響了整個軟件開發領域。作者把軟件開發思路類比于古代的大教堂文化和集市文化,講述了集市如何變成大教堂,書中系統解釋了開源軟件是如何生產的,開源開發的優勢在哪,開源軟件的傳承是如何做到的。3.3 黑客與畫家
英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本書的譯者是大名鼎鼎的阮一峰大佬。推薦理由:說到黑客文化,就不得不提到硅谷創業之父Paul Graham 的這本書,本書主要介紹黑客 Hacker,即優秀程序員的愛好和動機,討論黑客成長、黑客對世界的貢獻以及編程語言和黑客工作方法等所有對計算機時代感興趣的人的一些話題。本書是一本為黑客正名的技術散文集,看完書后第一次將我從電影中的黑客形象顛覆過來,才了解到并不是入侵系統、制作病毒、各種解密的人就是黑客,Hacker 是專家級程序員,是一群與畫家有著極大的相似性,他們都是在創造,而不是完成某個任務,“黑客”象征著第一流的能力,以及求解問題過程中產生的精神愉悅或享受。他們崇尚分享、開放、民主、計算機的自由使用和進步。而那些惡意入侵計算機系統的人更應該被稱為 cracker(駭客)。4 關于算法與設計模式
4.1 算法設計手冊
英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena推薦理由:關于算法的重要性大家都知道,大家肯定都知道另外兩本著名的《算法導論》和《算法4》:《算法導論》側重與算法的數學推導,適合研究,而《算法4》側重于算法的代碼實現,適合入門。而這次推薦的《算法設計手冊(第2版)》卻沒有那么有名氣,但也不失為設計實用且高效算法的最全面指導書。該書揭密了算法的設計與分析,以簡單易懂的寫作風格,介紹了各種算法技術,著重強調了算法分析。目前市場上算法書層出不窮,但是經典的算法卻一直在那里,不曾走遠。4.2 Head First 設計模式
英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson推薦理由:這本書完整地涵蓋了 GoF 版本全部23個設計模式,毫不費力地解釋了世界各地熟練的軟件開發人員和程序員用來構建優雅、功能齊全、靈活和可重用的軟件的幾種軟件設計模式。。圖文并茂,配有大量說明性和啟發性的示例,它們將使學習同時變得高效和有趣。與其他文本繁重的編程書籍不同,這本書具有引人深思、視覺豐富的格式。Head First 系統書籍充滿了幽默感,選題和編輯都很用心,值得一讀。相信讀完的讀者逐步邁向對軟件設計模式的深入了解。再來讀 GoF 不失為一個不錯的選擇。4.3 設計模式:可復用面向對象軟件的基礎
英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被簡稱為計算機領域的 GoF ,因為本書的作者是四個人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。推薦理由:本書是任何使用面向對象代碼的開發人員的必備入門讀物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 項目、Visual Studio、Azure 和 Office 365 的幕后推手。如果您沒有很好地掌握 UML,您可能會發現很難吸收編程書中匯編的一些信息和示例。然而,這不會阻止您欣賞設計模式書中敘述的美妙之處,它既簡單又內容豐富。《設計模式》一書詳盡地解釋了 23 種軟件設計模式,可幫助軟件開發人員和設計人員制作更好、更優雅、更靈活的軟件。這本書討論了針對常見軟件設計問題的大量簡潔明了的解決方案。如果說 GoF 太難讀下去,那么就推薦程杰的《大話設計模式》,這本書通過對話的形式帶領大家入門設計模式,人人都可以是好學的小菜和經驗豐富的大鳥。4.4 編程珠璣(第2版?修訂版)
英文名:《More Programming Pearls,Second Edition》,作者:John Bentley推薦理由:這是一本帶你真正領略計算機科學之美,融深邃思想、實戰技術與趣味軼事于一爐的奇書。與大多數其他編程書籍不同,這本書側重于基本問題和一般問題。它討論了可以提高性能或減少內存需求的各種算法和技術。作者選取許多具有典型意義的復雜編程和算法問題,生動描繪了歷史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的歷程。就如書名一樣,大浪淘沙,計算機科學中的智慧正如自然界里珍珠出自細沙對牡蠣的磨礪,留下一個個編程“珠肌”。題外話:
上面的書都是本人曾經閱讀過,或者說在圖書館中有借閱翻過的書。也是計算機領域評分很高、有口皆碑的書籍。但計算機行業的經典書籍太多,本人能推薦的也只是其中一部分,想要推薦的內容也不想針對某個特定編程語言和領域,所以像《C++編程思想》和《On Java8》這類書籍沒有進行推薦,推薦理由也不一定完全正確,歡迎大家批評指正。另外,看完上述的書并不能說自己就能在工作中就能運用到,看完就能成為一個頂尖的程序員。何況看書也不能完全接收前輩們的這些大智慧,但如果在某個瞬間(看書過程或者實踐過程中)對自己有一種醍醐灌頂的感覺,就已足夠。參考鏈接:
? UNIX傳奇(上篇)? 假期好讀書? Top 5 Books to Improve Coding and Programming Skills? http://www.osnews.com/images/comics/wtfm.jpg本文分享自華為云社區《【云駐共創】對于編程思想和能力有重大提升的書有哪些》,作者:宇宙之一粟 。
想在課余時間學習編程?
本文從以下幾個方面給大家分享幾本高價值書單,并不一定全面,歡迎讀者補充,希望能對你有幫助。
1 關于編碼與重構
1.1 代碼整潔之道
英文名《Clean code》,該書出自 Robert C Martin 之手,又被稱為 Bob 大叔,是一位美國著名的軟件工程師和作家,他已經寫了有關敏捷軟件開發的書籍。書中提到眾多有名的編程原則:比如 SOLID 原則、 Law of Demeter(LoD,又被稱為最少知識原則)。推薦理由:每個程序員都必須擁有本書并閱讀它。這是一本非常著名的書,它將完全改變您的編程風格,書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名、數據結構、面向對象的設計原理到重構的多個編程方面,雖為一“家”之言,然誠有可資借鑒的價值。或許,真正整潔的代碼真能讓同行讀起來像詩一樣。任何傻瓜都可以編寫計算機可以理解的代碼。優秀的程序員編寫人類可以理解的代碼。— 馬丁·福勒如果只能讀一本書,我就推薦這本。最后,基于本書,眾多開發者還推出了各種語言的整潔之道:? Javascript 整潔之道? PHP 整潔之道? ABAP 整潔之道? Java 整潔之道? .NET 整潔之道還有各大科技公司的代碼風格指南:? Google 風格指南? Uber Go 語言風格指南Bob 大叔的《架構整潔之道》也值得推薦,這本書是在架構領域的登峰之作,圍繞“架構整潔”這一重要導向,系統地剖析其緣起、內涵及應用場景,涵蓋軟件研發完整過程及所有核心架構模式。還有《程序員的職業素養》,作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為后來人引路,助其職業生涯邁上更高臺階。1.2 重構(第2版)
英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本書是理論和實踐最佳組合的罕見書籍之一。重構是一個使您的工作代碼更加美麗的過程,這本書可以利用已經嘗試和測試的軟件開發世界的模式來為您提供幫助。推薦理由:重構一詞經常在各種大會上被提及,那就是這本書帶來的影響。重構也就是重寫軟件的過程,而無需更改其功能,以提高其可讀性,可檢驗性或可維護性。重構是使工作代碼美觀的過程,重構有助于改進工作代碼的設計。這也是優秀程序員的必備技巧之一,通常優秀的程序員也擅長重構。本書將教你重構代碼的藝術和科學。無論您是 Java 程序員、C++ 開發人員還是 Python 開發人員,每個程序員都可以從本書中受益。與《重構》經常被提及的書就是大名鼎鼎的《代碼大全》,書中解釋的也是久經考驗的技術和策略,能有效幫助程序員和軟件開發人員。筆者也曾在大學的時候把這本書圖書館借出來,發現這本書太厚,啃不動,到期就立馬歸還了。1.3 代碼之美
英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。推薦理由:大牛前輩的博客合集,同時也是提高編碼技能的好書之一,因為它為您提供了一個機會,讓您了解專業程序員如何處理問題、編寫的代碼以及他們如何解決問題,并且仍然能夠保持他們的代碼美觀。這本書是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型網站架構秘密,講述了那些專家程序員,包括布萊恩·克尼原,喬恩·本特利(Jon Bentley)(編程珠璣的作者),蒂姆·布雷(Tim Bray),卡爾·福格爾(Karl Fogel),邁克爾·菲瑟斯(Michael Feathers)(有效地使用舊版代碼的作者),以及許多更多偉大的作者和程序員。關于二分查找,在書中數次被不同作者提及,了解不同作者的觀點。無論您使用哪種編碼語言,例如 Java,C#,Python 或 Ruby,都會在本書中找到有趣的東西。代碼之美調查了一項努力的人類發明和創造力的范圍:計算機系統的開發。每章中的美觀來自發現獨特的解決方案,這是作者的力量超越界限,識別他人所忽略的需求,并找到令人驚訝的解決方案,以解決令人困擾的問題。2 關于職業成長
2.1 程序員修煉之道(第2版)
英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的譯者是大名鼎鼎的云風,副標題是:通向務實的最高境界。推薦理由:本書是時隔 20 年的新版,覆蓋哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術。剛出來的時候博文出版社舉辦了一個推廣活動,在云風和皓子叔聯袂推薦下,毫不猶豫的入手了本書。程序員往往最難得就是務實主義,總想追求新技術,炒新概念。工作后才逐漸明白,編程的本質,均不依賴于特定語言、框架和方法,技術改變世界在于能夠有效解決用戶的真實需求。本書本質上是程序員的自助指南。它探索了良好的軟件開發實踐,并為您提供了出色的建議、提示和技巧,以更有效地編程。正是對經典和現代軼事、引人入勝的類比和發人深省的例子的創造性使用,使每個部分的學習都變得有趣而有趣。如果說大學期間讀的都是類似于 C 語言圣經和 Head First 系統書籍的話,工作后的人才會真正懂得為什么這本書籍不厚,讀起來拍案叫好,這大概就是大道至簡。作者另一著作:《程序員修煉之道: 從小工到專家》也是值得推薦的2.2 卓有成效的程序員
英文名:《The Productive Programmer》,作者:Neal Ford。推薦理由:本書就是講述如何在開發軟件的過程中變得更加高效。同時,《卓有成效的程序員》的講述將會跨語言和操作系統:很多技巧的講述都會伴隨多種程序語言的例子,并且會跨越三種主要的操作系統,Windows(多個版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。貫穿全文的思想大概就是盡量讓機器做機器該做的事情,讓程序和程序打交道,發揮程序員在這方面的先天優勢。學會善用工具,命令行、學會寫腳本,學會宏。提供效率,不去做重復單調的工作。最終的目的:成為一個“慵懶”的程序員。2.3 軟技能:代碼之外的生存指南
英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez推薦理由:研究生期間讀過最受益的一本非技術書。程序員都知道編碼很重要,這是我們吃飯的硬技能。可是實際工作上才發現不止寫代碼,代碼之外的軟技能也很重要:比如面臨著與客戶溝通、與產品打交道的溝通問題;比如應該關注自身發展,書中也介紹了怎么做職業突圍;還有更多章節介紹了作者如何學習、如何理財、健身、自我營銷等等。分享書中有趣讓我印象深刻的點是作者去面試,面試官瀏覽過他的博客文章,兩人因此相談甚歡。 最后也想給閱讀的朋友聲明一下:這本書涉獵了很多方面,但是并不是沒一點都是一套可以照抄的完美答案,畢竟作者也是從當時的環境和自己經歷出發介紹這些內容,每個讀者應該都有自己的選擇,綜合而言,這本書挺適合各個階段的人閱讀的,尤其大學生和初入職場的朋友。作者也出了《軟技能2:軟件開發者職業生涯指南》,如果說軟技能關注于生活,那軟技能 2 則更加關注于了軟件開發職業。3 關于黑客與開源
3.1 Unix 編程藝術
書籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》從 1982 年開始就是 UNIX 開發者。推薦理由:本書涉及 Unix 系統領域中的設計和開發哲學、思想文化體系、原則與經驗,由公認的 Unix 編程大師、開源運動領袖人物之一 Eric S.Raymond 傾力多年寫作而成。程序會過時,編程語言會更新,代碼會跟隨業務不斷改動,但編程思想的生命力會長盛不衰,好的編程藝術也是具有穿透力的,盡管書中的案例已經偏老,但貫穿始終的 KISS 原則、思想文化體系、設計與開發哲學一定能夠給你帶來醍醐灌頂的感覺。Keep it simple stupid,簡稱 KISS 原則。在做軟件設計的工作中,很多時候都不要想得過于復雜,也不要過度設計和過早優化,用最簡單且行之有效的方案也就避免了復雜方案帶來的各種額外成本。這樣既有利與后續的維護,也有利于進一步的擴展。另外,本書還可以與“左耳朵耗子”ef="">皓子叔推薦 過的《UNIX傳奇:歷史與回憶》結合著一起看,了解 UNIX 的誕生記與發展史,貝爾實驗室的幕后故事!本書不但書寫 Unix 的歷史,而且記錄作者的回憶,一探 Unix 的起源,試圖解釋什么是 Unix,Unix 是如何產生的,以及 Unix 為何如此重要。3.2 大教堂與集市
英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix編程藝術》作者 Eric S. Raymond 的另一封神之作,副標題是《對 Linux 和開源革命的沉思》。推薦理由:大家都知道程序員熱衷于開源文化,都在說不要重復造輪子。開源時代下的軟件開發可能只需要三個鍵盤按鈕:CTRL + C + V,開個玩笑。說到開源文化,那么本書《大教堂與集市》是開源運動的《圣經》,顛覆了傳統的軟件開發思路,影響了整個軟件開發領域。作者把軟件開發思路類比于古代的大教堂文化和集市文化,講述了集市如何變成大教堂,書中系統解釋了開源軟件是如何生產的,開源開發的優勢在哪,開源軟件的傳承是如何做到的。3.3 黑客與畫家
英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本書的譯者是大名鼎鼎的阮一峰大佬。推薦理由:說到黑客文化,就不得不提到硅谷創業之父Paul Graham 的這本書,本書主要介紹黑客 Hacker,即優秀程序員的愛好和動機,討論黑客成長、黑客對世界的貢獻以及編程語言和黑客工作方法等所有對計算機時代感興趣的人的一些話題。本書是一本為黑客正名的技術散文集,看完書后第一次將我從電影中的黑客形象顛覆過來,才了解到并不是入侵系統、制作病毒、各種解密的人就是黑客,Hacker 是專家級程序員,是一群與畫家有著極大的相似性,他們都是在創造,而不是完成某個任務,“黑客”象征著第一流的能力,以及求解問題過程中產生的精神愉悅或享受。他們崇尚分享、開放、民主、計算機的自由使用和進步。而那些惡意入侵計算機系統的人更應該被稱為 cracker(駭客)。4 關于算法與設計模式
4.1 算法設計手冊
英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena推薦理由:關于算法的重要性大家都知道,大家肯定都知道另外兩本著名的《算法導論》和《算法4》:《算法導論》側重與算法的數學推導,適合研究,而《算法4》側重于算法的代碼實現,適合入門。而這次推薦的《算法設計手冊(第2版)》卻沒有那么有名氣,但也不失為設計實用且高效算法的最全面指導書。該書揭密了算法的設計與分析,以簡單易懂的寫作風格,介紹了各種算法技術,著重強調了算法分析。目前市場上算法書層出不窮,但是經典的算法卻一直在那里,不曾走遠。4.2 Head First 設計模式
英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson推薦理由:這本書完整地涵蓋了 GoF 版本全部23個設計模式,毫不費力地解釋了世界各地熟練的軟件開發人員和程序員用來構建優雅、功能齊全、靈活和可重用的軟件的幾種軟件設計模式。。圖文并茂,配有大量說明性和啟發性的示例,它們將使學習同時變得高效和有趣。與其他文本繁重的編程書籍不同,這本書具有引人深思、視覺豐富的格式。Head First 系統書籍充滿了幽默感,選題和編輯都很用心,值得一讀。相信讀完的讀者逐步邁向對軟件設計模式的深入了解。再來讀 GoF 不失為一個不錯的選擇。4.3 設計模式:可復用面向對象軟件的基礎
英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被簡稱為計算機領域的 GoF ,因為本書的作者是四個人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。推薦理由:本書是任何使用面向對象代碼的開發人員的必備入門讀物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 項目、Visual Studio、Azure 和 Office 365 的幕后推手。如果您沒有很好地掌握 UML,您可能會發現很難吸收編程書中匯編的一些信息和示例。然而,這不會阻止您欣賞設計模式書中敘述的美妙之處,它既簡單又內容豐富。《設計模式》一書詳盡地解釋了 23 種軟件設計模式,可幫助軟件開發人員和設計人員制作更好、更優雅、更靈活的軟件。這本書討論了針對常見軟件設計問題的大量簡潔明了的解決方案。如果說 GoF 太難讀下去,那么就推薦程杰的《大話設計模式》,這本書通過對話的形式帶領大家入門設計模式,人人都可以是好學的小菜和經驗豐富的大鳥。4.4 編程珠璣(第2版?修訂版)
英文名:《More Programming Pearls,Second Edition》,作者:John Bentley推薦理由:這是一本帶你真正領略計算機科學之美,融深邃思想、實戰技術與趣味軼事于一爐的奇書。與大多數其他編程書籍不同,這本書側重于基本問題和一般問題。它討論了可以提高性能或減少內存需求的各種算法和技術。作者選取許多具有典型意義的復雜編程和算法問題,生動描繪了歷史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的歷程。就如書名一樣,大浪淘沙,計算機科學中的智慧正如自然界里珍珠出自細沙對牡蠣的磨礪,留下一個個編程“珠肌”。題外話:
上面的書都是本人曾經閱讀過,或者說在圖書館中有借閱翻過的書。也是計算機領域評分很高、有口皆碑的書籍。但計算機行業的經典書籍太多,本人能推薦的也只是其中一部分,想要推薦的內容也不想針對某個特定編程語言和領域,所以像《C++編程思想》和《On Java8》這類書籍沒有進行推薦,推薦理由也不一定完全正確,歡迎大家批評指正。另外,看完上述的書并不能說自己就能在工作中就能運用到,看完就能成為一個頂尖的程序員。何況看書也不能完全接收前輩們的這些大智慧,但如果在某個瞬間(看書過程或者實踐過程中)對自己有一種醍醐灌頂的感覺,就已足夠。參考鏈接:
? UNIX傳奇(上篇)? 假期好讀書? Top 5 Books to Improve Coding and Programming Skills? http://www.osnews.com/images/comics/wtfm.jpg本文分享自華為云社區《【云駐共創】對于編程思想和能力有重大提升的書有哪些》,作者:宇宙之一粟 。
以上就是關于游戲代碼編程買哪本書好和如何看待有人培養孩子學習編程代碼的行為的相關問題解答,希望對你有所幫助。