内容简介 · · · · · ·
《码农翻身》用故事的方式讲解了软件编程的若干重要领域,侧重于基础性、原理性的知识。
《码农翻身》分为6章。第1章讲述计算机的基础知识;第2章侧重讲解Java的基础知识;第3章偏重Web后端编程;第4章讲解代码管理的本质;第5章讲述了JavaScript的历史、Node.js的原理、程序的链接、命令式和声明式编程的区别,以及作者十多年来使用各种编程语言的感受;第6章是作者的经验总结和心得体会,包括职场发展的注意事项、作为架构师的感想、写作的好处等。
《码农翻身》不是一本编程的入门书,对编程一窍不通的“纯小白”可能看不明白,可能会失望。但稍有编程基础的读者读起来会非常畅快,读后会有一种“原来如此”的感觉。
作者简介 · · · · · ·
刘欣(@码农翻身):
15年的软件行业从业经验,前IBM系统架构师,擅长企业应用架构和设计,领导过多个企业级应用架构设计和开发工作。
目录 · · · · · ·
第1章 计算机的世界你不懂 1
我是一个线程 1
初生牛犊 1
渐入佳境 4
虎口脱险 5
江湖再见 8
TCP/IP之大明内阁 9
TCP/IP之大明邮差 12
CPU阿甘 17
启动 17
运行 18
新装备:缓存 19
自我提升:流水线 20
我是一个进程 21
批处理系统 22
多道程序 22
地址重定位 24
分时系统 26
分块装入内存 27
虚拟内存:分页 28
分段+分页 30
程序的装载 31
线程 35
我是一块硬盘 36
内部结构 37
文件 38
文件的存放 39
管理空闲块 44
文件系统 45
我是一个键盘 46
二等公民 46
总线和端口 47
轮询(程序式I/O) 48
中断 49
DMA 50
数据库的奇妙之旅 51
无纸化办公 51
数据的冗余和不一致 52
李氏查询 52
并发访问 54
原子性问题 56
安全 58
搞清楚Socket 59
从1加到100:一道简单的数学题挑战一下你的大脑 64
CPU和内存 64
从1加到100 65
热身 65
正式出发 65
一个翻译家族的发家史 68
机器语言 68
汇编语言 69
高级语言 70
编程世界的那把锁 74
共享变量惹的祸 74
争抢吧,线程 75
改进 76
信号量 77
绕不开的加法器 81
递归那点事儿 85
第2章 Java帝国 91
Java:一个帝国的诞生 91
C语言帝国的统治 91
反抗 92
一鸣惊人 93
开拓疆土 93
帝国的诞生 94
我是一个Java Class 96
陌生警察 96
刺探信息 97
初识虚拟机 98
快乐假期 102
真相大白 103
持久化:Java帝国反击战 104
断电的威胁 104
数据库联合酋长国 105
表面风光的EJB 106
轻量级O/R Mapping框架 106
帝国的反击 107
JDBC的诞生 108
谈判 108
统一接口 110
面向接口编程 111
简单工厂 112
数据驱动 114
工厂方法 115
Java帝国之宫廷内斗 119
JDBC大臣 119
密谋 120
两阶段提交 121
JTA 123
塞翁失马,焉知非福 124
基本可用 125
走漏风声 127
宫廷激辩 128
JSP:一个装配工的没落 131
黑暗岁月 131
服务器端动态页面 132
标签库 134
模板引擎 134
草根搅局 135
Java 帝国之消息队列 137
张家村的历史 137
拆分 138
新问题 139
消息队列 139
互不兼容的MQ 140
消息队列接口设计 141
配置和代码的分离 143
再次抽象 144
Java帝国之动态代理 147
深夜奏对 147
明察暗访 149
Java 动态代理 150
Java注解是怎么成功上位的 153
XML大臣 153
安翰林献计 154
早朝争斗 157
Java帝国之泛型 159
新王登基 159
C++使者 159
泛型实现 162
泛型方法 163
泛型和继承 164
一个著名的日志系统是怎么设计出来的 166
前言 166
张家村 167
小张的设计 167
正交性 170
Log4j 171
尾声 171
序列化:一个老家伙的咸鱼翻身 172
寒冬的蛰伏 172
XML和JSON的挑战 173
新协议的崛起 175
加锁还是不加锁,这是一个问题 176
互斥锁 176
要不要加锁 177
CAS的扩展 179
Spring 的本质 182
问题来源 183
设计模式:模板方法 184
设计模式:装饰者 186
AOP 187
实现AOP 188
对象的创建 189
IoC与DI 191
第3章 浪潮之巅的Web 192
Web的起源 192
两个程序的爱情故事 195
好感 195
分离 196
网络 197
Web 198
一个故事讲完HTTPS 199
总有一种被偷窥的感觉 199
RSA:非对称加密 200
非对称加密+对称加密 202
中间人劫持 202
你到底是谁 203
HTTPS 206
机房夜话 207
第一夜 207
第二夜 209
第三夜 211
从密码到token,一个有关授权的故事 215
我把密码献给你 215
token 216
授权码 + token 218
后记 220
后端风云 220
数据库老头儿 220
危机 221
党委扩大会议 221
分家 223
Redis 224
余数算法 227
一致性Hash算法 229
Hash槽 (Hash Slot) 233
故障转移 235
高可用的Nginx 237
高可用的Tomcat 238
数据库的读写分离 240
我是一个函数 243
从SOA到微服务 246
什么是框架 249
HTTP Server:一个差生的逆袭 252
HTTP Server 1.0 252
HTTP Server 2.0:多进程 253
HTTP Server 3.0:select模型 254
HTTP Server 4.0:epoll模型 255
第4章 代码管理那些事儿 258
版本管理简史 258
“人肉” 版本管理 258
锁定文件:避免互相覆盖 259
允许冲突:退一步海阔天空 260
分支:多版本并行 261
分布式管理:给程序员放权 262
程序员也爱社交 264
Build的演进之路 265
手工Build的烦恼 265
自动化Build 267
Java 与 XML 268
消除重复 270
烂代码传奇 275
敏捷下的单元测试 277
敏捷运动 277
困惑 278
讨论 279
一年以后 280
再见!Bug 281
第5章 我的编程语言简史 284
JavaScript :一个草根的逆袭 284
出世 284
成长 286
第一桶金 288
发明JSON 289
人生巅峰 291
Node.js:我只需要一个店小二 292
C老头儿和Java小子的硬盘夜话 295
编程语言的“爱恨情仇” 300
让人怀疑的C 语言 300
被忘却的 VB & Visual FoxPro 301
蹂躏我的C++ 302
赖以谋生的Java 303
优雅的Ruby 304
命令式编程 VS 声明式编程 306
一则小故事 306
命令式编程 306
声明式编程 307
第6章 老司机的精进 309
凡事必先骑上虎背,和性格内向的程序员聊几句 309
码农需要知道的“潜规则” 311
上帝的规矩:局部性原理 311
坐飞机的怎么和坐驴车的打交道:缓存 311
抛弃细节:抽象 312
我只想和邻居打交道:分层 312
我怕等不及:异步调用 313
大事化小,小事化了:分而治之 314
15年编程生涯,一名架构师的总结 314
好奇心 315
养成计算机的思维方式 315
扎实基础,融会贯通 317
要透彻地理解一门技术的本质 317
能写漂亮的代码 318
抽象的能力 319
技术领导力 319
对自己狠一点,开始写作吧 320
学习编程的四兄弟 322
摇摆不定的老大 322
“小仓鼠”老二 322
不看书的老三 323
半途而废的老四 323
· · · · · · (收起)
我是一个线程 1
初生牛犊 1
渐入佳境 4
虎口脱险 5
江湖再见 8
TCP/IP之大明内阁 9
TCP/IP之大明邮差 12
CPU阿甘 17
启动 17
运行 18
新装备:缓存 19
自我提升:流水线 20
我是一个进程 21
批处理系统 22
多道程序 22
地址重定位 24
分时系统 26
分块装入内存 27
虚拟内存:分页 28
分段+分页 30
程序的装载 31
线程 35
我是一块硬盘 36
内部结构 37
文件 38
文件的存放 39
管理空闲块 44
文件系统 45
我是一个键盘 46
二等公民 46
总线和端口 47
轮询(程序式I/O) 48
中断 49
DMA 50
数据库的奇妙之旅 51
无纸化办公 51
数据的冗余和不一致 52
李氏查询 52
并发访问 54
原子性问题 56
安全 58
搞清楚Socket 59
从1加到100:一道简单的数学题挑战一下你的大脑 64
CPU和内存 64
从1加到100 65
热身 65
正式出发 65
一个翻译家族的发家史 68
机器语言 68
汇编语言 69
高级语言 70
编程世界的那把锁 74
共享变量惹的祸 74
争抢吧,线程 75
改进 76
信号量 77
绕不开的加法器 81
递归那点事儿 85
第2章 Java帝国 91
Java:一个帝国的诞生 91
C语言帝国的统治 91
反抗 92
一鸣惊人 93
开拓疆土 93
帝国的诞生 94
我是一个Java Class 96
陌生警察 96
刺探信息 97
初识虚拟机 98
快乐假期 102
真相大白 103
持久化:Java帝国反击战 104
断电的威胁 104
数据库联合酋长国 105
表面风光的EJB 106
轻量级O/R Mapping框架 106
帝国的反击 107
JDBC的诞生 108
谈判 108
统一接口 110
面向接口编程 111
简单工厂 112
数据驱动 114
工厂方法 115
Java帝国之宫廷内斗 119
JDBC大臣 119
密谋 120
两阶段提交 121
JTA 123
塞翁失马,焉知非福 124
基本可用 125
走漏风声 127
宫廷激辩 128
JSP:一个装配工的没落 131
黑暗岁月 131
服务器端动态页面 132
标签库 134
模板引擎 134
草根搅局 135
Java 帝国之消息队列 137
张家村的历史 137
拆分 138
新问题 139
消息队列 139
互不兼容的MQ 140
消息队列接口设计 141
配置和代码的分离 143
再次抽象 144
Java帝国之动态代理 147
深夜奏对 147
明察暗访 149
Java 动态代理 150
Java注解是怎么成功上位的 153
XML大臣 153
安翰林献计 154
早朝争斗 157
Java帝国之泛型 159
新王登基 159
C++使者 159
泛型实现 162
泛型方法 163
泛型和继承 164
一个著名的日志系统是怎么设计出来的 166
前言 166
张家村 167
小张的设计 167
正交性 170
Log4j 171
尾声 171
序列化:一个老家伙的咸鱼翻身 172
寒冬的蛰伏 172
XML和JSON的挑战 173
新协议的崛起 175
加锁还是不加锁,这是一个问题 176
互斥锁 176
要不要加锁 177
CAS的扩展 179
Spring 的本质 182
问题来源 183
设计模式:模板方法 184
设计模式:装饰者 186
AOP 187
实现AOP 188
对象的创建 189
IoC与DI 191
第3章 浪潮之巅的Web 192
Web的起源 192
两个程序的爱情故事 195
好感 195
分离 196
网络 197
Web 198
一个故事讲完HTTPS 199
总有一种被偷窥的感觉 199
RSA:非对称加密 200
非对称加密+对称加密 202
中间人劫持 202
你到底是谁 203
HTTPS 206
机房夜话 207
第一夜 207
第二夜 209
第三夜 211
从密码到token,一个有关授权的故事 215
我把密码献给你 215
token 216
授权码 + token 218
后记 220
后端风云 220
数据库老头儿 220
危机 221
党委扩大会议 221
分家 223
Redis 224
余数算法 227
一致性Hash算法 229
Hash槽 (Hash Slot) 233
故障转移 235
高可用的Nginx 237
高可用的Tomcat 238
数据库的读写分离 240
我是一个函数 243
从SOA到微服务 246
什么是框架 249
HTTP Server:一个差生的逆袭 252
HTTP Server 1.0 252
HTTP Server 2.0:多进程 253
HTTP Server 3.0:select模型 254
HTTP Server 4.0:epoll模型 255
第4章 代码管理那些事儿 258
版本管理简史 258
“人肉” 版本管理 258
锁定文件:避免互相覆盖 259
允许冲突:退一步海阔天空 260
分支:多版本并行 261
分布式管理:给程序员放权 262
程序员也爱社交 264
Build的演进之路 265
手工Build的烦恼 265
自动化Build 267
Java 与 XML 268
消除重复 270
烂代码传奇 275
敏捷下的单元测试 277
敏捷运动 277
困惑 278
讨论 279
一年以后 280
再见!Bug 281
第5章 我的编程语言简史 284
JavaScript :一个草根的逆袭 284
出世 284
成长 286
第一桶金 288
发明JSON 289
人生巅峰 291
Node.js:我只需要一个店小二 292
C老头儿和Java小子的硬盘夜话 295
编程语言的“爱恨情仇” 300
让人怀疑的C 语言 300
被忘却的 VB & Visual FoxPro 301
蹂躏我的C++ 302
赖以谋生的Java 303
优雅的Ruby 304
命令式编程 VS 声明式编程 306
一则小故事 306
命令式编程 306
声明式编程 307
第6章 老司机的精进 309
凡事必先骑上虎背,和性格内向的程序员聊几句 309
码农需要知道的“潜规则” 311
上帝的规矩:局部性原理 311
坐飞机的怎么和坐驴车的打交道:缓存 311
抛弃细节:抽象 312
我只想和邻居打交道:分层 312
我怕等不及:异步调用 313
大事化小,小事化了:分而治之 314
15年编程生涯,一名架构师的总结 314
好奇心 315
养成计算机的思维方式 315
扎实基础,融会贯通 317
要透彻地理解一门技术的本质 317
能写漂亮的代码 318
抽象的能力 319
技术领导力 319
对自己狠一点,开始写作吧 320
学习编程的四兄弟 322
摇摆不定的老大 322
“小仓鼠”老二 322
不看书的老三 323
半途而废的老四 323
· · · · · · (收起)
喜欢读"码农翻身"的人也喜欢的电子书 · · · · · ·
支持 Web、iPhone、iPad、Android 阅读器
喜欢读"码农翻身"的人也喜欢 · · · · · ·
- 程序是怎样跑起来的 8.1
- Spring实战(第4版) 8.1
- 数据密集型应用系统设计 9.7
- 图解Java多线程设计模式 9.0
- 代码之髓 7.9
- 代码整洁之道 8.6
- Java 8实战 9.0
- Go专家编程 8.8
- 算法(第4版) 9.4
- 七周七语言(卷2) 7.8
码农翻身的书评 · · · · · · ( 全部 17 条 )
> 更多书评 17篇
论坛 · · · · · ·
在这本书的论坛里发言以下书单推荐 · · · · · · ( 全部 )
- 工作后购书目录 (张小国)
- 阅读即是生活 (Azeril)
- kindle 2 (甜賽)
- 幽暗之境:编程与黑客序列 (Azeril)
- 计算机 (贴面无须华丽)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于码农翻身的评论:
feed: rss 2.0
21 有用 务观在阿里 2018-12-02 15:51:59
很一般的书。。为啥会评分那么高
1 有用 raindrop 2018-07-16 14:25:27
有的地方稍简,再深入点就好了。
0 有用 康康 2021-12-08 15:45:57
微信公众号文章集锦,都不深入,但是比较通俗。但是套用各种故事来解释技术问题,感觉有点低俗。
1 有用 封辰 2019-11-16 19:08:07
用小故事的方式讲述计算机,软件开发,代码的一些事。刚好最近在徘徊语言,知乎上找c++话题,被动的了解了java,从这本书上再次了解了一下,对于c/c++,python,java多语言有了更多的了解。 现在手头上做的事情比较杂,希望后面自己能整理好技能,真正的把语言当作工具,去做自己喜欢做的事:图形学、游戏、数据分析、服务器等。还是当年读书少,无奈ing.
0 有用 土 包 子 2021-11-03 20:31:12
Java的部分没看,别的地方都写得挺好的,轻松读物。
0 有用 Robert Yuan 2024-10-18 20:07:04 上海
码农翻身1,很有趣,激情满满的全称看完,这本书重点告诉你技术的how,why,当然也会有部分what,着重how和why让你对很多技术都有个很感官的认识,原来它就是这样,尤其是对一些当下流行的技术和现象,进行抽丝剥茧的从0到1的深入浅出的分析说明,还是以故事的形式,很不错。当然缺点也是有的,类似一篇篇公众号拼凑起来,碎片化比较严重,还是作者在最后章节抨击的哈哈。
0 有用 被制作时长两年 2024-08-08 15:22:35 四川
好书 作者的思路比技术重要
0 有用 不出名藝術家 2024-08-02 19:10:44 广东
如果是说对于产品经理而言,我认为算不得好书。
0 有用 Hu# 2024-07-29 16:39:50 广东
补
0 有用 吃西瓜不吐籽 2024-07-09 23:16:45 上海
看完了,整体挺好