程序员必读的书籍
1.重构:改善既有代码的设计(软件开发的不朽经典)
何为重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。本书虽然使用Java语言书写示例代码,但是其概念与思想同样适合 于其他语言。书中,作者以一些平淡无奇,甚至带有坏味道的代码开始,一步一步地修改转变成更加灵活,可重用的代码。通过书中的示例,你会清楚地明白什么才 是整洁的代码。重构其实依然成为 经验 丰富的程序员的必备技能,当你想要改善重构代码时,读一读这本书就会让你有章可循,豁然开朗。
2.代码整洁之道(Robert C. Martin力作,韩磊献译)
这是我最喜欢的一本书,不止一次我将它推荐给我的同事,读者还有学生。我认为它可以称得上软件开发与编码方便最好的一本书。Bob大叔我想无需做介绍,他写 过一个关于敏捷开发的系列书籍,我的书架上就有他的 《代码整洁之道》 , 《程序员的职业素养》 , 《敏捷软件开发(原则模式与实践)》 , 《敏捷软件开发(原则模式与实践)》 , 《UML for Java For Programmers》 , 《Extreme Programming in Practice》等这些书籍。虽然他的这些书有点老旧,但是这些书仍然很有价值,纵使数十年之后,这些书依旧受用,尤其是在面向对象编程方面。 本书不仅仅是告诉你要做什么,还教会你什么不能做。书中有关于代码味道的一个章节,全面列举了大多数程序员遇到的各种错误,其后的章节则详细描述如何纠正 这些错误。比如如何将过长的switch声明转换成遵循开放闭合原则的模型,如何利用集成和多态。再次啰嗦一下,这本书确实值得每个程序员拥有。和上本书 一样,书中的例子使用Java语言,但依然适合使用其他面向对象编程语言的开发者阅读。想要撸的一手好码,这本书必不可少。
3.代码大全
两届Software Jolt Award震撼大奖得主!软件开发世界的地图,经典中的经典
想必这本书大家都曾阅读过,这就是鼎鼎大名的《代码大全》,从某个角度看,它其实就是C++版的《代码整洁之道》。本书的目标就是帮开发者使用 做高质的代码写出更好的软件。同样书中也涉及了编程中常见问题和最佳实践。这本书也可以称得上是必读书籍,尤其是对于C和C++程序员。《代码大全(第2 版)》中所论述的技术不仅填补了初级与高级编程实践之间的空白,而且也为程序员们提供了一个有关软件开发技术的信息来源。《代码大全(第2版)》对经验丰 富的程序员、技术带头人、自学的程序员及没有太多编程经验的学生都是大有裨益的。可以说,只要您具有一定的编程基础,想成为一名优秀的程序员,阅读《代码 大全(第2版)》都不会让您失望。
4.单元测试的艺术
世界级软件开发大师,设计模式和敏捷开发先驱,“Bob大叔”Robert C. Martin强力推荐
如果非要做一件改善项目,提高开发者水平的事情,我想那就是让开发者掌握单元测试的能力。对于专业的开发者来说,单元测试是一项必备的技能,多数的程序员 却不具备TDD(测试驱动开发)的能力。我虽然在不太遵循TDD这种模式,但是也会为自己写的或维护的代码编写单元测试。对于工程来说,开源项目基本都严 格遵守执行单元测试,而很多商业的工程则在单元测试方面有所缺失。一个拥有单元测试的项目会变得更加容易维护和更改。本书会介绍成功的项目与失败项目的差 别,可维护的代码库与不可维护的代码库之间的区别。本书示例为.NET代码,但这并不会影响你了解单元测试。如果你是一名技术负责人或者项目负责人,这本 书可以帮你更好地把控项目代码质量。如果你看Java更舒服的话,也可以看一看这本书 《JUnit实战(第2版)》 。
5.精益软件开发管理之道
《精益软件开发管理之道》是一本软件开发 方法 学的书。作者从24个不同的视角,在更大的空间、时间、行业、 文化 背景下,考察了敏捷和精益方法。 《精益软件开发管理之道》详细阐述了敏捷和精益开发方法取得成功的深层原因。《精益软件开发管理之道》包括以下内容:系统思考,以适当足够的方式关注客 户技术杰出,介绍了杰出软件开发的基础-低耦合的架构、测试驱动的开发过程等可靠交付,讨论了工作流和日程计划,以及反馈的重要作用无情改进,讨论 了所有精益组织的基本特点:持续不断、永不满足的改进卓越的人,卓越的结果来自于卓越的人一致的领导,讨论在领导团队中达成一致。
6.设计模式:可复用面向对象软件的基础
这本书要么你读过,要么就是听说过,这就是经典的GOF(Gang of Four 中文译为_)设计模式一书。该书作者为四人,分别是Eric Gamma, Richard Helm, Ralph Johnson, 和John Vissides。四位顶尖的面向对象领域专家精心选取了最具价值的设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。本书已经成为面向 对象技术人员的圣经和词典,书中定义的23个模式逐渐成为开发界技术交流所必备的基础知识和语汇。使用这些设计模式,我们可以设计出灵活,优雅和可重用的 可扩展的设计。
7.细说PHP
51CTO“最受读者喜爱的原创IT技术图书”奖
《细说PHP》编写的宗旨是让读者能拥有一本PHP方面的学习和开发使用的最好书籍,对所罗列出的每个知识点都进行了细化和延伸,并力求讲解到位,让读 者可以轻松地读懂。对于几乎每个知识点都有对应且详实的可运行的代码配套,对所有实例代码都附有详细注释、说明及运行效果图。另外在每个章节的最后还为读 者安排了大量的和本章知识点配套的授课课件及自测试题(附加在光盘中),能更好地帮助读者掌握理论知识点,提高实际编程能力,寓学于练。对于入门与提高 PHP技术起到关键作用。
《细说PHP》作者高洛峰。现任北京LAMP兄弟连[1](易第优 教育 )教学总监,五年软件开发工作经验,四年IT教学工作经验。曾在多家上市企业担任过技 术总监、项目经理、高级软件工程师等职务,具有扎实的技术功底。国内资深的高级技术认证讲师,从事IT培训以来累计授课长达6000课时以上,培训近千名 学员成功走向IT岗位,具有丰富的IT教学经验。
程序员的专业技术书
1、《数学之美》第二版
获奖畅销书《数学之美》第一版荣获国家图书馆第八届文津图书奖。
第一版入选广电总局“2014年向全国青少年推荐百种优秀图书书目”,荣获2012-2013年度全行业优秀畅销书。
信息领域大学生必读好书,央视新闻推荐的学科敲门砖。
新版增加了大数据和机器学习等最新内容,以满足人们对当下技术的学习需求同时,根据专家和读者的反馈更正了错漏,并更新了部分内容。
《数 学之美》第一版上市后深受广大读者欢迎,并荣获国家图书馆第八届文津图书奖。读者说,读了《数学之美》,才发现大学时学的数学知识,比如马尔科夫链、矩阵 计算,甚至余弦函数原来都如此亲切,并且栩栩如生,才发现自然语言和信息处理这么有趣。而今,数学在信息产业中的应用越来越广泛,因此,作者在第二版中增 加了一些内容,尤其是针对大数据和机器学习的内容,以便满足人们对当下技术的学习需求。
2、文明之光 第三册
吴军博士继获奖畅销书《浪潮之巅》、《数学之美》之后的跨界之作
为您讲述他眼中的超越上下五千年的人类文明史
随文津奖得主一起体会科技与人文之美
作 者所选的创作素材来自于十几年来在世界各地的所见所闻,对其内容都有着深刻的体会和认识。《文明之光》系列第三册每个章节依然相对独立,书中全景式地展现 了人类文明发展历程中的多样性。内容涉及音乐、美术、计算机、互联网、金融、硅谷对世界科技发展的启迪、微粒子和宇宙天文学、环境保护八个专题。
3、构建之法:现代软件工程
“做中学 Learning By Doing”的现代方式教授软件工程
李未院士鼎力推荐,众多软工教师一致好评
微软研发总监邹欣力作
推荐软件工程专业学子阅读,了解软件工程真正内涵,懂得“工程”二字真正含义,知道软件工程和计算机科学的区别。了解之后,就知道为何软件工程是就业含金量较高的行业了。
书中设想了大量的场景“学”和“习”,并且用了大量的类比,非常生动有趣。这本教材也对软件工程课老师提出了更高的要求对学生而言,同样面临着要付出怎样的努力才能学到“干货”的选择。
《构建之法:现代软件工程》共分17章,对照美国ACM/IEEE2013年新出版的计算机科学教学指导 (Computer ScienceCurricula 2013)中的软件工程相关部分,这本教材覆盖了其中大多数Core-Tier1和Core-Tier2的内容。可以说,全书对软件工程内容的覆盖不逊于 任何一本现行的教材,同时讲述了业界最新实践方法。
程序员看的好书籍
1.《哥德尔、埃舍尔、巴赫》
豆瓣评分:9.4 分
作者简介:道格拉斯·理查·郝夫斯台特,中文名侯世达,美国学者、作家。他的主要研究领域包括意识、类比、艺术创造、文学翻译以及数学和物理学探索。 因其著作《哥德尔、埃舍尔、巴赫》获得普立兹奖(非小说类别)和美国国家经典奖(科学类别)。
推荐理由:这是一部天书。在数学,绘画,音乐和 故事 中畅游,却在探讨哲学中最深刻的问题:意识和灵魂如何产生,从哲学角度探讨人工智能和人类智能。当你看完书后,也许你具体记不得太多细节,但是不经意间你会发现它已经深深地影响了你的世界观。
2.《算法导论》
豆瓣评分:9.4 分
作者简介:托马斯·科尔曼,达特茅斯学院计算机科学系教授、系主任查尔斯·雷瑟尔森,麻省理工学院计算机科学与电气工程系教授,他目前主持 MIT 超级计算技术研究组,并是 MIT 计算机科学和人工智能实验室计算理论研究组的成员罗纳德·李维斯特,现任麻省理工学院电子工程和计算机科学系安德鲁与厄纳·维特尔比(Andrew and Erna Viterbi)教授。他是 MIT 计算机科学和人工智能实验室的成员,并领导着其中的信息安全和隐私中心。他现在担任国家密码学会的负责人克利福德·斯坦,哥伦比亚大学计算机科学系和工业工程与运筹学系教授,他还是工业工程与运筹学系的系主任。
推荐理由:这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的 NP 完全性的证明等内容。
猜你喜欢:
1. 程序员们的专业技术书分享
2. linux程序员必看书籍推荐
3. java程序员必看的书籍推荐
4. 清华大学推荐的青少年阅读书目
5. 文艺青年必看的书
关注PHP的人越来越多了,可惜国内PHP5方面的好书还非常少,几乎可以说没有。PHP4即将是明日黄花,所以学PHP最好直接学PHP5。下面是我认为比较好的PHP5书籍:
1. Core PHP Programming, 3rd Edition
这本书是PHP专家Leon Atkinson和PHP创始人之一Zeev Suraski合著的。国内有
第2版,讲PHP4的,但这本第3版还买不到。学校图书馆有一本原版,可惜只有一本
(现在在我手里,咔咔)。讲得非常全面,做为Web编程方面的知识,几乎全部包括
了。最有价值的是Part 4,讲Software Enginerring的,介绍了设计、效率与调试,
还介绍了四种最常用的设计模式,非常有参考价值。可惜毕竟是03年的书,那时候
PHP5还在开发中,所以里面有一些内容并不完全适合现在的PHP5,比如名字空间(
PHP5并不支持名字空间)。不过瑕不掩瑜,做为PHP5的一本综合书籍,这本书非常
经典,可以用于入门,也可以用于提高。
2. PHP5 Power Programming
这本书是PHP的另一创始人Andi Gutmans写的,专门针对PHP5。个人感觉这本书
不适合学习,但很适合提高时参考。里面花了大量篇幅讲述PHP5的面向对象机制,
不过基本上跟Core PHP Programming重复,所以看过Core后再看这些将很快,可以
当成温故一遍。还有一章介绍了PHP5里的高级面向对象特性,如迭代器,反射API(
Reflection API,在其它面向对象语言里称自省),也介绍了设计模式。
可惜的是,跟上面一本书一样,都是只讲PHP特性的书,具体到PHP高级应用的
实战讲得感觉比较欠缺,像MVC模式,两本书都没讲到,而这些对PHP高级编程来说是
非常重要的。比较令人安慰的是这本书还介绍了很多PHP高级特性,像PEAR包,APC,
APD,Xdebug,还有Zend Studio的使用,等等,这些还是非常有价值的。
总之,这是一本很适合提高时使用的书籍,跟Core一样,也是PHP书籍中的经典。
3. PHP and MySQL Web Development, 3rd Edition
这是国内唯一能买到的PHP5书籍,中文翻译,但翻译质量不怎么样,有些句子
读起来莫名其妙。这本书比较适合初中级的PHP学习,而且非常实际,有很多基本应
用的实例,很适合入门。除了数据库知识很不错外,里面也讲到了使用PHP和MySQL
开发中等项目时所需要考虑到的问题,介绍了很多基本的软件项目管理方法,非常
实用。后面几章是一些实例,介绍了购物车(我最不喜欢这东西),邮件列表,内容
管理系统和论坛的编写,不过都只是基础,没有高级技巧,所以看起来会觉得很不舒
服,呵呵。
里面有一张泛泛地讲到了电子商务安全,可以参考下。个人感觉相当不错的内容
是MySQL部分,基本涵盖了数据库基础和MySQL基础及高级特性,但限于篇幅,没有去
讲得很深入,权当是入门指引了。
因为是国内能买到的,所以很多人可能会喜欢从这本书开始学PHP5,我觉得也不
错。总之很推荐这本书。
4. Essential PHP Security
这是一本讲述PHP编码安全的书,非常需要引起PHP开发人员的重视。我觉得这是
一本必读书籍,读过后会让你冒冷汗。现在注重安全编码的人实在太少了,对于一个
专业的PHP程序员,PHP安全特性绝对要烂熟于胸,而这本书就提供了一个非常好的视
角。
5. PHP Architect's Guide to PHP Design Patterns
这本书我正在看,对于PHP5面向对象的学习绝对非常有帮助。里面介绍了非常多
的设计模式,直接以PHP语言实现出来,可以让你一步到位使用模式思想。第17章介
绍了PHP里的MVC模式,可以说是带了个好头,很有参考价值。
由于还没看完,所以不敢多评价,但可以肯定的是,这本书对于学PHP5面向对象
高级编程的人来说是绝对必备的。
国内有中文版,phpchina社区翻译的,可以下载过来参考下。另外,好像关于
PHP设计模式的书又出了一本,叫做《PHP5: Objects, Patterns and Practice》,
可惜我Google了半天也找不到下载地址,只能作罢了,希望以后能找到。可以肯定这
又将是一本让人振奋的书。
又将是一本让人振奋的书。
最后想说明的是,Oreilly的PHP书就不用看了,包括PHP创始人Rasmus Lerdorf写的
《Programming PHP》(现在好像出第2版了),讲得东西基本上全是PHP手册里的东
西,没必要重复浪费时间。像《Learning PHP5》,《PHP Cookbook》之类,说实话
我个人感觉真的只是PHP手册的子集。最近好像又出了本同样可以看成是子集的书,
书名是《Learning PHP and MySQL》,看了一眼就没看了。不是对Oreilly有偏见,
只是因为它的书全是入门级的,没什么含金量,属于看过就扔的那种。想想K&R的
《The C Programming Language》吧,呵呵。
最最后想说明的是,PHP手册,一定要反复看!这个是学PHP最重要的参考资料,每个
人都应该有一本以备不时之需。有中文翻译版的,不过里面的链接有错误,看起来不
是很方便,但多摸索几次就能把链接弄对了。
大概就讲这些了,只是我个人观点,希望大家指点批评,共同进步。
初级程序员考试:考试科目1:计算机硬软件基础知识1. 计算机科学基础
1.1 数制及其转换
二进制、十进制和十六进制等常用数制及其相互转换
1.2 数据的表示
数的表示(原码、反码、补码表示,整数和实数的机内表示方法,精度和溢出)
非数值表示(字符和汉字的机内表示、声音和图像的机内表示)
校验方法和校验码(奇偶校验码、海明校验码)
1.3 算术运算和逻辑运算
计算机中二进制数的运算方法
逻辑代数的基本运算和逻辑表达式的化简
1.4 数学应用
常用数值计算(矩阵、方程的近似求解、插值)
排列组合、应用统计(数据的统计分析)
1.5 常用数据结构
数组(表态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树)、图的定义、存储和 *** 作
1.6 常用算法
常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表)
2. 计算机系统基础知识
2.1 硬件基础知识
2.1.1 计算机系统的组成,硬件系统、软件系统及层次结构
2.1.2 计算机类型和特点
微机、工作站、服务器、大型计算机、巨型计算机
2.1.3 中央处理器CPU
运算器和控制器的组成,常用的寄存器、指令系统、寻址方式、指令执行控制、处理机性能
2.1.4 主存和辅存
存储器系统
存储介质(半导体、硬盘、光盘、闪存、软盘、磁带等)
主存储器的组成、性能及基本原理
Cache的概念、虚拟存储的概念
辅存设备的类型、特性、性能和容量计算
2.1.5 I/O接口、I/O设备和通信设备
I/O接口(总线、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394)
I/O设备的类型和特性(键盘、鼠标、显示器、打印机、扫描仪、摄像头,以及各种辅存设备)
I/O设备控制方式(中断控制、DMA)
通信设备的类型和特性(Modem、集线器、交换机、中继器、路由器、网桥、网关)及其连接方法和连接介质(串行连接、并行连接,传输介质的类型和特性)
2.2 软件基础知识
2.2.1 *** 作系统基础知识
*** 作系统的类型和功能
*** 作系统的内核(中断控制)和进程概念
处理机管理、存储管理、设备管理、文件管理、作业管理
汉字处理
图形用户界面及其 *** 作方法
2.2.2 程序设计语言和语言处理程序基础知识
汇编、编译、解释系统的基础知识
程序设计语言的基本成分(数据、运算、控制和传输)
过程(函数)调用
2.3 网络基础知识
网络的功能、分类、组成和拓扑结构
网络体系结构与协议(OSI/RM,TCP/IP)
常用网络设备与网络通信设备,网络 *** 作系统基础知识和使用
Client/Server结构、Browser/Server结构
LAN基础知识
Internet基础知识
2.4 数据库基础知识
数据库管理系统的主要功能和特征
数据库模型(概念模式、外模式、内模式)
数据模型,ER图
数据 *** 作(关系运算)
数据库语言(SQL)
数据库的主要控制功能
2.5 多媒体基础知识
多媒体基础概念,常用多媒体设备性能特征,常用多媒体文件格式类型
简单图形的绘制,图像文件的基本处理方法
音频和视频信息的应用
简单多媒体应用制作方法
2.6 系统性能指标
响应时间、吞吐量、周转时间等概念
可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性等概念
2.7 计算机应用基础知识和常用办公软件的 *** 作方法
信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等概念
文字处理基础知识和常用 *** 作方法
电子表格处理基础知识和常用 *** 作方法
演示文稿制作方法
电子邮件处理 *** 作方法
网页制作方法
3. 软件开发和运行维护基础知识
3.1 软件工程和项目管理基础知识
软件工程基本概念
软件开发各阶段的目标和任务
软件过程基本知识
软件工程项目管理基本知识
面向对象开发方法基础知识
软件开发工具与环境基础知识(CASE)
软件质量管理基础知识
3.2 软件需求分析、需求定义及软件基础知识
结构化分析概念(数据流图(DFD)、实体关系图(ER))
面向对象设计、结构化设计基础知识
模拟设计、代码设计、人机界面设计要点
3.3 程序设计基础知识
结构设计程序设计,程序流程图,NS图,PAD图
程序设计风格
面向对象设计基础知识、可视化程序设计基础知识
3.4 程序测试基础知识
黑盒测试、白盒测试、灰盒测试基础知识
测试工作流程
3.5 软件开发文档基础知识
3.6 软件运行和维护基础知识
软件运行基础知识
软件维护基础知识
4. 安全性基础知识
安全性基本概念
计算机病毒的防治,计算机犯罪的防范
访问控制
加密与解密基础知识
5. 标准化基础知识
标准化基本概念
国际标准、国家标准、行业标准、企业标准基础知识
代码标准、文件格式标准、安全标准、软件开发规范和文档标准基础知识
标准化机构
6. 信息化基本知识
信息化基本概念
全球信息化趋势,国家信息化战略,企业信息化战略和策略常识
有关的法律、法规要点
过程教育、电子商务、电子政务等常识
企业信息资源管理常识
7. 计算机专业英语
掌握计算机技术的基本词汇
能正确阅读和理解本领域的简单英文资料
考试科目2:程序设计
1. 内部设计
1.1 理解外部设计
1.2 功能划分和确定结构
数据流图、结构图
1.3 物理数据设计
确定数据组织方式、存储介质,设计记录格式和处理方式
1.4 详细输入输出设计
界面设计、报表设计
1.5 内部设计文档
对程序接口、程序功能、人机界面、输入输出、测试计划的描述
1.6 内部设计文档
2. 程序设计
2.1 模拟划分(原则、方法、标准)
2.2 编写程序设计文档
模块规格说明书(程序处理逻辑的描述、输入输出数据格式的描述)
测试要求说明书(测试类型和目标、测试用例、测试方法)
2.3 程序设计评审
3. 程序实现
3.1 编程
编程方法和标准
程序设计语言的使用
人工检查
程序文档化
3.2 程序测试
准备测试环境和测试工具
准备测试数据
写出测试报告
4.程序设计语言(C语言为必选,其他语言可以任选一种)
4.1 C程序设计语言(ANSI C标准)
程序结构,语法,数据类型说明,可执行语句,函数调用,标准库函数,指针
4.2 C++程序设计语言(ANSI C++标准)
C++和面向对象程序设计,语法和程序结构,类、成员、构造函数、析构函数、模板、继承、多态
4.3 Java程序设计(Java 2)
Java和面向对象程序设计
语言机制(程序结构和语法,类、成员、构造函数、析构函数、继承、接口)
4.4 Visual Basic程序设计(Visual Basic 6.0)
用户界面设计
程序结构和语法
文件系统对象
访问数据库
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)