重新认识基础知识
最近在听陈皓(网名左耳朵耗子)的技术专栏,他是一个技术大牛,在亚马逊和阿里担任过架构师,对分布式有非常深入的理解和研究,他不仅技术好,文笔也非常不错,写了很多有深度的文章,在文章中分享了很多他的工作经验和对问题、技术深刻的思考,他在技术领导力这篇文章中提到了基础知识的重要性,给我启发很大,万丈高楼平地起,扎实掌握那些基础知识,更容易融会贯通,因为很多复杂的技术都是由多个简单易懂的基础知识组合在一起,或者以某项技术为基础,进行改造和创新,解决某一些特定的问题。作为一个技术人员他认为,基础知识主要分为编程和系统两个部分,编程又分成编语言、编程范式、算法和数据结构。系统部分分为计算机系统原理,操作系统原理和基础、网络基础、数据库原理、分布式技术架构,这些基础知识不能速成,需要长期的积累。
重新回归基础知识
自己最近在按照左耳朵耗子的建议,重新学习上文提到的基础知识,网络知识自认为学的很不够,有必要重新学习,最近刚读完《图解HTTP》,让我对HTTP超文本传输协议,有了一些新的认识。用户通过浏览器,向服务器发送一次请求,整个过程到底是怎么进行的?客户端发送请求,从应用层->传输层->网络层->数据链路层。服务端通过数据链路层->网络层->传输层->应用层,接受用户的请求,经过业务逻辑处理,按照用户的要求,返回用户想要的结果。响应过程刚好和请求的过程相反。在数据传输的过程使用到了TCP协议,TCP协议过程又经历了三次握手和四次挥手。Http从1.0到1.1,有很多进行了改善,从短连接到持久连接,http2.0也正在路上,从持久连接到长连接,能有效解决建立连接,耗时较长,性能较低的问题。https是在http协议上的一种扩展,在应用层和传输层,增加了SSL证书,保证客户端和服务器端的通信安全,防止请求被恶意用户劫持。《图解HTTP》通俗易懂,有兴趣的朋友可以读读这本书。
基础扎实的优势
一个人相关职业的基础知识如果足够扎实,会显得更加专业,表达他们观点的时候会把这些基础知识作为自己的依据,更具有说服力。基础扎实的人更容易值得人信赖,稳扎稳打更让人踏实放心。基础扎实的人和公司更抗风险,不会因为一次的幸运,而心存侥幸,就像这次互联网泡沫破灭,大潮退去,就很容易看出谁在裸泳,那些借助资本力量做高估值,而不真正为用户解决问题或者提高效率的公司,更容易被淘汰。基础扎实的人更容易脱颖而出,尤其是在面试的过程中,面试内容很大部分都是基础知识,基础知识是长期积累的不是一天两天能够速成的,临时抱佛脚有一些作用,效果不会太明显。
学习的基础方法
以上提到的内容都是具体知识的学习,其实更应该学习学习再学习,中间的学习是名词,前后的学习是动词,学的不只是知识,更应该是方法论,学习我认为主要分三个阶段,输入、内化、输出,输入比如看一本书、看一篇技术博客文章,内化过程需要自己去理解知识的内容,输出是将知识与他人分享或者运用到实践中去,同时举一反三,思考还有哪些场景可以使用。每个过程都可以借助一些工具或者方式方法,来辅助完成,输入阶段可以通过做笔记的方式,我喜欢使用xmind,整理思维导图笔记。内化阶段可以通过网络查找不理解的知识点,或者通过身边的人进行讨论。输出阶段可以通过公司内部分享或者写公众号文章等手段,这样能让你自己记忆更深刻,也方便自己重新查阅。
一幢大楼的高度决定于地基的牢固程度,一个人的发展决定于基础技能的扎实程度。工作中需要各种各样的能力,技术能力、沟通能力、管理能力、协调能力等,每种能力背后都有其根本的知识理论,这些理论很抽象,也更容易产生创新。就像查理芒格多元化的思维模型的基础是重要学科的重要理论,以上是我对基础知识的一些看法,希望对你有所帮助。