荐书丨好玩有趣的编程知识就在《码农翻身》

本文推荐了《码农翻身》一书,作者将计算机元素编成故事演绎编程知识。全书分6章,涵盖计算机、Java、Web后端等多领域知识。稍有编程基础者读起来畅快。多位大咖推荐,认为能帮程序员夯实基础。此外还介绍了大数据技术大会等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上方“程序人生”,选择“置顶公众号”

第一时间关注程序猿(媛)身边的故事


用故事给技术加点料!

好玩又有趣的编程知识!

全网阅读量近1000万次的技术故事!


优秀的技术人员应该具有广阔的技术视野,同时拥有贯通的技术深度;不仅知道技术是什么,而且还懂得为什么是这样的;总是不断地抽象分离技术的本质与不变,持续地总结建立技术的体系和结构,唯此才能应对这个时代的技术焦虑——日新月异的技术更迭。


我们常读的书大概有两种:一种讲故事,另一种传知识。前者愉悦身心,后者保养头脑。今天推荐的这本《码农翻身》是融合。作者把计算机元素和行为用拟人手法编成一个个精彩纷呈的故事,绘声绘色且深入浅出地演绎晦涩枯燥的编程知识。不必说编程初学者可以津津有味地学习,连老手也能饶有兴致地查漏补缺。是还在学海中苦苦挣扎的程序员的福音!力荐!


豆瓣评分9.0


640?wx_fmt=png

 

看看读过此书的同学怎么说?


640?wx_fmt=png

640?wx_fmt=png


640?wx_fmt=png

 


编辑推荐

《码农翻身》用故事的方式讲解了软件编程的若干重要领域,侧重于基础性、原理性的知识。全书分为6章。

第1章讲述计算机的基础知识;

第2章侧重讲解Java的基础知识;

第3章偏重Web后端编程;

第4章讲解代码管理的本质;

第5章讲述了JavaScript的历史、Node.js的原理、程序的链接、命令式和声明式编程的区别,以及作者十多年来使用各种编程语言的感受;

第6章是作者的经验总结和心得体会,包括职场发展的注意事项、作为架构师的感想、写作的好处等。

这不是一本编程的入门书,对编程一窍不通的“纯小白”可能看不明白,可能会失望。但稍有编程基础的读者读起来会非常畅快,读后会有一种“原来如此”的感觉。


作者简介

刘欣(@码农翻身):

15年的软件行业从业经验,前IBM系统架构师,擅长企业应用架构和设计,领导过多个企业级应用架构设计和开发工作。


640?wx_fmt=png


 大咖评论

很高兴看到刘欣的第一本书,这本书主要讲的是基础知识。这是他在阅读了大量书籍再加上自己长期实战后的提炼总结。很惊喜地发现刘欣的文笔相当好,晦涩的知识被融入一个个故事中深入浅出地讲出来,读下来居然一点也不累。

希望刘欣的书能够帮助更多的程序员,尤其是新入职场的程序员,夯实基础知识,喜欢上基础知识,逐渐成长为公司里的明星员工。

——常红平,IBM软件商务系统全球负责人


本书引经据典、幽默风趣,举重若轻地把深奥的道理讲出来、讲明白、讲透彻,言之有物,深入浅出,是还在学海中苦苦挣扎的程序员的福音。

——孤尽,阿里巴巴代码中心负责人


读这本书就是学习这样一位优秀的架构师是如何思考、如何抽象、如何成长的,从操作系统、Java语言到Web技术,每个主题都深入浅出。力荐!

——胡浩,京东Y事业部供应链及技术总监


我还没有问过刘欣,码农“翻身”后面是省略了“做主人”吗?刘欣凭着对计算机和软件无比的挚爱,用三年的微信公众号文章积淀出这本书,他是我最佩服的、最接地气的计算机专家和导师。书中用故事的形式写计算机原理和编程,更是用第一人称、拟人化手法写了线程、进程……没有绝对的真爱和深刻的理解,何以生动地描绘出操作系统老大和CPU阿甘之间的故事?我建议中学和大学引入这本书作为教辅材料,让学生在玩中学,喜欢上这些故事,喜欢上码农这个职业。

——金易,Agilean咨询顾问


640?wx_fmt=png

 

640?wx_fmt=png

扫码即刻下单

小福利

在本文下方留言,说说你想获得此书的原因是什么?有机会获奖哦。(注意:理由不少于30字才能被选入精选参与抽奖哦~)


我们会从精选留言用户中,按照其留言点赞数,抽取排名在第3、6、9名的3位幸运者,送出纸书一本。


开奖时间:12月5日当天(以小编当日看到时的名次顺序为准,不接受抱怨,谢谢~)


- The End -


2018 中国大数据技术大会

BDTC 2018


BDTC 2018中国大数据技术大会携主题“大数据新应用”再度强势来袭。本次大会由华东师范大学副校长、教授周傲英,百度商业智能实验室主任熊辉,阿里巴巴副总裁李飞飞三位会议主席对大会内容把关,多位两院院士参与指导,由最了解行业痛点的一线从业者为同行打造。


扫描下方二维码或点击【阅读原文】快速购票。现在购票还有机会获得大数据图书一本(中国科学院院士梅宏主编的《大数据导论》或华中科技大学教授金海主编的《大数据处理》),数量有限!


640?wx_fmt=jpeg


推荐阅读:

640?wx_fmt=gif

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!");
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!");
Response.Write("点个赞吧");
alert(’点个赞吧’)


好的,以下是一个简单的左侧菜单点击切换右侧内容的示例代码: HTML 代码: ``` <div class="container"> <nav> <ul> <li><a href="#section1">Section 1</a></li> <li><a href="#section2">Section 2</a></li> <li><a href="#section3">Section 3</a></li> </ul> </nav> <main> <section id="section1"> <h2>Section 1</h2> <p>Content for section 1 goes here.</p> </section> <section id="section2"> <h2>Section 2</h2> <p>Content for section 2 goes here.</p> </section> <section id="section3"> <h2>Section 3</h2> <p>Content for section 3 goes here.</p> </section> </main> </div> ``` CSS 代码: ``` .container { display: flex; flex-direction: row; height: 100%; } nav { background-color: #f2f2f2; width: 20%; } nav ul { list-style: none; padding: 0; } nav li { margin: 0; } nav a { display: block; padding: 0.5rem; text-decoration: none; color: #333; } nav a:hover { background-color: #333; color: #fff; } main { flex: 1; padding: 1rem; } section { padding: 1rem; background-color: #fff; border: 1px solid #ccc; margin-bottom: 1rem; } section h2 { margin-top: 0; } ``` JavaScript 代码: ``` const sections = document.querySelectorAll("section"); document.querySelectorAll("nav a").forEach((item) => { item.addEventListener("click", (event) => { event.preventDefault(); const id = item.getAttribute("href").slice(1); sections.forEach((section) => { section.style.display = section.getAttribute("id") === id ? "block" : "none"; }); document.querySelectorAll("nav a").forEach((link) => { link.classList.remove("active"); }); item.classList.add("active"); }); }); ``` 代码解释: 这段代码中,我们首先使用了 flex 布局来创建一个左右两个部分的容器。左侧部分是一个导航菜单,右侧部分是一个内容区域。导航菜单使用了 HTML 的 ul 和 li 标签来创建,然后使用 CSS 设置了样式。右侧内容区域则使用了 HTML 的 section 标签来创建,每个 section 标签分别对应了导航菜单中的一个菜单项。 JavaScript 代码中,我们首先使用了 document.querySelectorAll() 方法来获取所有的 section 标签,然后使用 forEach() 方法和 addEventListener() 方法来为导航菜单中的每个菜单项添加点击事件。当用户点击某个菜单项时,我们首先使用 event.preventDefault() 方法来防止默认的页面跳转行为。然后,我们获取被点击菜单项的 id 属性,然后遍历所有的 section 标签,根据 id 属性来判断哪个 section 要显示,哪个 section 要隐藏。最后,我们还添加了一个 active 类来突出显示当前被点击的菜单项。 以上就是一个简单的左侧菜单点击切换右侧内容的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值