老生常谈!程序员为什么要阅读源代码?

news/2024/10/6 10:29:50

大家好,我是码农先森。

阅读源码这是一个老生常谈的话题了,但又是很多人想做又没有付出行动的事情。前段时间我研究了 Swoole 的源代码,并且输出了系列的源码分析文章「感兴趣的朋友可以翻阅以前的文章」。虽然这个过程很枯燥和艰难,但到最后有种苦尽甘来的感觉,因为突破了自己之前一直想做又不敢做的一件事情。可能有很多人会说了,平常的工作中又用不到,为什么要去学习呢?如果你发出了这样的疑问,那么你大概率是初入职场的小白,或者是一年经验用十年的资深程序员,这里所说的「资深」要打双引号了。

面试

面试造航母,入职拧螺丝。相信大家对这句话的精髓都深有体会,面试期间面试的问题都似乎要求面试者具备上能捅破天,下能钻地球的能力,既要上得了厅堂,又要下得了厨房。站在用人单位的角度来看「小孩子才做选择题,成年人全都要」。那为什么会出现这种现象呢?还记得要几年前互联网如火如荼的时候,编程培训行业如雨后春笋般的孵化出一批速成程序员,大量出现在人才市场,仅仅靠背几套面试题就能获得不错的薪水。

如今互联网行业人才市场饱和,直接加剧了程序员之间的内部竞争。想象一下如果面试官手里握着好几份候选者的简历,然而偏偏你理解底层源码,那面试官会向谁发放 Offer 呢?答案显而易见,这就是阅读源码在面试中的意义,它让你形成了差异化的竞争,在这个过程中能够脱颖而出。

职业

作为一名职业的程序员,想要在自己的领域能够获得稳定且长足的发展,阅读源码是一道必须跨过去的坎。初入职场的前三年基本上都是参与常规的业务需求开发,大多数都处于增删改查「俗称CRUD粘贴复制」的阶段。三年后会尝试组件封装、框架脚手架的搭建「也就是大家常说的造轮子」,并且时不时的指点下初级程序员,解决一些项目层面的问题。到达第五年的这个时间点,这是一个职业生涯的转折点。

具备这个阶段经验的程序员,对于绝大多数的需求开发都可以信手拈来轻松应对,如果想要谋求更高的技术造诣,就要从组件、框架,乃至语言实现层面的源代码做为着手点来进行提升。职业的发展都是一个不断攀升地过程,类似于游戏中的升级打怪,一关关的突破「关关难过,关关过」,只有突破了阅读源代码这一关,才能让自己的职业得到更好、更顺利的发展。

兴趣

大家常说:“如果把兴趣变成了职业,那将是一种灾难”。如果反过来呢?职业成为了兴趣,那是不是意味着职业上会获得更大成功?这个问题我还无法回答,因为我还没有成功。但这个观点并不妨碍有些人把阅读源码作为一种兴趣爱好,如果这样做能够驱动阅读源码这件事情得以坚持下去,同时满足了自己的兴趣,又能从阅读源码中获得知识,岂不是两全其美。

说实话阅读源码的确是一件很枯燥乏味的事,最近我在阅读 Swoole 源代码的过程中就深有感触,期间也有看不下去的时候,但是心里总是默念「这是自己的兴趣」这才让我坚持下来。虽说这不确信阅读源码是不是我的兴趣,但还是让我用兴趣的意念把这件事给完成了,通过阅读源码让我明白了「兴趣」的伟大。

结语

对于阅读源码这个老生常谈的话题,首先「面试」带来的是短期价值,它让我们在面试的过程中形成差异化的竞争,从而让我们脱颖而出。其次「职业」带来的是长期价值,它让我们在自己的领域能够获得稳定且长足的发展。最后「兴趣」带来的是一种信念,它让我们在困难面前能够有坚持下去的勇气和动力。总而言之,阅读源码是一件利大于弊的事情,希望大家能持之以恒的对待,坚持做具有长期价值且正确的事情。

推荐

  • 深入理解 Swoole 的底层加载原理
  • Swoole 源码分析之 epoll 多路复用模块
  • Swoole 源码分析之 TCP Server 模块
  • Swoole 源码分析之 Http Server 模块

欢迎关注、分享、点赞、收藏、在看,我是码农先森。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/43056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

新增汇率无法保存,提示存在生效期间重叠的记录

金蝶提示信息有误,程序中考虑了原币和目标币相反的情况,如下图。

零一科技Yi-VL 6B视觉大模型环境搭建推理

​引子 最近看新闻博客说零一科技的Yi-VL-Plus视觉大模型效果很不错,那就想着尝尝鲜。这是第四篇关于视觉大模型的博客。之前有写过一篇零一科技的chat大模型零一科技Yi-34B Chat大模型环境搭建&推理_python部署大模型yi-34b-chat-CSDN博客,感兴趣的童鞋可以移步。我个人…

封装线程池相关函数

封装线程池相关函数thread_pool.c 线程要执行的任务 /******************************************************************************************* @name : routine* @function : 线程要执行的任务* @paramsv : None* @retval : None* @author : D…

深度体验与测评openGauss 6.0.0新版本

openGauss 6.0.0版本在安装和使用方面都带来了很大的改进和优化。一站式交互安装功能极大地简化了安装流程,降低了用户的学习成本;性能优化和中文日志支持功能则进一步提升了数据库的稳定性和易用性。本文分享自华为云社区《openGauss 6.0.0新版本安装测评》,作者:马顺华。…

【IDEA 必备插件之一】这样注入 Bean 才爽

今天我们来介绍一款免费的IDEA生产力插件,它叫Bean Assistant。我们可以在插件市场搜索Bean Assistant来安装它。前言 不知道你们在平时的工作场景中是否经常遇到以下的情况。在一个方法中,需要调用某个实例接口的方法。我们经常会先在该类里面先注入这个接口的实例 Bean,然后…

文件系统(六):一文看懂linux ext4文件系统工作原理

liwen01 2024.06.09 前言 Linux系统中的ext2、ext3、ext4 文件系统,它们都有很强的向后和向前兼容性,可以在数据不丢失的情况下进行文件系统的升级。目前ext4是一个相对较成熟、稳定且高效的文件系统,适用于绝大部分规模和需求的Linux环境。 ext4它突出的特点有:数据分段管…

【译】Visual Studio 17.10 发布了新版扩展管理器

从 Visual Studio 17.10 开始提供新的扩展管理器作为默认预览功能。我们已将基本功能简化为现代风格 UI,以帮助您发现新的扩展并管理已安装的扩展。我们将更新的扩展管理器带给所有用户!在过去的一年里,我们已经将更新后的扩展管理器作为可选的预览功能提供,并一直期待您的…

手机上玩 PC 游戏的开源项目「GitHub 热点速览」

上周国产 3A 大作《黑神话:悟空》开启预售,同时公布游戏将于北京时间 2024.8.20 正式上线。这是一款由「游戏科学」开发的西游题材单机动作角色扮演游戏,它采用「虚幻引擎5」制作。该引擎并不是完全开源的,但它提供了部分源代码的访问权限。具体来说,就是 **GitHub 账号必…