大佬们一般都是怎么学习新技术的?

2021-01-22 15:46:09 +08:00
 kikione

我一般先找个博文了解一下,然后在 github 上找个源码看,学会使用。 然后找本书看,了解原理。 最后才去看文档。

7563 次点击
所在节点    程序员
45 条回复
stevefan1999
2021-01-23 01:46:47 +08:00
真正的大牛不會學新技術的,ta 們創造新技術,甚至科技
Mirage09
2021-01-23 07:09:21 +08:00
不学,偶尔在 knowledge sharing 上听到什么有意思的东西会去看看相关的 doc 。
下班以后坚决不拿工作的事情折腾自己,这是底线。
VeryEase
2021-01-23 08:55:25 +08:00
我学习的新技术全部是被需求逼的,自己从来没主动学过
VeryEase
2021-01-23 08:56:52 +08:00
补充一下,“怎么” 学习新技术, 先看官方文档, 再看大神的技术分享, 最后自己实操, 然后各种折腾踩坑
young1lin
2021-01-23 09:41:54 +08:00
实用类的,先用吧,比如 Docker,你不写个 Dockerfile,不用一些 docker ps 之类的命令。你了解一些概念,还是没用的。这些官方都有教你的,看官方文档就好了。

要深入了解的,比如 HBase 、Hive 之类的,都已经很成熟的东西了,其实可以直接看书。你会发现很多技术,都是相通的。例如一般的数据库都有 WAL ( Write-ahead-logging,在 MySQL 里面是 redo 、undo )的概念,还有 LRU 缓存到内存的东西,还有选主的 Raft 算法等等。这些都是基本差不多的东西,直接快速阅读就行了。

我还是觉得看书比看视频好一些,因为看视频是别人嚼碎了,喂到你嘴里的。看书,最起码,你是要主动去思考一些东西。多画图总结,这样记得牢,有空的话,教给不会的人(费曼学习法)。

没有人他妈用都没用过,上来直接源码的,这不有毒吗?你要知道这个东西是干什么的?解决了什么问题?我该怎么用?然后熟练之后,再去看看书,这样学得快。如果你已经在这些域已经是大牛了(例如你在数据库方面已经是掌握得不错的了,然后看其他数据存储方面的,很快),你可以直接看源码。
nismison2
2021-01-23 10:04:09 +08:00
bilibili+1,挑个讲课方式比较好的,把课 2 倍速刷完,掌握基本概念,稍微记住一些要点,像什么声明变量的课程啥的可以选择性跳过,刷完直接开始写项目,自己随便想个点子就开始写,碰到不会的可以回去翻翻视频,也可以直接查,差不多就是这么个流程,写多了自然就会了,从来不看书
xiaomu8
2021-01-23 10:50:33 +08:00
最后发现还是看书最靠谱
kele1997
2021-01-23 11:30:31 +08:00
可以看看陈浩(左耳朵耗子) 的博客说过类似的内容

我参考后总结了一下
1. 首先要搞清楚为什么会有这个技术,要不然平白无故多个技术,有毛用?
2. 其次要明白这个技术,解决了那些问题?怎样解决的?
3. 然后了解下这个技术在解决了一部分问题的同时,又带来了哪些问题呢?
4. 最后这项技术底层是用了什么样的设计思想,或者 linux 相关的系统功能呢?
5. 看文档,了解设计和架构之后,才去看源码。

PS: 我说的可能有问题,希望各位补充改正
就 docker 举例

1. 首先 docker 不是虚拟化,而是容器化,主要解决的问题应该是资源隔离
2. docker 可以减少运维问题,将运行环境封装到 docker 容器内部,同样地我们也可以对某个容器做精细的资源控制
3. docker 的本机网络是通过网桥,性能不错。但跨节点的化基本就要通过转发来实现。转发肯定会带来损耗。而且 docker 容器内部最好不要写,要挂卷写。
4. docker 底层隔离使用了 linux namespace , cgroupfs, 网桥,unionfs 等技术。k8s 跨节点网络使用的 netfilter, vxlan 等技术
5. 看文档,看看别人的使用实践

我觉得学习某个技术的底层实现最好落到 os 层面比较好,然后再看这种技术本身的时候,我们可以从底层来思考。比如 docker 本机上的网络通信是通过网桥的,因此本机容器的网络包会发送到网络栈的内核二层交换机上,然后在发送到用户空间。而跨机器的访问,是通过 netfilter 等规则实现的,这个损耗就要大一些。

很多技术都是基于 os 的,很多技术都是组合使用了多种 os 的功能
deargodfrey
2021-01-23 11:55:09 +08:00
真的不难,看 doc 自己调用演练一下很快就能上手的,尤其语言其实各自之间都是有共通之处的,包括很多人说很难的 rust 我也觉得还好
justin2018
2021-01-23 12:19:22 +08:00
教英语的同学表示 英语语法这么多年还是那样 每天好枯燥 太没成就感

我是多么羡慕他~
fiveelementgid
2021-01-23 13:17:12 +08:00
不是大佬,刚看到帖子没有回答
推荐纸质书籍,不过可能知识比较老旧
没纸质书籍就直接去啃官方的 Documents/Guide/fundamental
Coding 的时候就对着 Reference 写就行了
fox0001
2021-01-23 14:01:06 +08:00
@darknoll #4 对,先拿来干点什么。用起来就会去理解、深入~
lix7
2021-01-23 14:46:00 +08:00
先看源码再看文档,牛逼了
skypyb
2021-01-23 15:03:00 +08:00
球球你们别学了, 我真的赶不上了 😭
catch
2021-01-23 17:16:14 +08:00
你们学吧,我主动退出内卷
CrazyRundong
2021-01-23 17:18:16 +08:00
Google/Wikipedia 搜关键词,看看这项技术是不是有用 /感兴趣 /好玩。然后看官方文档的 get started 或者靠谱的系统性的书籍的 introduction 部分,来对技术和其中的主要概念有个大致的整体了解。之后就可以用到自己的项目中,边实践边探索细节,顺便看看有没有什么可以完善 /回馈社区的部分。

说实话,学一个 well defined 新技术比摸黑 research 轻松太多了,楼上一堆叫着学不动的活该到时被优化。
onec
2021-01-23 17:23:42 +08:00
看官网的快速开始,跑个简单 demo,一步步照着官网例子加功能
yangchuansheng33
2021-01-23 17:51:01 +08:00
@freebird1994 嘻嘻😬
ruyuejun
2021-01-23 18:23:33 +08:00
边学边写文档,怕忘了,写了三年,居然。。。。。十万多字: https://github.com/overnote
gowk
2021-01-23 18:27:32 +08:00
@ruyuejun 牛逼

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

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

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

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

© 2021 V2EX