现在很多人看源码似乎都是为了面试,纯粹的程序员应该在思考啥?

2021-07-01 10:01:30 +08:00
 guimeisang
11484 次点击
所在节点    程序员
93 条回复
HolmLoh
2021-07-01 14:41:19 +08:00
看大型开源框架的源码对大部分人的日常开发没什么鸟用
日常开发不同于开源的框架,框架为了保证拓展能力必然会写的极其的绕,举个例子就是 spring bean 的生命周期,光是创建到销毁就分了 7 步,一般的业务开发写成这样不是自讨苦吃吗,这也为什么有人说 Java 人都被设计模式荼毒的原因
aguesuka
2021-07-01 14:52:46 +08:00
面向未来编程. 比如说 JetBrains 的 Arend 语言.
https://arend-lang.github.io/
ericgui
2021-07-01 15:26:16 +08:00
用到啥看啥,比如我最近要用到 rc-table 和 rc-calendar,我考虑自己发包,毕竟不敢把自己托付给福报长,但 又不得不用,于是只好 fork 一份,自己维护了。这就要去阅读源码了,那我是不是可以宣称,我阅读过 ant design 的源码?

阅读源码这个事,也要看投入产出比,也要看是要学习的目的,是真的要用到,还是要了解茴字有几种写法

而我最近在详细研究我司的现有代码,其实已经真的也都是收获非常大的,毕竟看完了,就能立刻用得到

所以个人的提高,只是“阅读”源码也没什么 p 用
ca1123
2021-07-01 15:27:13 +08:00
这说明面试还不错啊
ipwx
2021-07-01 15:40:55 +08:00
只是阅读源码效率极低。要从读源码开始,争取进步到看 API 就能猜出怎么实现的程度。
wfd0807
2021-07-01 15:41:45 +08:00
真正的程序员在思考怎么赚钱 DOGE
hhyyd
2021-07-01 15:55:51 +08:00
就像小时候学写作文,先是读优秀课文作文等,做些摘抄什么的。从整段背诵,到运用名言名句,再到考试独立完成一篇作文。多读课文,读诗词名句,优秀作文。都是必要的积累。

至于是考试前突袭背几篇拿高分,还是长期培养阅读的习惯,熟好熟坏,不言自明。
namelosw
2021-07-01 16:02:54 +08:00
很多人的层次还谈不上思考「纯粹程序员」的问题,思考的更多是吃饭,所以。

我个人理解的「纯粹程序员」就是跳出已有框架,更多思考计算本质的人。

其实「纯粹程序员」一直存在,在计算机出现之前就已经有了,比如早期的 Haskell Curry, Alonzo Church, Alan Turing,或者后来的 John McCarthy, Alan Kay, Tony Hoare 等等。写业务的程序员固然重要,但是一个业务程序员消失了就会有人做他的工作,一个公司消失了就会有其他公司填补它的市场。但是这些推动业界发展的关键人物没存在过,我们现在可能还没有电脑 / 写二进制 / 写 Fortran 等等。

当然也不用非得只思考本质不干活,很多大佬也是工业界出来的,比如 Joe Armstrong 在爱立信搞的 Erlang 其实是在不知道 Actor 的情况下独立实现了它。

我感觉 SICP 里面的比喻很恰到好处:我们现在看待计算机就跟古埃及人看待几何一样 — 那个时代大部分和几何相关的工作者更关注的是怎么用标尺,量角器这些「工具」,而我们回头看那个时代的时候根本不会关心这些工具,而是会认为他们发现背后的几何原理拥有重大意义。那么以同样的方式思考,远未来的人回头看 20 ~ 21 世纪的计算机科学 / 编程,更关注的显然不是 M1 或者 Rust,而是更本质的「计算」本身。

如果只是想找一些更纯粹的问题思考的话,看源码不如做一做 Nand to Tetris 这种项目,走马观花地做一遍下来你就会有很多好奇的方向,和你比较感兴趣的抽象层,和很多「为什么不」「如果这样的话」之类的问题可以深入。
kongkongyzt
2021-07-01 16:04:46 +08:00
很多时候看源码既不是为了面试或者是提高自我能力, 而是看这东西到底咋实现的, 为了追踪问题而去看源码
ReferenceE
2021-07-01 16:06:36 +08:00
?面试不至于看源码吧
看源码主要是思考和使用
例如,释放类时都会调 IDeposited 接口
没人会关心 runtime 中,deposited 各个 service 的顺序是什么
charlie21
2021-07-01 16:25:44 +08:00
你用你用的工具,古埃及人用古埃及人的工具,你们都不关心它的意义,只想准确正确交工然后早点下班回家吃饭。

没人要的 “意义” 就应该烂在地里,参考 古希腊哲学起源 ..

希腊哲学是从关心世界的根源即本原开始的,如泰勒斯的“水”、阿那克西曼德的“无限”、阿那克西米尼的“气”、毕达哥拉斯的“数”、赫拉克利特的“火”
http://db.cssn.cn/sjxz/zxqksjk/ztjj/201906/t20190610_4914802.shtml
simo
2021-07-01 16:25:51 +08:00
纯粹的程序员都在思考怎么 v2 发问和作答,我们都很纯粹
xloger
2021-07-01 16:38:59 +08:00
而且很多为了面试“看源码”的,大多看的还是网上别人发的源码分析文章。

别人说看 Android 系统源码时我都会问怎么看的,IDE 点进去看的只是一部分源码,完整的是得自己额外下源码的,没说这个过程的,可以想象出他们是怎么“看源码”的了。

我关于 Android 本身的源码,印象比较深的一次是一个 Activity 关闭后没有及时调 onDestory,网上搜索无果,但是看到 Logcat 上看到了一条日志,然后就源码查这个日志,看怎么处罚这个条件,检查到最后知道是 handler 里有消息没处理完,再一验,是其他同事不小心在某些情况下会死循环反复发 Message 。
框架的源码,我一次是用 Glide 解析 Gif,一部分 Gif 用默认的加载方法不会动。我怀疑是 Glide 解析这个文件把它当普通文件识别了,也许是我生成的 Gif 头文件信息不对之类的。也看了一会源码,不过时间紧张最后直接在应用层加了个判断了。

纯粹的程序员看源码,我觉得分为两个情况:
1 、抱着解决某个问题的角度,去阅读分析这个问题是怎么产生的,该怎么解决。
2 、觉得这个功能实现得很棒,很厉害,去研究学习怎么设计怎么实现的。
nicocho
2021-07-01 16:57:34 +08:00
最近准备,看了好多源码。
刚好来个新需求,我借鉴了源码里的设计方式,学以致用?感觉挺好的,
KouShuiYu
2021-07-01 16:59:58 +08:00
+ 学习
+ 借鉴
+ 文档不够详细
wobuhuicode
2021-07-01 17:08:18 +08:00
面试现在不是都刷题的吗?
读源码来面试不靠谱吧。
ily433664
2021-07-01 17:13:51 +08:00
早上吃什么?
中午吃什么?
晚上吃什么?
sjzjams
2021-07-01 17:15:24 +08:00
如果真的是认真看源码那就不用为面试担忧了,提高在不知不觉中,看源码看算法都是给自己开拓思路
fyxtc
2021-07-01 17:29:35 +08:00
@securityCoding 极端了,阅读代码本身就有足够的含量,问题是是否看的是优秀的代码以及是否理解透彻
RainCats
2021-07-01 17:30:52 +08:00
在中国,纯粹的程序员大概饿死了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786840

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX