“如果能时光倒流,回到过去,作为一个coder,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”

CODE COMPLETE - Steve McConnell

“优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来, 就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” — Joel Spolsky

对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esac

Steve McConnell的原作《代码大全》是公认的关于编程的最佳实践指南之一, 在过去的十多年间,本书一直在帮助开发人员编写更好的软件。

现在,作者将这本经典著作全新演绎,融入了最前沿的实践技术,加入了上百个崭新的代码示例,充分展示了软件构建的艺术性和科学性。McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识, 把最高效的技术和最重要的原理交织融会为这本既清晰又实用的指南。

无论你的经验水平如何,也不管您在怎样的开发环境中工作,也无论项目是大是小,本书都将激发您的思维并帮助您构建高品质的代码。

程序员修炼之道

对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。 或许他们还是在校生,但对要自己做什么,还感觉不是很安全。

就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。— Joel

《程序员修炼之道:从小工到专家》内容简介:《程序员修炼之道》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,知道用于使代码保持灵活、并且易于改编和复用的各种架构技术, 利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比, 全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。

无论你是初学者,是有经验的程序员,还是软件项目经理,特别是Unix/Linux系统程序员,《程序员修炼之道:从小工到专家》都适合你阅读。

计算机程序的构造和解释

就个人而言,这本书目前为止对我影响醉倒的一本编程书。

《代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节。其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面。 其他书籍则处理算法。这些书都有自己所属的位置。

然而《计算机程序的构造和解释》与这些不同。这是一本会启发你的书,它会燃起你编写出色程序的热情;它还将教会你认识并欣赏美;它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。

其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。

同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。

一些人认为此书不适合新手。 个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。 毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。 此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。

C程序设计语言

这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。(这对理解“底层”非常重要)— Nathan

《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。

《C程序设计语言》(第2版新版)原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。

人们熟知的“hello,world”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。

算法导论

《代码大全》教你如何正确编程; 《人月神话》教你如何正确管理; 《设计模式》教你如何正确设计……

在我看来,代码只是一个工具,并非精髓。 开发软件的主要部分是创建新算法或重新实现现有算法。 其他部分则像重新组装乐高砖块或创建“管理”层。

我依然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理”细节则留给其他人…… — Ran Biron

  • 经典的算法书,被亚马逊网,《程序员》等评选为2006年最受读者喜爱的十大IT图书之一。
  • 算法领域的标准教材,全球多所知名大学选用。
  • MIT名师联手铸就,被誉为“计算机算法的圣经”。
  • 编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题。

重构:改善既有代码的设计

《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。

《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

《重构:改善既有代码的设计》适合软件开发人员、项目管理人员等阅读, 也可作为高等院校计算机及相关专业师生的参考读物。

我想我不得不推荐《重构》:改进现有代码的设计。— Martin

我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序, 而优秀的程序员却能写出别人能读得懂的程序。— Martin Fowler

计算机程序设计艺术

《计算机程序设计艺术》系列著作对计算机领域产生了深远的影响。 这一系列堪称一项浩大的工程,自1962年开始编写,计划出版7卷,目前已经出版了4卷。

《美国科学家》杂志曾将这套书与爱因斯坦的《相对论》等书并列称为20世纪最重要的12本物理学著作。 目前Knuth正将毕生精力投入到这部史诗性著作的撰写中。

这是高德纳倾注心血写的一本书。— Peter Coulton

编译原理

我从没忘过此书的第一版封面。 此书让我知道了编译器是多么地神奇绝妙。— DB

哥德尔、艾舍尔、巴赫书:集异璧之大成

如果下昂真正深入阅读,我推荐道格拉斯·侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。 这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 – Jonik

代码整洁之道

细节之中自有天地,整洁成就卓越代码。

尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷, 写得不好的代码每年都要耗费难以计数的时间和资源。 然而这种情况并非无法避免。

著名软件专家RoberfC.Marlin在《代码整洁之道》中为你呈现出了革命性的视野。Martin携同ObjectMetltor公司的同事,从他们有关整洁代码的最佳敏捷实践中提炼出软件技艺的价值观,以飨读者,让你成为更优秀的程序员——只要你着手研读《代码整洁之道》。

阅读《代码整洁之道》需要你做些什么呢?你将阅读代码——大量代码。《代码整洁之道》促使你思考代码中何谓正确,何谓错误。更重要的是,《代码整洁之道》将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。

从《代码整洁之道》中可以学到:

  • 好代码和糟糕的代码之间的区别;
  • 如何编写好代码,如何将糟糕的代码转化为好代码;
  • 如何创建好名称、好函数、好对象和好类;
  • 如何格式化代码以实现其可读性的最大化;
  • 如何在不妨碍代码逻辑的前提下充分实现错误处理;
  • 如何进行单元测试和测试驱动开发。

虽然《代码整洁之道》和《代码大全》有很多共同之处,但它有更为简洁更为实际的清晰例子。 – Craig P. Motlin

编程珠玑

多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力, 从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。

本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。

尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《编程珠玑》,书中有些令人惊奇的东西。 – Matt Warren

修改代码的艺术 - Michael Feathers

本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从涵盖面和深度上都超过了前两部经典。书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。

作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。

书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。

我认为没有任何一本书能向这本书一样影响了我的编程观点。 它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte

同意。很多开发人员讨论用干净的石板来编写软件。 但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。– Bernard Dy

编码:隐匿在计算机软硬件背后的语言

这是一本讲述计算机工作原理的书。

不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。

不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟, 都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获。

我推荐Charles Petzold的《编码》。 在这个充满工具和IDE的年代,很多复杂度已经从程序员那“抽取”走了,这本书一本开眼之作。 – hemil

禅与摩托车维修艺术 / Zen and the Art of Motorcycle Maintenance

对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是,要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 – akr

Unix编程艺术

It is useful regardless operating system you use. / 不管你使用什么操作系统,这本书都很有用。 – J.F. Sebastian

仲夏清晨,夜幕褪去,古城長安漸漸醒來。

從來不喜歡“西安”這個後起的名字,而青睐于擱置許久的“長安”,漢唐的雄心與豪情恰在這二字中微妙地呈現。

都說長安是壹個破舊落後的城市,我不這麽認爲。

記得有壹位攝影家在他的遊記攝影集中談到長安的陳年舊色,他的描述在那壹瞬間讓我感動:“灰色的西安是陳舊落魄的,但灰色同時也是耐髒耐磨耐看耐讀的。”

每當自己穿梭于這曾經的國都中,並未意識到什麽。那壹個個在訴說著曆史瞬間的地名似乎在等待著每壹個人的憑吊,而本地人卻常常在外地甚或外國遊客的眼神中才讀到種種祖先的神聖與莊嚴。

很難想象現在的長安與繁華喧囂的北上广相提並論,關中大地上的壹切都缺乏所謂現代的細致與精巧,有人說這是王朝帝都的霸氣,也許吧,曆史上最大氣與兼容的朝代都以這裏爲中心,不能不讓人猜測當年壹些獨特的人文背景。于是會有人說,這裏是粗蠻的,聽聽關中人日常的話語,他們愛的秦腔,自然就有所體會呀,那吵架般的對話,直率的思維,吼氣沖天的嗓音,真讓人受不了。的確,現代社會的高節奏與強音符讓人們沒有心思去認真揣摩這壹切。在我看來,他們是不隱藏的,不逃避的,真實地表達自己的情感,用最真摯的發自內心的聲音竭力地去向人們敘述壹段如歌如泣的古代故事,這裏面會有疾惡如仇的青天,會有低三下四的奴才,當然更多的是人性掙紮與向往的執著。 

沒文化的,西部落後的土老冒,許多如今自命富貴的人這麽評價長安人。我不知道如何反駁,剛想到壹個現象,長安城裏的城牆天天都有遊客,可長安人卻很少有興趣登臨,他們或許更想在城牆根底下進行自己的未來,我卻在想:這城牆是明代的呀。對于這壹片摔壹跤手裏就有壹個文物的土地,明代的城牆又算得了什麽?而在外鄉人的眼裏,這便成了不懂得繼承的明證。長安人就是這樣,在別人無法理解的聰明中冷漠又熱情地生活著。他們對文化的理解就如同永遠滲透著蒜的老辣與烈香的老蒜錘壹樣,在其貌不揚的外表裏自然地融會了許多外人仍然看作很外在的東西。

生日快樂。

《開始懂了》裏說“愛情是流動的,不由人的,何必激動著要理由。”歌裏還說“有昨天還是好的,但明天是自己的。”其實早已釋懷你的離開,只是還放不下我們曾經的回憶。

那些回憶就像是用沒水的鋼筆在白紙上寫下的字,蒼白卻深刻,只要用孤單這支鉛筆去塗滿它們,就又會變得清晰無比。所以我只能盡力不去想它們,而不是試圖去忘記。但《盛夏光年》裏有唱到“一萬首的MP3,一萬次瘋狂的愛,敵不過一個渺小的孤單。”

還是會想起我難過的時候你做鬼臉逗我開心;還是會想起你趴在桌上假裝睡覺,然後突然坐起嚇我一跳;還是會想起你孩子氣的表情;還是會想起你說話的語調;還是會想起你鼻梁上架著的小眼鏡。

有太多我會想起的了,它們太重了,是時候該卸下了,“你說把愛漸漸放下會走更遠。”嗯,說的沒錯,寫完了這個故事我就不會再去想你了。我要讓想念通過這筆尖塗滿那張白紙,與墨水一起凝固,在這裏成爲紀念。

如果我還會去想你,那麽這個“你”已不再是現在的你了,“你”早已消失在兩年前,就像《記念》裏唱的一樣“那曾深愛過的人,早在告別的那天,已消失在這個世界。”

我一個人吃飯,一個人看書,一個人旅行;一個人哭,一個人笑,一個人重感冒。只是從現在開始,想念我不隨身攜帶。我依然會去聽《Miss Misery》,《I am falling now》,《Where’d you go》,只是從現在開始,它們不會再讓我抽風似的想你。

如果所有的房子都會成爲故居,所有的容顔都會成爲故人,那麽我們的情節現在已成爲故事。

A kind of bittersweet love called puppy love. Now I think it’s the time to say farewell.

謝謝你。

我懷念著當初那些無法刻制的時光,可那天已經離我好遠好遠,就像我自己一個人從天亮走到天黑、從繁華走向荒蕪、從咫尺走進天涯。

終于還是沒能等到她,如今我安靜地坐在窗邊,看立春後溫暖的陽光透過依舊繁盛如初的香樟樹罅隙間散落在書桌上斑駁的光影輕輕搖曳,我深陷在這荒蕪的明媚裏,原本以爲自己弱的禁不起世事無常竟也一言不發的承受了這長久的孤獨之旅,抽去年輕時的虛張聲勢和多愁善感 ,而此時我仍舊是一個人懷著絕望努力的生活著。

說過了,就盡量的去做到。

今天早上,來到公司,發現相機忘帶了,于是回家再取了一趟,我覺得值,言出必行。

可能太絕對,但我覺的有道理,盡量做到。