当我想要学习一项技术并开始搜索相关技术博客的时候会搜索到很多文章,这些文章之间差别很大,虽然说的都是同一项技术,但是表述方式,深度,都不一样,有客还会有错误,作为一名技术学习者真的不知道如何选择, 后来,实在是懒得选择了,我开始尝试直接去看官方文档和源码,得益于自己英语的底子还不错,能学得下去,学习的效果也还不错,经常能有心得体会,对架构,对技术的全貌和能力边界都有切实的理解,但是这种学习方式太慢了。太慢了,源码就不说了,光 apache 的那个官方文档就好长,别人在这个技术上可能就花一个星期,我得花一个月还不止。求大佬解惑,我到底应该怎么学习。
1
ericgui 2022-05-09 08:26:18 +08:00
用 google ,搜英文文章
|
2
wd 2022-05-09 08:30:36 +08:00 via iPhone 1
你想求速成,可是你想想如果有速成方法官方文档为啥不写呢?入门看看别人的文章,系统掌握还是看官方文档。
|
3
xuanbg 2022-05-09 08:35:38 +08:00
你想学得快,就要学会「不求甚解」。就是要学会放弃当前无用的知识。
|
4
liangkang1436 OP @xuanbg 按需求学习是吧?
|
5
greengreengo 2022-05-09 09:16:04 +08:00
我都是看官方文档整体了解一下,然后详细看自己要用的部分和相关部分,差不多大约有 2 ,3 成是可以不用马上看的
|
6
cominghome 2022-05-09 09:16:08 +08:00 1
人生那么长,不要把自己的职业生涯终点定在 35 岁,自主学习你又不着急,慢慢来。
ps: 不一定要追求原汁原味的英文原版文档,找找翻译版试读一两节,大概还是能识别出译者水平的 |
7
yufeng0681 2022-05-09 09:35:32 +08:00
优秀文章获得回报的 商业模式还没有真正出来。
1 、大部分用户付费意愿不强烈(少数人付费没用) 2 、文章 copy 就走,无法形成保护门槛(专利级别的保护成本高) 3 、知识管理的方法论薄弱。 技术人员各自为战,协同写作还没出现,大家处于分头写阶段 |
8
liangkang1436 OP @yufeng0681 GitHub 上倒是有开源的学习笔记,很多人共同修改,但是经常被培训班直接打包拿走
|
9
yyysuo 2022-05-09 09:39:55 +08:00 9
两种学习模式,首先是工作模式,工作任务都是有 deadline 的,一定要不求甚解,追求速度,以解决工作任务为第一要务,这样能迅速的积累信心,了解你正在干的到底是什么事情,你正在使用的技术是个什么样子,千万不要打破砂锅问到底,这样会浪费大量的时间。并且以使用为导向,工作能力也会迅速提升,做好第 1 点,基本上职场就没什么大问题了。其次是长期的原理学习,就是你目前感觉效果不错的方法,这种适合业务的积累与提升,决定了你职场的上限,这点大部分人其实做得不好,有的人一辈子都不做深度学习,其实也什么大关系。
至于教程太多,可以试啊,试多了就有经验了,有直觉了,随便看看就知道哪个教程更靠谱一些。 |
10
singerll 2022-05-09 09:42:43 +08:00 4
我的建议是别学那么多,用到哪学到哪,最主要都是要学会思考和举一反三。
比如你举得 log4j2 的例子,那么多花里胡哨都功能可能你一辈子也用不到,而等你需要对接 kafka 时,你能够想到:log4j2 能不能直接对接 kafka ?如果不能有没有什么第三方插件?等等,这才是最主要的。 |
11
beisilu 2022-05-09 09:45:15 +08:00 2
说个不好听的,“感觉自己落后”,卷 nm 呢。
人是为了生活工作的,如果你总是这样焦虑我建议你先休息休息 |
12
codefever 2022-05-09 09:46:22 +08:00
如果你不知道如何选择,就把你自己的水平和情况以及需求说清楚,会有大佬给你指出最适合你的教程。但是别人一个星期能学会的你要学一个月就有点离谱了,这个看你和谁比,你要和那种天才比完全是凭空制造焦虑没有必要,你要是和普通人比,那真的先静下心来找找自己的问题,可能是基础太差了。
|
13
312ybj 2022-05-09 09:49:22 +08:00
我最近封闭在家也会想这方面的问题, 学一个知识,博客里是有,但是层次不齐。 上次碰到一次死锁问题,博客有很多,但是很多概念都是照搬的,没有自己的理解。 我找了本书《 MySQL 技术内幕 InnoDB 存储引擎》,里面有句话说得很好“不要相信网上的传言,去测试,根据自己的实践做出决定,学会自己思考”, 后来我把 索引 锁 事务的知识又复习了一遍, 死锁问题解决了,同时对于整个知识体系又有了理解与认识。 当然总结也很重要, 我用了飞书文档的思维导图和文档来记录知识点,时不时地看一遍,写完了之后会分享到技术群里
|
14
liangkang1436 OP @beisilu 哈哈哈,老哥骂的好!
|
15
liangkang1436 OP |
16
wu67 2022-05-09 10:08:21 +08:00
学习、入门的话, 应该还是官方文档比较靠谱. 如果你要确定某些问题 /行为的疑问, 应该是联系作者(issue/email), 或者到 SO 上面去搜一下, 直搜中文很大概率搜出来的是那种垃圾内容农场(当然大部分情况还是能搜到一些靠谱的, 只是如果问题比较偏, 大概率就是农场了)
|
17
arthas2234 2022-05-09 10:23:32 +08:00
工具类的可以先建个索引,知道它能干啥,等需要的时候再详细研究
|
18
tianyou666shen 2022-05-09 10:41:16 +08:00
修 bug 找爆栈网 写例子按照 demo 和官方文档 学技术又快又全靠网课视频
|
19
Jooooooooo 2022-05-09 10:45:20 +08:00
分清 工具使用 和 技术知识.
|
20
Vincent103 2022-05-09 11:01:30 +08:00
我感觉找个大佬带是最快的方法了,可惜大佬都没那么多时间
|
21
ffgrinder 2022-05-09 11:22:02 +08:00 2
有没有一种可能,你所谓的“慢”才是正常的速度?
解决问题的时候我回去看 blog ,但是解决了问题之后还是要仔细去阅读专业文档的(包括但不限于教科书,官方文档之类)。 不能因为国内环境浮躁就去做逐利的事情,我真是深有体会。 |
22
libook 2022-05-09 11:45:42 +08:00
1. what:先去看一下技术的简介,了解一下是啥;
2. why:去看一下技术适用于哪些需求场景,不适用于哪些需求场景; 3. how:看一下如何使用这个技术。 在 how 阶段,我个人习惯这样的优先级: 1. 官方 document 、manual 、guide 、tutorial 、get started ; 2. 系统性的教学书籍,实体书或电子书; 3. 知名大牛的系统性教学博文; 4. 普通博文、视频、公众号。 学的话其实也不一定要全都看完,根据自己的需求有侧重点看就行,一般好的文献每一章节开头都会有简介,暂时用不上或不被其他章节依赖的可以先不看。 |
23
Cielsky 2022-05-09 11:50:45 +08:00 via Android
对我来说,不管是求速成还是求深入,第一步都是先快速过一遍,留个大致框架,知道哪些重要。
|
24
documentzhangx66 2022-05-09 13:11:42 +08:00 1
1.学习本来就是一件非常奢侈的事情,因为需要花很多时间。
很多中间层次的从业者,因为没有时间去系统化地、完整地学习,造成水平无法提高,进而只能停留在竞争最为激烈的中间层圈子,导致恶性循环。 2.学习资料的作者,并不知道学习者的知识情况,因此作者只能尽量把能写的东西,都写上去。 3.学习者,在学完之前,也并不清楚知识依赖与架构,因此全部学完才是最稳的,但也最消耗时间。 建议,你想进入竞争相对轻松的上层圈子,你就只能更卷,别人玩乐你学习,别人休息你学习,来提高自己,没有别的捷径。 |
25
liangkang1436 OP @Cielsky 首先看到技术的全貌,然后再开始学习细节
|
26
liangkang1436 OP @documentzhangx66 学习时间这一条真的扎心
|
27
liangkang1436 OP @documentzhangx66 谢谢你的回答
|
28
documentzhangx66 2022-05-09 14:01:33 +08:00 3
我也是很多年后,才意识到这个问题。
我关注了几个年入百万的大牛,我很好奇他们是怎么学习的,结果我发现,他们可以连续几年不上班,专门拿来学习和实验,而且他们自己甚至可以投入几十万元去租借设备拿来做配套实验.....他们也不需要照顾父母、家人、孩子,因为没他掺和,这些人吃喝玩乐能活的更快乐... 有一件我印象很深的事情,某数据库群,因一个问题吵起来,几十亿的数据,某种表结构,性能会怎么样。几个大佬吵了起来,但其中一个大佬,从设计实验、准备设备、搭建环境、制作实验数据、写代码,连续花了几天时间,证明了自己的想法....其他人呢?在上班,在奶孩子,在陪老婆... 普通人,连续 2 个月没收入,就完蛋了,更别提专门花几天时间去探索一个小问题。同时普通人只能去找那种竞争激烈的工作,还加班多,哪有时间去学习,去研究。 这就是恶性循环。 如何破局?只能牺牲自己的娱乐与休息时间,变得更卷,别无他法。 |
30
ryd994 2022-05-09 14:17:15 +08:00 via Android
“log4j2 可以跟各种信息平台对接,比如 kafka ,也可以直接配置写入数据库,各种 appender ”
所以呢?你用得到这些功能吗? 用得到,见第二条。 用不到,那你不需要知道这些功能。 “log4j2 可以直接把数据记录成 CSV 文件,各种 layout ,以前我都会自己写代码来实现这个功能” 这个问题不在于你是不是 log4j2 大师。而在于你在重新发明轮子。在写代码实现这个功能之前,先问问自己,这个功能别人用不用得到。如果别人有可能用到,那别人很可能已经发明过这个轮子。然后再有的放矢地搜索: https://lmgtfy.app/?q=log4j2+csv 学海无涯。搞学术的需要格物致理,不懂的一定要搞懂。搞工程的一定不要这样,你的工作是有什么工具能用就用什么,重点是花最小的成本把问题解决掉。你的时间也是成本,所以在开干之前,先想一想,你在干什么,你为什么要干这个,有没有别人已经干过这个,能不能利用现成的工具? |
31
kg2019 2022-05-09 15:24:44 +08:00
极客时间(付费)+ 经典书籍
|
32
huntagain2008 2022-05-09 15:47:56 +08:00
小白我觉得还是看官方社区的技术文档更靠谱。比如笔记本电脑装 ubuntu 安装 AMD 显卡驱动,AMD 官网给的驱动安装文档和网上的傻瓜博客都只会让小白遇到“依赖”之类的错误就强制安装,甚至遇到软件包冲突的也要小白不管,就是莽就是干,这种后果很可能系统整个坏掉。看 Debian.org 的文档,就写的思想或者原则就是杜绝这些操作的,完全为了系统稳定,而且 Debian 关于软件包的介绍和网上随便搜的完全不是一个次元的。根本就是两个概念。所以,我认为学习材料还是找权威、社区、泛用、教科书级别的更好一些。
|
33
zt5b79527 2022-05-09 15:54:33 +08:00
唉,卷海无涯
|
34
offswitch 2022-05-09 16:32:45 +08:00
你说的这些毫无意义,正常不会直接用 log4j 发送到 kafka 。
|
35
gugugagadun 2022-05-09 16:45:17 +08:00
@yyysuo 双手双脚同意。工作模式,扩展视野;休闲模式,扎实基础知识
|
36
billlee 2022-05-09 16:47:28 +08:00 via Android
Blog 从来不是系统学习的渠道。针对某项特定技术的博客要么是学习笔记性质的,这类完整度和可信度都不高。要么是针对某个特定问题的深度分析,这种也不适合用来入门。
|
37
1000copy 2022-05-09 17:01:35 +08:00
讲给我,我就忘了。展示给我,我就记住了。我参与进来,我就明白。
|
38
1000copy 2022-05-09 17:05:06 +08:00 1
|
39
liangkang1436 OP @ryd994 那对于工程用到的技术,有必要花时间深入学习吗?比如 spring 全家桶框架
|
40
levelworm 2022-05-09 19:12:42 +08:00 via Android
感觉开源工具鲜有完善的书籍,而且功能碎片化,很多解决方案就是堆砌一些开源工具,成熟的团队不怎么愿意自己开发些工具了。所以深入学习既没有必要也没有可能。我觉得最好就是善用 stackflow ,有什么需求就用工具名加需求进行搜索,搜不到就说明肯定不支持。
至于 RTFM ,这个自然是有用的,问题是哪里有时间每个工具都去翻文档?如果团队内没有大佬带,那就只能遇到一个问题翻一次。最后就是熟能生巧。 |
41
lamCJ 2022-05-09 19:31:33 +08:00 via Android
同感,项目技术文档和功能实现脱节大部分都有,只是看严不严重,一般团队越大越专业的软件团队 /公司情况越好。毕竟写好和维护文档的及时性要很多精力。
不过问题也不大,肯定还是会看文档,如果文档不完善,踩坑较多就去看代码的命名,注释,测试用例,issue 这些,如果写的好的代码,基本上折腾一点时间也能解决问题。 如果还不行就要考虑弃坑了。除非你是纯学习目的,或者需求非用不可没其他选择的情况,我觉得没必要浪费时间看太多源代码。 |
42
zooo 2022-05-09 19:52:25 +08:00
关于学习,这个话题让我想起,阮一峰的一个博客
https://www.ruanyifeng.com/blog/2022/04/weekly-issue-202.html |
43
liangkang1436 OP @zooo 谢谢分享,我去学习一下
|
44
Euthpic 2022-05-09 23:37:44 +08:00
估计你搜索用的关键词只是简单的"log4j",所以会看到大量入门文章.稍微加下关键词,比如 log4j 的某某特性,你会发现有很多精彩的资料
|
45
liangkang1436 OP @Euthpic 我是在 log4j 官方文档里找的推荐教程博客
|
46
FrankHB 2022-05-10 01:44:19 +08:00
如有可能,尽量看第一手来源。
一般来讲,不要指望别人消化过给你反刍(……D 区.jpg )出来的东西的内容质量,包括纸质出版物,因为本质上对作者的能力和责任心没有门槛限制(说不定理解能力比你还烂),于是跟你花时间踩坑跟随便看什么网文没根本差别。(这种类型的文献里最靠谱的一类也许是综述论文,对作者要求比较严格,写太烂可能圈内社死。) 就算恰好你看到的二次来源没有误导也没有明显的废话,你仍然几乎没可能确保甚至确认里面有没有相对遗漏重要的东西(这个“能力边界”的问题你自己也发现了)——如果一旦需要更权威的来源,那这里看的基本就是沉没成本——因为横竖都得重新过一遍,才能确定。如果你没有事先从一手来源熟练提炼内容的本事,这里阅读的复杂度就是 O(n)往上。 这特别针对“学习笔记”。你不是作者的导师,你没义务花精力替作者审查内容。——别信多看别人的文章就能加深理解的鬼话:这类文献中自己的独创的启发性理解通常极其稀薄,除非你是要学习写作文,否则基本不如直接看书。 博客类的内容,你只适合看发表明确带有具体观点的评论、关于某个时事(可能是当事人观点或者小道消息)的独家报道或者解决极其具体问题的实例,这些内容就是一手来源,不需要寻找更权威的替代。 有权威背书的教程可以看,但是这算是降低门槛(降低读者理解的门槛和作者推广的门槛)用的。如果你恰巧已经对理解一手来源没有障碍,看这种内容还是免不了浪费时间。此时,通常只有在你需要向其他人言传身教时,才有必要参考这些内容。 内容太多不是问题,因为看技术文献本来就不应该通读。如果你觉得自己不能很快通过阅读 preface/foreward/introduction 和有限的正文快速找到感兴趣的内容,说明你现阶段可能不够具备这个能力。这时候,看权威推荐的教程可能更适合你。但这基本可以肯定花(相对)更长的时间——这是无解的,毕竟内容的数量摆在那;况且教程类的东西经常强调非引用性照应说不定还穿插习题,额外开销就更难压缩到 O(n)以下了。 |
47
FrankHB 2022-05-10 02:08:45 +08:00
@zooo 我太不同意这里提到的几个说法。
1.正因为记忆力如此重要,才不应该浪费在机械背诵上。 最应该花费记忆的是存那些帮助你找到第一手资料的索引,包括自己阅读技术文档后形成印象——而恰恰不是原文。这样才有可能接近及时获取所需的持久信息的效率的最大化。(当然,看多了自动记住了的东西也不需要刻意忘掉。) 不能上网被逼得记住东西,和你看多了自然记住的东西,即便表面看起来相同,实际上用起来的熟练程度也完全是两码事。 所以看起来最笨的方法,虽然实际不一定是最笨的,但的确是比较笨的;这种看似主动实际被动记忆技能,属于 features of the last sorts 。 如果自己没有形成索引的能力(这其实就是看一手资料提取感兴趣信息的能力的主要部分),那么看二手来源也是可以的,但应该筛选。最有价值记住的是那些容易关联到比较查验权威性的一手来源的资料上,包括综述论文;另外的例子是英文维基百科条目名(虽然不是每个条目都配得上浪费记忆;反正不少条目可以内链间接索引到)。 2.“大量的练习”没有错,但是这里没明说的是,怎么度量“大量”。 实际上,大量不是单独看你处理了多少字面上的材料,而是有使用经验的加权。 比如上面提的,为什么自然记住的东西比强行去记住有效?因为前者通常就是大量使用的结果,跟只是记住完全不是一个概念。 3.专业技术证书是服务于特定的行业和特定的人的,其中的含金量很大来源于“承认”。 这不是你最终能从学习里获得足够回报的保证,例如你不去某些职位工作这些证书可能就一文不名。 如果没有被特定涉众承认的刚需,偏离自身需要去考证可能得不偿失——学了很多实际没用的内容,和被迫通读技术文献中无用的细节浪费的资源效果是类似的,甚至还不如后者能高(装)大( 13 )上一点。 |
48
FrankHB 2022-05-10 02:14:05 +08:00
@FrankHB 淦,不知道我这里回复框怎么抽风,贴过来几个地方语序乱了……
……算了,不一个个纠正了,反正汉顺字序不影响阅读( |
49
em70 2022-05-10 04:08:15 +08:00
你的学习方法是应付学校考试那一套,根本不适合技术学习,技术是依赖实践的,你的学习方法好比看书学游泳,看书学开车一样荒唐可笑. 技术正确的学习方法是目标驱动,比如我一看 log4j2,可以做企查查,天眼查那种公司关系图谱啊,那我就做一个天眼查呗,带着这个动机,我就可以不断产生问题,然后查资料,写代码,调试代码,把东西做出来我就掌握这个技术了。你的动机要是为了面试,为了考证,你学的全是纸上谈兵
|
50
liangkang1436 OP @em70 别说的这么绝对,官方文档里有大量的示例代码,我基本上都会自己实践一遍帮助理解
|
51
zooo 2022-05-10 11:43:31 +08:00
@FrankHB
阮一峰的博客只是一种观点 有些我也不认同 copy 下,以前 v 站别人的观点,供大家学习 学习的两种模式 1) 工作模式 工作任务都是有 deadline 的,一定要**不求甚解**,**追求速度**,以解决工作任务为第一要务,这样能迅速的积累信心,了解你正在干的到底是什么事情,你正在使用的技术是个什么样子,**千万不要打破砂锅问到底,这样会浪费大量的时间**。并且以使用为导向,工作能力也会迅速提升,做好第 1 点,基本上职场就没什么大问题了。 2) 原理学习 就是你目前感觉效果不错的方法,这种适合**业务的积累与提升,决定了你职场的上限**,这点大部分人其实做得不好,有的人一辈子都不做深度学习,其实也什么大关系。 上面的都出自 v 站别人的帖子,非原创,只是收集下来了,供大家学习。 |
52
zooo 2022-05-10 11:45:53 +08:00
那么关于 2 )原理学习,自然就需要深入学习,求甚解,这样也方便 理解记忆 !
而对于 1 )的模式,不用记忆,通过不断的应用实践(用多了),自然就记住了;或者说是对于最最常用的知识点,刻意记忆。 |
53
zooo 2022-05-10 11:48:16 +08:00 1
对于应该用第一种模式学习的,千万不要用第二个模式,既浪费了时间,又会因为学习成本大,而落后于别人,落后于市场。
那么,学习的第一步是分清这两种情况。 |
54
zooo 2022-05-10 11:53:42 +08:00
对于:别人在这个技术上可能就花一个星期,我得花一个月还不止
可能这个技术学习就是第一种情况,工作模式,会用,解决实际问题了,就是好的学习,跟紧需求,更上一层是跟紧市场。 对于:说白了,我看了官方文档之后,才知道 log4j2 能干哪些事(能力边界),但是光是看 log4j2 的官方文档 明确需求后要先去做调研,调研有各种渠道,问大佬,问前辈,发帖子,google 搜索,问同行公司等等。 只要调研清楚后,你大概就对不同的技术的能力边界(功能)了解,然后再是技术选型(选择哪个工具),再学习(通常调研后,通过判断你会觉得当前学习的技术最适合学习 or 应用,最有价值)。 |
55
liangkang1436 OP @zooo 一针见血地指出了我的问题
|
56
em70 2022-05-10 12:53:51 +08:00
@liangkang1436 #50 在驾校里天天练过桥,爬坡,学了还是不敢上路,经验学科需要实战,实践遇到问题再去看理论,工程师又不是科学家
|