现在很多人看源码似乎都是为了面试,纯粹的程序员应该在思考啥?
source link: https://www.v2ex.com/t/786840
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
kop1989 1 天前
另外,不是为了面试而看源码,只有一个原因,就是想搞明白作者是怎么实现的,自己的设想和作者的实现孰优孰劣。
带着问题去阅读源码,是最好的提高自己的方式之一。
meteor957 1 天前
p2pCoder 1 天前
dfkjgklfdjg 1 天前
现在大部分人看源码是为了面试,就是正常人没人看源码, 都是 API 战士,怎么实现的不知道,出现 bug 了怎么办?百度,也不去看 Issues,遇到真正喜欢 Coding 的人一比就黯然失色,为了能有竞争力,才开始读源码,刷算法,为了够到那根门槛而读 /刷。
内驱动学习不是每个人都有的,更何况那么多人都是来 IT 行业捡钱的,哪里还会放弃打王者的休息时间去学习。
不过那些直接啃源码的新人,从 VueJS 到 ExpressJs 坚持了一年还在啃,虽然我满头问号,但是我是真的佩服这个毅力(你干点啥不好...)。
3dwelcome 1 天前 10
你没办法让聪明人长时间 CRUD 。想了一下,好像有那么一点点道理。
e583409 1 天前
我现在慢慢发现自己喜欢上写代码 同时功利一点为了面试 开始刷 leetcode 半年刷了 190 道题
写的总结 https://mp.weixin.qq.com/s/0YqBCiTcRtk6hijGE7RfOw
luozhiyun 1 天前 5
现在我在研究 TiDB,想看看它是如何做分布式数据库的,感兴趣的不妨一起看看: https://www.luozhiyun.com/archives/category/%e5%90%8e%e7%ab%af/tidb
kensoz 1 天前
所以说看源码就是为了面试,除了你真的在工作中需要用。
极少数人说兴趣爱好,自我提升我信,但是大部分都是抱着或许面试用得着的心态来学。
avastms 1 天前 2
我发现文档里面,他们的 @Query 装饰器,竟然可以不用手动指定,而是自动取得参数的名字。
这是装饰器 API 中没有提供的,按道理只能取得参数的顺序,而不能取得参数的名字,这是不能实现的,我很好奇他们是怎么做的,甚至觉得是文档写错了。
所以我下载了这个项目的源码,找到了 Query 装饰器的实现。
你猜他怎么干的? 原地取得这个方法并给他 toString,拿到源码后正则匹配。
还能这么 xjb 干,我也是服了。
avastms 1 天前
avastms 1 天前
leven87 1 天前
HolmLoh 1 天前 1
日常开发不同于开源的框架,框架为了保证拓展能力必然会写的极其的绕,举个例子就是 spring bean 的生命周期,光是创建到销毁就分了 7 步,一般的业务开发写成这样不是自讨苦吃吗,这也为什么有人说 Java 人都被设计模式荼毒的原因
ericgui 1 天前
阅读源码这个事,也要看投入产出比,也要看是要学习的目的,是真的要用到,还是要了解茴字有几种写法
而我最近在详细研究我司的现有代码,其实已经真的也都是收获非常大的,毕竟看完了,就能立刻用得到
所以个人的提高,只是“阅读”源码也没什么 p 用
hhyyd 1 天前
至于是考试前突袭背几篇拿高分,还是长期培养阅读的习惯,熟好熟坏,不言自明。
namelosw 1 天前 1
我个人理解的「纯粹程序员」就是跳出已有框架,更多思考计算本质的人。
其实「纯粹程序员」一直存在,在计算机出现之前就已经有了,比如早期的 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 这种项目,走马观花地做一遍下来你就会有很多好奇的方向,和你比较感兴趣的抽象层,和很多「为什么不」「如果这样的话」之类的问题可以深入。
ReferenceE 1 天前 via Android
看源码主要是思考和使用
例如,释放类时都会调 IDeposited 接口
没人会关心 runtime 中,deposited 各个 service 的顺序是什么
charlie21 1 天前
没人要的 “意义” 就应该烂在地里,参考 古希腊哲学起源 ..
希腊哲学是从关心世界的根源即本原开始的,如泰勒斯的“水”、阿那克西曼德的“无限”、阿那克西米尼的“气”、毕达哥拉斯的“数”、赫拉克利特的“火”
http://db.cssn.cn/sjxz/zxqksjk/ztjj/201906/t20190610_4914802.shtml
xloger 1 天前
别人说看 Android 系统源码时我都会问怎么看的,IDE 点进去看的只是一部分源码,完整的是得自己额外下源码的,没说这个过程的,可以想象出他们是怎么“看源码”的了。
我关于 Android 本身的源码,印象比较深的一次是一个 Activity 关闭后没有及时调 onDestory,网上搜索无果,但是看到 Logcat 上看到了一条日志,然后就源码查这个日志,看怎么处罚这个条件,检查到最后知道是 handler 里有消息没处理完,再一验,是其他同事不小心在某些情况下会死循环反复发 Message 。
框架的源码,我一次是用 Glide 解析 Gif,一部分 Gif 用默认的加载方法不会动。我怀疑是 Glide 解析这个文件把它当普通文件识别了,也许是我生成的 Gif 头文件信息不对之类的。也看了一会源码,不过时间紧张最后直接在应用层加了个判断了。
纯粹的程序员看源码,我觉得分为两个情况:
1 、抱着解决某个问题的角度,去阅读分析这个问题是怎么产生的,该怎么解决。
2 、觉得这个功能实现得很棒,很厉害,去研究学习怎么设计怎么实现的。
ylsc633 1 天前
目的: 学习别人的写法, 看看他们怎么写项目的, 有没有值得学习的地方, 代码是否比我的优雅,我需要进步,不断学习才能进步
2. 看编程语言底层源码
目的: 比如我写 go, 看底层源码, 对面试肯定有好处, 但主要是 能看到底层实现, 可以让自己少踩一些坑(比如 map,看了源码知道 有并发读写问题,底层实现的时候有异常抛出, 比如一些并发原语,底层实现是 noCopy 如果传递的话,可能有一些意想不到的问题出现), 另外,看底层如何实现也是十分有意思的, 比如互斥锁, 什么时候自旋,什么时候会进入饥饿模式, 什么时候退出等等
但是因为个人基础一般,能力有限, 只能尽量去看
FreeEx 20 小时 38 分钟前
james122333 4 小时 43 分钟前 via Android
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK