缘起
疫情的原因,被关在家里有时间想想自己。一路走来,在技术的道路上虽然没有很大的建树,也需要进行自己的思考和总结。
对于技术,或是自己的行业,首先一点应该是要有自己的兴趣,然后就是要有正确的方法,不断的提升自己从而获得自信。 当你对某件事务有自信的时候,然后对自己的行业或技术就会更加的有兴趣,不断的正向循环,最终你就会在这个领域内,成为一个更优秀的自己(是的,我们的人生是自己的,不需要和他人去进行比较,只是让自己过得更好,更明白和通透)。
我不知道大家的学习技术的方法是怎样的,我把我的经验总结出来,希望更多的交流沟通,让我也学习到大家好用的方法。
我总结的技术学习方法论,主要是以下5点:
- 系统性学习
- 工具的使用
- 思考与总结
- 不断的练习
- 拓展和延伸
一. 系统性学习
进入社会,我的第一个职位是运维,而现在我的职位还是运维(哎,看起来没什么变化,莫名悲从中来)。
在我刚入行的时候,第一个领导丢给我一个网站(www.3schools.com, 国内有个模仿他们的网站www.w3school.com.cn,做得也还可以),然后我的大领导立冰丢给我一本书《BSD Hacks: 100 Industrial Tip & Tools》
在w3schools.com上,花了1个月的时间看完了html和css教程,然后一个月的时间看完了php的教程。
《BSD Hacks: 100 Industrial Tip & Tools》这本书大概啃了2-3个月,一个命令一个命令的读,然后在机器上操作,全部都是英文,啃得是有点辛苦。
正因为这一段时间的苦中苦,才让我在未来的日子里更加的得心应手和从容。这份从容,就是通过系统性的学习,而获得的。
系统性学习的作用和益处:
- 打地基。基础牢固,才能建设出高楼大厦。
- 搭架构。了解某项技术的技术架构,相当于高楼大厦的框架。不管这高楼是多高这大厦多大,都是通过这个框架支持起来的。
- 懂原理。了解某项技术的原理,基本的运行规则。比如Linux的一切皆文件。
- 明逻辑。在有框架和原理的基础上,建立起各组成部分的逻辑关系。
- 成系统。系统就是一件事物的全貌,包括了地基,也包括地基之上的高楼,还有楼宇内部的各个组成部分。
之前我在芒果TV的时候,参与蔡康永主持的《百万秒问答》这个问答类节目,一时兴起问了坐在旁边的观众,这都下着雨,干嘛还在看这个节目呢?她的答案是惊到我了,她不是说为了看明星蔡康永,而是说看这个节目可以学习到更多的知识。我不知道她在一个只有十几道题的节目里能学到多少知识,但是我知道当时那些所谓节目的题目我都忘了。
我认为所谓的碎片化学习不靠谱。我们真正需要的知识不会在碎片化的时间里能得到,在碎片化的时间里,得到的最多就是一些茶余饭后的八卦新闻。但是我们还是需要利用好碎片时间,系统化的利用碎片时间。比如最近在学习linux的命令,那么应该是这一段时期内的所有碎片时间,都围绕这一个主题进行。静下来的几分钟内,看看之前做的笔记,或者回顾一个命令的使用。
二. 工具的使用
我的初中生物老师告诉我:人和动物最大的区别在于人会使用工具。
我们人类最初的知识还只是通过口口相传,记录在每个人的大脑里;然后发明了文字、笔、纸,记录在甲骨、竹简、纸上;现在我们把所有的资料都记录在电脑和手机里。
我认为在技术学习中,需要重点关注和使用的工具有:
- 各技术项目的官方网站和官方文档和技术论坛。
- 专门的教程网站(比如w3schools.com和各种视频教程网站等)
- Google等搜索引擎
- github,看源码和搜issue
- stackoverflow.com, segmentfault.com等问答网站
- 有道词典,对于我来说,当前有些单词还是需要词典来帮助
- 人,比自己优秀的人,行业内的牛人。但是请不要轻易的打扰他们,牛人也有自己更多更重要的事情做。
这里我需要特别说一下搜索引擎:
- 发现问题,通过日志和报错信息
- 分析问题,分析报错日志的内容
- 提炼关键字,提炼出关键信息
- 搜索技巧,搜索特定内容
比如我刚刚遇到的这个问题:
然后我们进行的搜索为:
本身来说,如果说要解决这个问题,应该是不用动用搜索引擎的,因为对应的报错日志已经很清楚的告诉了我们报错的位置和报错的原因。直接把对应的ssh配置项内的 GSSAPIAuthentication yes 注释即可。如果只是要解决这个问题,其实直接这么久解决了。但是我们有没有去再深入一点点去思考,什么是GSSAPIAuthentication?为什么注释这个配置就可以了呢?在什么情况下要使用这个配置呢?这个就算是我留给大家的作业啦。
关于提问的艺术,强烈建议阅读《How To Ask Questions The Smart Way》
用好我们的工具,并不是说我们拿着顶配的电脑,就能写出最棒的代码,而在于使用工具的人。
三. 思考与总结
记录笔记真的是一个很棒的习惯,但是我要提醒我们所有人的是:不是复制粘帖到我们的笔记本中,这个知识点我们就学会了。我们要提升自己,就要从不自欺欺人开始,诚实的面对自己。
思考是我们大脑的一个过滤分析器,当我们接收到外部的信息的时候,我们并不是一股脑儿全部接收然后堆在大脑的某个地方。其实脑容量也就那么大,存不下多少东西。这时候就需要我们把信息进行整理,分门别类的放置在不同的区域,那些不用的东西弃之即可。
子曾经曰过:“学而不思则罔,思而不学则殆。”孔子的大部分话还是经得起时间的考验的。比如我们对于linux命令的学习,几乎所有的命令都会有-v和-h的选项,那我们有没有想过,为什么是-v和-h呢?原来是verbose和help的简称。那我们推论其他的选项也是一些单词的简称,方便记忆又提高了命令输入的效率。
总结是思考的升华,将经过思考的内容,整理成自己的语言;将外部杂乱零碎的知识点,拧成一条线,编织为结构化的知识面,经过思考然后总结出来的东西,才能算是属于自己的知识。
我们经常听说的一句话是总结经验,所以我们是以当前的经历和知识进行总结,为以后的事情进行指导。所以总结是为了将来服务。
所以写技术博客和写文档,对我们当前来说,绝对是最好的思考和总结的体现。
四. 不断的练习
纸上觉来终觉浅,绝知此事要躬行。
从1年级开始写作文,到高考的时候,我们还在写作文。为什么我们需要学习这门久的时间?一个是因为我们需要学习的东西实在太多了,另外一个是因为我们需要不断的练习。学习是一个循序渐进的过程,需要时间。
做开发或做运维,就像上写作文一样。小学的时候,我们只写一写日记,谈一谈理想,写个一到两百字就交差了。然后长大了,我们需要写至少800字的文章和大学里动辄上万字的关于某个主题的论文。一开始我们用这个语言写一些小功能,然后再慢慢的用她完成一件大的系统建设。
我们都知道科比有个关于凌晨4点的洛杉矶的梗,他在自己的自传《The Mamba Mentality: How I Play》(有中文版,《曼巴精神:科比自传》)中专门进行了解释:“我的午夜特训是有意为之,是平衡事业和家庭的折中选择! 我一直认为,如果提早开始工作,每天能练得更多,如果训练从上午11点开始,练几个小时,休息4个小时,下一次训练只能安排在下午5:00到7:00。但是如果从早上5:00练到7:00,就能在上午11.00到下午2.00、下午6.00到8:00各练一次。早点开工,每天就能多一次完整训练。一个夏天下来,能累积多练无数个小时。这也是我凌晨四点起床的原因。”
虽然我不相信《一万小时理论》的只要付出1万小时就可以获得某项专业能力,但是在技术学习的道路上,使用科学的方法和不断的练习一定是成功之路上不可缺少的必要途径。
五. 拓展和延伸
在技术学习这条道路上,我们要紧紧抓住技术学习这根主弦。同时,我们也需要保持清醒的头脑,不能唯技术论,要明白技术是为了业务服务,以及技术的使用场景。
我们需要以不同的角度去观看这个世界,理解别人的立场。和技术人员打交道比较多的,有可能是产品经理、设计师、运营人员,也有可能是老板等,大家既然是在一个公司里,那么其实都是为了公司业务更好的运行,站在他们的角度去想想这个功能点背后的需求动机,也可以站在用户的角度去看看这个产品,提出自己最中肯的建议,做出自己应有的技术水平的产品出来。
做为运维的我,需要解决开发提出的各种环境安装需求,需要帮助他们分析和解决遇到的各种故障,需要研究各种自动化脚本和工具。这些需要我们不断的去研究和实践,扩展我们作为一个运维人应该有的知识的广度。同时我觉得这也适用于我们所有的技术人员:开发、测试、前端、产品等等。
提升我们人生的广度。多看书看好书,不一定是技术领域的书籍,也可以看看哲学、思辨类的书籍,训练自己的逻辑思考能力。也可以看看历史书籍,从历史的长度去看社会的起起伏伏。具体该怎么读书,建议可以去找找俞敏洪读书的文章。当然我们的科技大佬比如扎克伯格还有比尔盖茨每年都有自己的书单,有兴趣的小伙伴也可以去翻看。
保持对技术前沿的敏锐。我们有时候就是喜欢守旧,熟悉的东西不愿意做一点点改变。现在这个世界已经不再是可以一招鲜吃天下了,看看旧时代的瓦匠、木匠被新时代新技术取代了,我们不进步,下一个淘汰的就是我们。从我入行运维来说,我从最开始的FreeBSD,到后面公司使用centos 5,centos 6,再到现在使用的centos 7,以至于去年就出来的centos 8,短短10年,经历了4-5代的技术演进。
文章溯源:https://www.liaoyongfu.com/2020/03/e0fb031f-da4b-4caa-973b-2f6dcf3542ee/
人生如逆水行舟,不进则退。
来源:oschina
链接:https://my.oschina.net/foreverich/blog/3191079