《Java程序员,上班那点事儿》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:钟声编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302205142
  • 页数:303 页
图书介绍:本书对于即将从事Java职业或初步从业的程序员来说是一本难得的好书。从生存、制胜、发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像。

第一篇 生存法则 2

第1章 知己知彼,百战不殆 2

1.1问题1:这个职业赚钱吗?能赚多少钱 2

1.1.1修炼第一层境界剑指四方,试问天下谁与争锋 3

1.1.2修炼第二层境界:世界如此之大要学的东西很多 4

1.1.3修炼第三层境界:最深即最浅最浅即最深,不过如此 5

1.1.4点评“修炼三层境界” 6

1.1.5回答这个问题 6

1.2问题2:大学毕业生找不到职业入口 6

1.2.1工作经验都是什么经验 7

1.2.2他们为什么面试的时候这么问 9

1.2.3程序员的笔试 14

1.2.4回答这个问题 18

1.3问题3:跨行业真的这么难吗 19

1.3.1跨行业最难的是什么 19

1.3.2跨行业的入口——原来从事行业的业务知识 19

1.3.3农民造出了飞机,为什么他还是农民 20

1.3.4回答这个问题 20

1.4秘诀:经营自己的优势 21

1.4.1善于发掘和积累自己的优势 21

1.4.2善于展示与利用自己的优势 22

1.5点评“经营自我” 24

第2章 软件开发职业的误区 25

2.1误区1:软件开发职业是青春饭 25

2.1.1不必为30岁以后烦恼 25

2.1.2 30岁以后照样可以编程序 26

2.1.3 50多岁的程序员多得是 26

2.1.4点评“青春饭” 27

2.2误区2:做软件开发是必须要加班熬夜的工作 27

2.2.1程序员们熬夜工作的借口 27

2.2.2常态加班的危害 29

2.2.3控制好工作的一日时间表才是关键 29

2.2.4“偏执与狂热”不等于加班加点 30

2.2.5程序员的大脑与第二大脑 31

2.2.6点评“加班熬夜” 32

2.3误区3:开发一个软件产品一定是集团作战 32

2.3.1几百人的公司其他人都在干什么 33

2.3.2需要较全的人员配置的项目 36

2.3.3坚信只要是“人”做到的我就能做到 37

2.3.4点评“集团作战” 37

2.4误区4:程序员不是一般人 37

2.4.1程序员的与众不同与平凡 38

2.4.2程序员们就是一般人 39

2.4.3点评”一般人” 40

2.5误区5:存在“软件蓝领”岗位 41

2.5.1“软件蓝领”是个“美梦” 41

2.5.2“让程序员放弃思考”是个“噩梦” 42

2.5.3软件开发流程“理想”的“不理想” 42

2.5.4“软件蓝领概念”忽略的东西 45

2.5.5现实中的软件开发团队 46

2.5.6点评“拧螺丝” 49

2.6关于误区 49

第3章 程序员的“菜鸟心态综合症” 50

3.1症状1:指望着公司里有一个老师 50

3.1.1临床表现 50

3.1.2治疗1:弄明白她为什么辞职 50

3.1.3治疗2:理解公司的本质是什么 51

3.1.4治疗3:要搞清楚你的主管是你的老板,他绝对不是你的老师 51

3.2症状2:不知道怎么让自己前进 51

3.2.1临床表现 51

3.2.2治疗1:你只管低着头上山暂时不要向山上看 52

3.2.3治疗2:明知山有虎,偏向虎山行 52

3.2.4治疗3:没有过不去的火焰山 53

3.2.5治疗4:虚心使人进步,骄傲自满要不得 54

3.3症状3:想做圈养的羊,不想做野生的狼 55

3.3.1临床表现 56

3.3.2治疗1:理解“丛林法则”生存的法则 56

3.3.3治疗2:向掠食动物学习如何生存 57

3.4症状4:缺乏自信,总对自己说No 57

3.4.1临床表现 58

3.4.2治疗1:生活取决于自己 58

3.4.3治疗2:找到通往高楼的那扇门 58

3.4.4治疗3:逐个排除你恐惧的理由 59

3.5症状5:缺少幸福感,内心总在跳跃 60

3.5.1临床表现 60

3.5.2治疗1比一比到底谁最幸福 60

3.5.3治疗2要努力进取也要找到幸福的理由 61

3.6症状6:困兽心态,焦躁与不安 61

3.6.1临床表现 61

3.6.2治疗1:像猴子一样生活 61

3.6.3治疗2:多和团队成员沟通 62

3.7症状7:缺少感激心,心存感激让你受益匪浅 63

3.7.1临床表现 63

3.7.2治疗1:心存感激不等于低人一等 63

3.7.3治疗2:首先应该对你的领导心存感激 63

3.7.4真心换真心 65

3.8症状8:不知道什么是“团队合作” 65

3.8.1临床表现 65

3.8.2治疗1:分析在公司上班的3个目标 66

3.8.3治疗2:团队合作——就是团队主管的目标 67

3.9点评“心态” 67

第4章 换位思考,项目主管的招聘技巧 68

4.1招聘就像大海捞针 68

4.2技巧1:是否有独立完成项目的经验 69

4.2.1独立完成一个项目的经验是什么经验 69

4.2.2没有独立生存的能力不能有最佳的团队合作 70

4.2.3测试手段 71

4.2.4锻炼攻略:需要主动寻找独立工作的机会 75

4.3技巧2:是否有独立解决问题的能力 75

4.3.1见招拆招的能力 75

4.3.2程序员的韧性 76

4.3.3测试手段 76

4.3.4锻炼攻略:训练创意思维 77

4.4技巧3:评价程序员的思考方式 78

4.4.1一切皆程序 79

4.4.2找到规律 81

4.4.3锻炼攻略:抓住中心把复杂的事情变简单 82

4.5点评“换位思考” 84

第5章 程序员,保持你前进的步伐 85

5.1程序员前进的4个阶段 85

5.1.1第一个阶段:找到一个编程语言去入门 86

5.1.2第二个阶段:用这门语言去分析和推理 86

5.1.3第三个阶段:新知识新技术的积累 86

5.1.4第四个阶段:大道无形 87

5.2学习与积累 87

5.2.1找到好书,相当于找到一个好老师 88

5.2.2每本书都没有从头看到尾是不是等于不用功 91

5.2.3学会建立沉淀目录 92

第二篇 制胜法宝 96

第6章 Java程序员的7种武器 96

6.1武器1:编程IDE开发工具 96

6.1.1 Team Leader的嗜好 96

6.1.2什么功能是程序员最需要的 96

6.1.3下面这些IDE你都用得到 99

6.1.4点评“开发工具” 104

6.2武器2:数据库系统 105

6.2.1广告与市场的力量 105

6.2.2不要盲目选择数据库根据用途选择合适的数据库 105

6.2.3以下这些数据库绝不能仅仅是“眼熟” 106

6.2.4研究一下JDBC源程序 109

6.2.5不熟悉数据库就会“绕远” 120

6.2.6点评“真相” 125

6.3武器3:Web服务器软件 125

6.3.1 Web服务器是如何工作的 125

6.3.2支持JSP的Web服务器的原理 127

6.3.3常用的Web服务器 127

6.3.4研究一下Web服务器的源程序 128

6.3.5点评“深入研究” 132

6.4武器4:操作系统 132

6.4.1看看这个招聘启事 132

6.4.2 Java程序员为什么需要研究操作系统 133

6.4.3应该更关心操作系统的哪些方面 133

6.4.4哪些操作系统要重点关注 134

6.4.5点评Linux 140

6.5武器5:编程语言 140

6.5.1 Java程序员只会Java语言行吗 140

6.5.2各个编程语言的特长 143

6.5.3点评“第二门语言” 145

6.6武器6:辅助设计工具 146

6.6.1 UML图设计工具 146

6.6.2常用UML设计工具 146

6.6.3 UML要“灵活“地掌握 149

6.7武器7:版本控制工具 149

6.7.1工作原理 150

6.7.2常用版本控制工具 150

6.7.3融入团队的开发氛围 151

6.8点评“武器” 151

第7章 破除Java开发中的封建迷信 152

7.1迷信1:Java占内存到底大不大 152

7.1.1测试1让程序去裸奔 152

7.1.2测试2:针尖对麦芒 155

7.1.3让人不再“迷信”的测试结果 156

7.1.4先天与后天 156

7.2迷信2:Java和C到底谁快 157

7.2.1测试1:让程序转起来 157

7.2.2测试2:读取个大文件吧 159

7.2.3测试3:内存处理的速度 161

7.2.4测试结果分析 163

7.2.5也不要过于迷信C语言 163

7.2.6 Java语言与C语言之间的应用比较 164

7.3迷信3:Java就等于JSP吗 165

7.3.1一个面试的现象 165

7.3.2 JSP开发时间长了的误解 165

7.3.3 Java的纯真年代 166

7.3.4 Java绝对不等于JSP 166

7.3.5努力保持一个纯真的心态 167

7.3.6点评“纯真” 167

7.4迷信4:C/S与B/S相比一无是处 167

7.4.1 B/S是一个很好的创意 168

7.4.2 B/S程序本身也是一个C/S程序 168

7.4.3 C/S程序的优势——速度 169

7.4.4 C/S程序的应用领域 169

7.5迷信5:J2EE的开发必须用EJB 170

7.5.1 EJB真人真事 170

7.5.2什么是“服务集群”以及“企业级开发” 171

7.5.3把EJB掰开了揉碎了 172

7.5.4 EJB的最底层究竟是什么 173

7.5.5 EJB中所谓的“服务群集” 175

7.5.6这种部署难道是无懈可击 175

7.5.7 EJB活学活用,J2EE不是必须使用EJB 177

7.5.8“技术”不是神不要动不动就“崇拜” 178

7.6点评“迷信” 178

第8章 揭秘中大型应用系统 179

8.1何谓“中大型应用系统” 179

8.2无法学习与模拟 179

8.3资深程序员的“经验” 180

8.4为什么要熟悉系统的运行环境 180

8.5带你进机房里去看看硬件设备 181

8.5.1机房的基本情况 181

8.5.2 U的概念 183

8.5.3机房中的设备 183

8.5.4在机房里发现了什么 188

8.6安全与效率——永恒的主题 189

8.6.1绝对安全是不存在的 189

8.6.2 RAID 190

8.6.3负载均衡 191

8.6.4双机、集群的配置模式 193

8.6.5网络流量与速率 193

8.6.6带宽 194

8.7一个软硬件部署方案实例 194

8.8点评“经验” 195

第9章 为什么要学习用框架开发 196

9.1学习框架是因为它“火” 196

9.2使用框架开发的好处 196

9.2.1框架的目的是简化编程工作 197

9.2.2框架是一个应用程序的半成品 197

9.2.3框架的好处是代码重用 198

9.3框架不仅仅只有SSH 198

9.3.1 WebWork 198

9.3.2 EasyJWeb 199

9.3.3 Click 199

9.3.4 JBlooming 200

9.4用框架的思想去“自由思考” 201

9.5自己也可以试着做一个 201

9.5.1先看看不用框架怎么编写程序 201

9.5.2从应用程序中找到共性的东西 203

9.5.3试着做一个最简单的框架 204

9.5.4有了这个框架开发工作被简化 209

9.6点评“自由思考” 209

第三篇 达人策略 211

第10章 高手有多高,菜鸟有多菜 211

10.1 5年工作经验的“菜鸟” 211

10.2高手是怎样炼成的 212

10.2.1修炼1:Java悟道 212

10.2.2修炼2:关注程序的品质 213

10.2.3修炼3:“技术”与“技巧”都很重要 228

10.2.4修炼4:走入Java的底层程序开发 229

10.2.5修炼5:从Worker到Maker 245

10.3点评“高手有多高,菜鸟有多菜” 245

第11章 控制内存的功力 246

11.1别指望Java和内存无关 246

11.2容易被搞晕的——堆和栈 247

11.2.1堆——用new建立垃圾自动回收负责回收 247

11.2.2栈——存放基本数据类型,速度快 247

11.2.3何谓栈的“数据共享” 248

11.2.4实例化对象的两种方法 248

11.3内存控制心中有数 249

11.3.1两个读取内存信息函数 249

11.3.2开发Java程序内存看得见 249

11.3.3必须要介绍的虚拟机的参数-Xmx 250

11.4内存控制效率优化的启示 253

11.4.1启示1:String和StringBuffer的不同之处 253

11.4.2启示2:用-Xmx参数来提高内存可控制量 255

11.4.3启示3:二维数组比一维数组占用更多内存空间 256

11.4.4启示4:用HashMap提高内存查询速度 258

11.4.5启示5:用arrayCopy()提高数组截取速度 260

11.5内存垃圾回收问题 263

11.5.1什么是内存垃圾哪些内存符合垃圾的标准 263

11.5.2 JVM垃圾回收的相关知识 265

11.6点评“功力” 267

第12章 产品和项目是程序员永恒的主题 268

12.1项目和产品 268

12.1.1“产品”的定义 268

12.1.2“项目”的定义 268

12.1.3“产品”和“项目”的区别 269

12.2软件产品开发是“艺术” 270

12.2.1软件产品开发需要灵感 270

12.2.2程序作品是你的一个传世的艺术作品 271

12.2.3软件产品开发需要“前瞻性” 272

12.3软件项目开发是“军事行动” 274

12.3.1开发者就是这个程序的“三军统帅” 274

12.3.2“项目”开发需要“运筹帷幄” 275

12.3.3项目控制 276

12.3.4点评“军事行动” 278

第13章 非技术知识对工作的辅助 279

13.1辅助1:英语不需要专业,因为它只是工具 279

13.1.1英语与编程序无关 280

13.1.2用英语可以看一些英文文档 280

13.1.3掌握基本的工作交流时的英语词汇 280

13.2辅助2:Google不是万能的,但不会用万万不能 284

13.2.1在网页标题中搜索关键字:intitle 285

13.2.2在特定站点中搜索关键字:site 285

13.2.3在url链接中搜索关键字:inurl 286

13.2.4精确匹配搜索:双引号 287

13.2.5搜索结果中不希望含某特定查询词:减号 288

13.3辅助3:程序员的常用文档写作 289

13.3.1程序员在软件开发过程中需要提交的文档 289

13.3.2程序员在日常工作中需要提交的文档 291

13.4点评“非技术” 291

结束语 292

致谢: 293

读者来信选登: 294