有哪些程序员必读书籍值得推荐
发布时间:2025-05-22 15:04:45 发布人:远客网络
一、有哪些程序员必读书籍值得推荐
1、程序员必读书有哪些?这个其实没办法回答,你最需要的,就是你必读的。不过,仍然有很多经典的书籍,当你读完这些之后,你会发现另外一番天地,也解放了自己的思维方式。
2、本书从软件质量、编程思想等方面阐述了软件构建的各种问题,并论述了紧跟潮流的新技术、高屋建瓴的观点,而且还有丰富的程序示例。看完这本书,可以打开自己的思维方式,有种柳暗花明又一村的感觉。
3、这本书主要讲述了使代码保持灵活并且易于改变和复用的各种框架技术,利用了许多富有娱乐型的奇闻异事,具有思想性的例子及有趣的类比,全面阐述了软件开发的许多不同方面的最佳实践和重大陷阱,绝对是程序员必读的书之一。
4、本书成型于麻省理工学院多年使用的一本教材,世界各地已有100多所院校采用本书作为教材,包括美国福斯坦大学、普林斯顿大学、牛津大学、东京大学等。
5、由C语言设计者DennisM.Ritchie和著名计算机科学家BrianW.Kernighan编写的一部介绍C语言标准及其程序设计方法的权威性经典著作。全面、系统的讲诉了C语言各个特性及程序设计的基本方法。
6、C语言开发者必读的一本书,其他开发者也不妨看看,非常有价值。
7、实用性书籍,清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时、何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换首发的动机和技术。
二、程序员应该阅读的非编程类书籍有哪些
在 stackoverflow上有人提问程序员应该阅读的非编程类书籍有哪些?本来只想整理编程类书籍,不过突然眼前一亮,发现了《The Art of War- Sun Tzu》回答者的推荐说明引用 Wikipedia上的:
亚马逊提供免费的Kindle版读本:孙子兵法
Much of the text is about how to fight wars without actually having to do battle: it gives tips on how to outsmart one's opponent so that physical battle is not necessary. As such, it has found application as a training guide for many competitive endeavors that do not involve actual combat.
This knowledge would surely be useful in the everyday"battles" we have to fight in and out of the office. It's also filled with quotes you can impress your fellow programmers with...:)
《哥德尔、艾舍尔、巴赫——集异璧之大成》Gödel, Escher, Bach: an Eternal Golden Braid,
这本书通常被称为《GEB》,它绝对是一本神书,一本奇书,一本神奇的书。在豆瓣读书的科普类排名中稳居第一。我在博客中,和即将出版的书中,也一而再,再而三的提及此书。
书有点儿厚,而且价格不菲,大概五六十吧。我也曾经不止一次的向朋友们推荐此书,并赠书此书。
作者也乘中文版出版之际,为自己取了一个雅致的汉名──侯世达(Douglas Richard Hofstadter)。侯世达应该是 Hofstadter的音译。
如果你喜爱理科,此书必读。如果你是文科,那就读读《银河系漫游指南》。
《银河系漫游指南》The Hitchhiker's Guide to the Galaxy
亚马逊翻译为《银河系搭车客指南》,略带喜感。
巨大的飞船一动不动地挂在空中,覆盖了地球上的每个国家。
在黯然退场之前,地球首先被改造成了最终极的声音重放器件,这是有史以来建造过的最伟大的播音系统。
但伴之而来的不是演奏会,不是音乐,没有开场号曲,而仅仅是一条简短的信息。
“地球人,请注意了。”一个声音说,这声音堪称完美,仿佛来自四声道系统,完美得无懈可击,失真度低得能让勇敢的男人洒下眼泪。
“这里是银河超空间规划委员会。诸位无疑已经知道,银河系边远地区的开发规划要求建造一条穿过贵恒星系的超空间快速通道,令人遗憾的是,贵行星属于计划中预定毁灭的星球之一。毁灭过程将在略少于贵地球时间两分钟后开始。谢谢合作。”
《人性的弱点》How to Win Friends and Influence People
《人性的弱点 Kindle版》只售 2.9元。
《人性的弱点》的作者戴尔·卡耐基,美国“成人教育之父”。 20世纪早期,美国经济陷入萧条,战争和贫困导致人们失去了对美好生活的愿望,而卡耐基独辟蹊径地开创了一套融演讲、推销、为人处世、智能开发于一体的教育方式,他运用社会学和心理学知识,对人性进行了深刻的探讨和分析。《人性的弱点》讲述的许多普通人通过奋斗获得成功的真实故事,激励了无数陷和迷茫和困境的人,帮助他们重新找到了自己的人生。
接受卡耐基教育的有社会各界人士,其中不乏军政要员,甚至包括几位美国总结。千千万万的人从卡耐基的教育中获益匪浅。
《人性的弱点》汇集了卡耐基的思想精华和最激动人心的内容,是作者最成功的励志经典,出版后立即获得了广大读者的欢迎,成为西方世界最持久的人文畅销书。无数读者通过阅读和实践书中介绍的各种方法,不仅走出困境,有的还成为世人仰慕的杰出人士。只要不断研读《人性的弱点全集》,相信你也可以发掘自己的无穷潜力,创造辉煌的人生。
《别逗了,费曼先生!》Surely You're Joking, Mr. Feynman!
《别逗了,费曼先生》是一本很棒的读物:挥霍无忌、惊世骇俗,却仍然温馨,很有人情味儿。
R·P·费曼,他因盘子电动力学方面的研究荣获诺贝尔物理学奖。除了作为一个物理学家外,费曼在不同时期还曾是故事大王、艺术家、鼓手和密码破泽专家。
“费曼的一生,或可比作连锁反应。从一点儿临界质量的灰质开始,这个生命向四面八方炸开,产生出热和光。”——《时代》
“费曼以其才华和怪癖,在他的同事们中间,成了一个传奇人物——您在阅读本书的时候,不从头笑到尾,是很难的。”——《新闻周刊》
“眉飞色舞,肆意笑闹……费曼的语言,生动活泼,直率真朴一真正令人耳目一新。”——《芝加哥太阳报》
“如果您以为物理学或物理学家中间没有什么乐子一那么来会会费曼吧——一个用一团原子变戏法的最令人捧腹的伙计。”——《联合日报》
“科学家都是枯燥无味之人,这样一种老生常谈,一本书就能打破,这本书就是。”——《底特律自由报》
《尽管去做》Getting Things Done
如果你增加听说过一个词——GTD,没错,就是这本书 Getting Things Done,还有一种译法是《搞定1:无压工作的艺术》也很信、达,至于雅嘛,呵呵。
在今天这个信息量和工作量倍增的世界,一些老的工作方法已经失去了效用。每一个职场中人或多或少都有这样的体验:压力重重;太多事情都理不清头绪;似乎永远被各种任务和目标追赶着……
时间管理大师戴维•艾伦将指导你走出规划和执行工作中的泥沼,通向高效、轻松的彼岸。要想让事情井井有条,关键便是——从容、放松。
《别让我思考》Don't Make Me Think
先推荐一篇知乎上的文章:Chrome浏览器的哪些设计符合「Don't make me think」原则?
在豆瓣和亚马逊搜索了很久中文版,居然没找到,不得已求助 Google,原来被翻译成了《点石成金:访客至上的网页设计秘笈》。
如果你在进行网站设计,为网站编程,或者管理网站,那么一定要读一读此书。
有些网站能让你轻松地找到资料;
为什么网站的可用性会有如此大的反差?用户在访问网站时有怎样的心理?遵循什么样的原则来设计网站才能吸引访客?这本全球 Web设计人员的必读经典会给出答案。
《禅与摩托车维修艺术》Zen and the Art of Motorcycle Maintenance
《禅与摩托车维修艺术》:累积销量超过一千万册,美国大学“禅与现代美国文学”课程的必读参考书。
70年代的梭罗——罗伯特•M.波西格,《时代》周刊评选20世纪70年代十本最有影响力的书之一。
《禅与摩托车维修艺术》主要内容简介:在一个炎热的夏天,父子两人和约翰夫妇骑摩托车从明尼苏达到加州,跨越美国大陆,旅行的过程与一个青年斐德洛研修科学技术与西方经典,寻求自我的解脱,以及探寻生命的意义的过程相互穿插。
一路上父亲以一场哲学肖陶扩的形式,将见到的自然景色,野外露营的经历,夜晚旅店的谈话,机车修护技术等等日常生活与西方从苏格拉底以来的理性哲学的深入浅出的阐述与评论相结合,进行了对形而上学传统的主客体二元论的反思,以及对科学与艺术,知识与价值,古典主义与浪漫主义,精神与物质,机械论与神秘主义,西方与东方等西方二分法划分下的事物间的关系的思考。
并潜入自己的过去,探寻在现代文明下自己精神的分裂的起源,完成了一次自我心灵与人类文明的探索。
三、如何成为一个程序员
1、程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)
2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)
3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)
4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:
一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)
6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)
7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)
8、你真的要当程序员?是你自己的想法?
9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真他XX的贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。) 10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。
12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)
(三)一个程序员应该具备的基础知识和概念
1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!)
4、汇编语言是低级语言但不是机器语言。
5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中国软件业的英雄,你也写一门语言,最好不用英语) 6、编译程序和解释程序的概念和其原理。(编译器是高手和专家编写的)
9、操作系统OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,还有一些实时OS,嵌入OS,编这些的绝对是高手)
10、Windows编程说白了就是Windows API的调用。(中国的程序员很多只是会编windows程序,用的是VB,我的建议是这些程序员顶多只是低级编码员,我称其是coder)
11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。
13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的)
14、软件工程的概念和原理。(如果你想当老总就需要好好研究了,系统分析员比编码员要高一个等级,薪水也高哟)
15、数据库的概念。(要熟悉一些著名的数据库系统和语言的名字,如Orcle,SQL,DB2,DyBase等)
18、熟悉和掌握数据结构和基本算法。
19、是不是要求太高了,别着急慢慢来,进步在不知不觉之中。(一旦开始学习,一个月以后你就会有一个基本的概念;两个月以后你就会感觉自己有了全面的基础知识;当你知道编程序是怎么回事时,说明你已经入门了。也有很多人编了很多年程序还没有入门呢,你不会希望自己步其后尘吧。要有信心和耐心。沉不住气怎么能成大事?!)
――-推荐的教材主要还是针对概念来的,最好选用名校的教学用书。
3、《操作系统》(了解->熟悉)
10、《The C++Languege》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
1、真正的程序员用C++;(一位专家说的)
5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)
7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)
10、善于发现问题,然后去寻找答案;
11、向高手请教;(要虚心直到你成为高手)
12、和同行交流;(不善于交流肯定不行)
13、懂得软件的实质,不要被千变万化的表象所迷惑;
14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)
15、学习wiodows编程主要是学习windows OS和win32 API;
18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;
19、要有耐心,不要作浮躁的人; 20、对程序加注释,并保留你的老程序;
21、学到的东西越多,了解的越多,你就越接近专家;
22、有空去逛逛CSDN,那里有你很多知己;
23、要有信心成为一个优秀的程序;
1、《The C Programming language》(Keinighan& Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》(lippmans)
5、《More Effective C++》(同上)
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming》
12、《Programming Windows》(Charles Petzold)
――-这个学习计划是我个人定的,也共享给大家参考一下,共同进步吧。 1、《计算机组成原理》
11、《Inside The C++ Object Model》