版 次:1页 数:字 数:印刷时间:2018年06月01日开 本:16开纸 张:胶版纸包 装:平装-胶订是否套装:否国际标准书号ISBN:9787121341175
所属分类:
图书>计算机/网络>程序设计>其他
快速直达
产品特色
编辑推荐
内容简介
作者简介
目 录
前 言
媒体评论
试读章节
下载免费读书
产品特色
编辑推荐
√ 书中把计算机元素和行为用拟人手法编成一个个精彩纷呈的故事,绘声绘色且深入浅出地演绎晦涩枯燥的编程知识。
√ 编程初学者可以津津有味地学习,老手也能饶有兴致地查漏补缺。
√ 学习的架构师是如何思考、如何抽象、如何成长的,从操作系统、Java语言到Web技术,每个主题都深入浅出。
内容简介
《码农翻身》用故事的方式讲解了软件编程的若干重要领域,侧重于基础性、原理性的知识。
《码农翻身》分为6章。
第1章讲述计算机的基础知识;
第2章侧重讲解Java的基础知识;
第3章偏重Web后端编程;
第4章讲解代码管理的本质;
第5章讲述了的历史、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
BC的诞生 108
谈判 108
统一接口 110
面向接口编程 111
简单工厂 112
数据驱动 114
工厂方法 115
Java帝国之宫廷内斗 119
BC大臣 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
一个故事讲完S 199
总有一种被偷窥的感觉 199
RSA:非对称加密 200
非对称加密 对称加密 202
中间人劫持 202
你到底是谁 203
S 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
Server:一个差生的逆袭 252
Server 1.0 252
Server 2.0:多进程 253
Server 3.0:select模型 254
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
:一个草根的逆袭 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
显示部分信息
前 言
从来没想到自己也能出一本书。
作为一名工作了十五年的老程序员,我深知编程行业的不容易,不仅需要应对高强度的工作,还需要学习大量的技术知识,而且不像医生、律师这些知识相对稳定的行业越老越吃香,软件行业的技术每隔一段时间就会更新换代,让你清零,逼着你从头再来。所谓“活到老,学到老”,用到程序员身上再合适不过了。
在不断学习的过程中,我“痛恨”那些采用bottom-up方式来讲解技术的资料和文章,一上来就是技术细节、安装步骤、配置方法,让初学者晕头转向、不知所云,看完了以后也不知道为什么有这个东西、解决了什么问题、它有什么来龙去脉。换句话说,这些资料和文章习惯于讲解How,而不是Why。但是在我看来,Why有时候比How更重要。
有时候在公司听技术讲座,看到上面的人眉飞色舞,下面的人却一脸茫然,我总在想:为什么不举一些生动有趣的例子呢?如果是我在讲,那我怎么才能通俗易懂地把这个知识点讲解出来呢?我该怎么去类比呢?我该从哪个角度切入呢?
这种潜移默化的思考多了以后,我发现自己也慢慢地养成了用通俗易懂的方式讲解技术的习惯。
我工作了这么多年,踩了这么多坑,能不能把这些经验写下来,让后来者少走一些弯路呢?
显示全部信息
媒体评论
很高兴看到刘欣的处女作,这本书主要讲的是基础知识。这是他在阅读了大量书籍再加上自己长期实战后的提炼总结。很惊喜地发现刘欣的文笔相当好,晦涩的知识被融入一个个故事中深入浅出地讲出来,读下来居然一点也不累。
希望刘欣的书能够帮助更多的程序员,尤其是新入职场的程序员,夯实基础知识,喜欢上基础知识,逐渐成长为公司里的明星员工。
——常红平,IBM软件商务系统全球负责人
本书引经据典、幽默风趣,举重若轻地把深奥的道理讲出来、讲明白、讲透彻,言之有物,深入浅出,是还在学海中苦苦挣扎的程序员的福音。
——孤尽,阿里巴巴代码中心负责人
这本书给我带来了很多惊喜,我原本以为会是一本偏向理论的技术书籍,没想到它充满了故事性和趣味性。刘欣老师的写作风格非常独特,他擅长用生动形象的比喻和生活中的例子来解释复杂的编程概念。比如,他讲到“延迟队列”时,不是直接给出实现细节,而是描述了一个“服务员记点餐单”的比喻,顾客点完餐,服务员会先把订单放在一个“待处理”的区域,等到有空时再交给厨师。这个比喻一下子就把延迟队列的作用和原理说清楚了。又比如,在讲到“消息队列”时,他用“信箱”和“邮递员”来形容消息的发送和接收过程,清晰地展现了异步通信的优势。这种“润物细无声”的教学方式,让我觉得学习编程知识不再是一件枯燥乏味的事情,而是变成了一种有趣的探索过程。而且,书中提到的很多案例,都来自于真实的互联网公司,比如用户增长、高并发处理、系统设计等,这些都是我们在实际工作中经常会遇到的问题。这本书不仅教会了我技术,更让我明白了如何用更加有趣和易于理解的方式去思考和解决技术问题。
评分我一直认为,学习编程不仅仅是学习语法和算法,更重要的是理解编程背后的思想和哲学。“码农翻身”这本书,恰恰在这方面给了我很多启发。刘欣老师通过一个个生动的故事,将抽象的技术概念变得鲜活起来。他讲到“CAP理论”时,不是直接给出公式,而是讲述了一个关于“三个海盗分赃”的故事,生动地展现了在分布式系统中“一致性”、“可用性”和“分区容错性”之间的权衡。这种故事化的讲解方式,让我对这些重要的分布式系统理论有了更深刻的理解,并且能够将其应用到实际的项目中。此外,书中对于“如何写出高质量的代码”也有独到的见解,他强调了代码的可读性、可维护性和可测试性的重要性,并分享了一些实用的方法和技巧。读这本书,我不仅学到了很多实用的技术知识,更重要的是,我开始重新审视自己的编程方式,思考如何写出更优雅、更健壮的代码。这本书让我觉得,技术也可以充满人文关怀,编程也可以变得更加有趣和有意义。
评分作为一名有几年开发经验的程序员,我一直希望能找到一本能够帮助我提升工程能力、拓宽技术视野的书籍。“码农翻身”这本书,绝对超出了我的预期。刘欣老师在书中分享的经验,特别是在系统设计和架构方面,对我来说非常有价值。他深入浅出地讲解了微服务架构的优缺点,以及在实际落地过程中可能遇到的挑战。我印象特别深刻的是他对“分布式事务”的讲解,他没有停留在理论层面,而是结合实际场景,分析了不同解决方案的适用性,比如两阶段提交、TCC等等,并且给出了在实际开发中需要注意的一些坑。书中关于“性能优化”的章节也写得非常好,他不是简单地罗列一些优化技巧,而是从系统设计的角度,分析了性能瓶颈可能出现的原因,并给出了相应的解决方案。阅读这本书,感觉就像是在和一位资深的架构师进行一对一的交流,学到的不仅仅是技术知识,更是一种解决复杂工程问题的思维方式。而且,这本书的语言风格非常朴实,没有过多的技术术语堆砌,读起来让人感到很舒服。
评分读完这本书,我最大的感受就是“干货满满”和“接地气”。刘欣老师在书中分享了大量他在实际项目开发中的经验,这些经验非常宝贵,而且不是那种陈词滥调,而是经过时间检验、实战磨砺出来的真知灼见。我印象最深刻的是他关于“系统稳定性”的章节,他不是泛泛而谈,而是具体分析了哪些因素容易导致系统崩溃,以及如何通过熔断、降级、限流等手段来应对。他举的例子都很贴近实际,比如在秒杀场景下,如何设计才能扛住巨大的流量冲击,避免雪崩效应。他还分享了自己团队在处理复杂bug时的一些心得体会,比如如何有效地进行故障排查,如何写出易于维护的代码。这本书的逻辑性也非常强,从基础的概念讲起,逐步深入到更复杂的架构设计,每个章节之间都有很好的衔接。虽然书中包含了很多技术术语,但刘欣老师的讲解都很清晰,不会让人感到晦涩难懂。而且,他也在书中反复强调“技术是为了解决问题而存在”的理念,这让我觉得很有启发。读这本书,我感觉就像是在参加一个经验丰富的工程师的私教课,学到的不仅是技术知识,更是解决问题的思路和工程思维。
评分这本书确实让我眼前一亮,原本以为“码农翻身”这种名字可能有点卖弄情怀,但读下去才发现,刘欣老师是真的有货!我特别喜欢他讲故事的方式,把一些抽象的技术概念,比如微服务拆分、分布式事务,甚至是CAP理论,都用非常生动形象的比喻串联起来。我记得有一次讲到CAP理论,他不是直接给出公式和定义,而是讲了一个关于“海盗分宝藏”的故事,每个海盗都想快速拿到自己那份(一致性),但海上的风浪(网络分区)随时可能打断交易,而他们的船(服务器)载重有限,一次只能运走一部分宝藏(可用性)。通过这个故事,我一下子就理解了CAP理论的精髓,那种豁然开朗的感觉,比死记硬背定义要深刻太多。而且,书中提到的很多场景,都像是从我们日常开发中提炼出来的,比如如何处理“屎山”代码,如何构建高可用系统,甚至是作为一个新人如何快速成长。他不是那种高高在上地讲理论的大牛,更像是我们身边那个经验丰富、乐于分享的师兄。虽然我不是计算机专业的科班出身,但这本书的语言风格非常亲切,一点都没有技术书的枯燥感,反而充满了幽默感,读起来让人忍俊不禁。特别推荐给那些觉得编程枯燥,或者对技术概念感到困惑的开发者,这本书绝对能让你重新燃起对编程的热情。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有