本文内容: 1、为什么我们不喜欢在官网查资料? 2、为什么要优先从官网查资料? 3、如何上手? |
作为一名程序员,学会从官方文档查资料,就像学会查字典一样,是一项必备且终身受益的技能。
|| 为什么我们不喜欢在官网查资料?
| 英语水平差,看不懂
我们工作中用到的技术,从编程语言到各种框架,绝大多数都起源于欧美,英语又是全球通用语言,再加上IT圈的开源、无国界理念,所以官方的技术文档也都以英语为主。就拿dubbo来说吧,现在默认的语言也是英语。
我们苦苦学了十几年的英语,到头来却发现连一份使用说明书都看不懂。很多人觉得是自己英语水平差,所以看不懂。其实不是这样的,不管你英语几级,我们在学校学的基本都是为了应付考试,主要掌握的也都是日常生活中的高频词汇。IT属于专业领域,有很多领域内的专业词汇,我们看不懂太正常了。
| 费时费力
每当我们遇到需要查资料解决的问题时,一般都是比较紧急的,可能在百度上10分钟就能找到答案的问题,从官网一个小时也不一定能找到答案,所以自然而然的就会放弃这个费时费力的途径。
| 一入行就养成了一个坏习惯
不管是在学校还是在工作中,身边大多数人都是从百度查问题。熟悉的搜索习惯,熟悉的母语,还有和自己遇到的一模一样的问题。再加上前面提到的两点困难,我们很容易就习惯了有问题先百度,找不到答案再考虑其他途径。
|| 为什么要优先从官网查资料?
| 权威、及时
自家的技术,配上自家编写说明书,再权威不过了。
就跟我们获取新闻一样,我们都知道从权威媒体、官方信息披露平台获取到的信息才真实可靠,那些非主流媒体、山寨公号微博经常散布虚假错误信息。
平时搜索出来的一些资料,可能经过几手的翻译,再加上每个人自己的理解,很有可能就给你传递出了错误的信息。
最新版本的改动,也会第一时间公布在官网的。如果你是一个尝新客,肯定要在官网获取第一手的资料,当然也包含一手的bug修复信息。
| 少走弯路
相信大家在搭建环境,或者安装某个软件的时候,都遇到过各种奇葩的问题。百度出来一堆答案,现象都一样,但原因各不同,往往尝试很多方案也没能解决。因为很多网友在共享经验的时候没有说明自己的环境信息、版本信息,所以对他有效的方法,不一定能解决你的问题。有时候我们会偶尔发现,原来在官网披露的信息中,或者官网的问题集锦中有我之前遇到的某个问题的解决方法。
尤其是新上手一门技术,官网都有快速上手的小例子,而且一般都是最新的版本。按照官方的指引入手,几乎都能成功。而百度出来的不一定是几年前的版本了。
下面通过几道面试题,说说官网文档的重要性:
面试题一:说说IoC和DI的区别。
说实话到现在我也没记住所谓的标准答案,有的说IoC是目的,DI是手段....具体能百度出多少种说法,大家自己可以百度一下看看。
我想说的是,在Spring官方文档讲IoC的这一节中,开篇就回答了这个问题。
面试题二:SpringBoot是如何做到零配置的?
这个题目本身传递的信息就是错的,我最开始也认为是和题目一样,因为SpringBoot刚火的时候,铺天盖地的文章都在讲SpringBoot是如何干掉配置文件的。但是当我知道官网文档中的这段描述时候,我就变的不淡定了...
具体用法从 @Configuration点进去就能看到。
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html
面试题三:MySQL中(默认InnoDB)count(*) 和 count(1)哪个更快?
你还在纠结这个问题吗?看看官网给出的答案
https://dev.mysql.com/doc/refman/5.7/en/aggregate-functions.html#function_count
如果这些还不能说服你的话,那就看下一条。 |
| 装B
这点就不用过多解释了。
|| 如何上手
| 了解文档所在的位置、结构
首先要知道官网的网址吧,技术网站的官网一般都是自己主打产品的名字+域名( .com、.io),总结为两类官网:
一种是有自己独立网站的:
https://spring.io/
https://www.mysql.com/
一种是归属于某个组织的(像apache这种)
http://dubbo.apache.org/
http://maven.apache.org/
实在懵不对就百度一下。
首页有很多东西,如何找到技术文档呢?
一般都在首页的 products、documentations(docs)、support、learning等菜单下面。
像Java的在 Support -> Documentation -> Java
Spring的在Projects -> 对应的模块内
MySQL的在 Documentation -> 对应的模块内
| 确定版本、环境
很多文档是和版本和环境(主要是指操作系统)相关联的,一定要先确认好你所使用软件版本。
小版本的差异还好,如果大版本错了,可能你要找的功能已经废弃了,在新版本的文档中肯定找不到了。尤其在查找边缘的小功能的时候一定要把版本的因素考虑进去。
比如你要设置JDK8永久代的大小,8.0之前的文档中你会搜到-XX:PermSize=size(bytes),但是设置了发现也不生效,运行结果和官网都已告诉用户这个参数在8.0已经废弃。如果是线上的配置错了,很有可能造成严重后果。
| 缩小查找范围
首先要了解文档的目录,大概分了哪几个模块。
以MySQL为例,
1) DATETIME 和 TIMESTAMP的区别?
2) 删除索引怎么删?
首先要能根据现有的知识对问题分类,1) 应该是属于数据类型的范畴,2) 应该属于SQL语法的范畴。然后再从目录中找有没有类似的目录,如果碰巧有,直接在对应的目录内去查找会快很多。
| 充分利用搜索功能
搜索可以分为两种:
一种是文档自带的搜索功能 (也不知道不提供搜索功能的公司是怎么想的) ,适用于页面多,单页内容少的文档。还拿MySQL举例,搜索到的第一条就是想要的结果。
另一种是浏览器的搜索功能,可以快速定位到要查找的内容,适用于有海量信息的页面。以Spring的文档为例:
| 用好翻译工具
查到需要的内容之后,发现很多单词都不认识,就算单词认识,整句话的意思也是一知半解。记住我们的目的是要解决手头的问题,不是背单词考试。看不懂的就用有道词典翻译一下。
有些浏览器也支持整页翻译,但是不建议一直使用这种方式。
|| 总结
1、当然也不是什么事情都要从官网查,能快速准确的解决问题就行
2、下意识的慢慢培养这个习惯
3、克服恐惧心理,迈过这个槛就畅通无阻了
4、实在不行,就找找中文版的,开心就好