老王正式工作快10年了,前一段时间有幸去给母校的学弟学妹们聊了聊人生和理想。回来以后,有学弟学妹问我该如何学习。老王于是很认真的思索了这个问题。后来做了这样一个假设:如果让我讲讲所熟悉的互联网技术体系架构如何学,我该怎样讲?
老王顿时觉得有些紧张,虽然在二百(百度和百词斩)做了不少关于互联网Server的工作,也做过一些总结,但是这个话题实在太大太深厚了,要聊的东西实在太多(百度搜索“互联网服务端技术”的结果大约700万条),需要有相当的积累。老王是一个做技术的人,不太喜欢复杂和虚幻的东东,凡事都喜欢把问题往简单实在了想和做(Linus said:Talk is cheap. Show me the code.),于是赶紧摸出小本本,开始边想边画,思索有没有相对比较简单的方法把这个事情说清楚。经过好几天的思考和修改,画出了以下的一张图(以下的图只代表老王自己的观点,由于眼界和阅历有限,如有不妥,请指正~)。
在老王的思维里,要学习互联网服务端的技术知识,在广度上,以上的东东大体涵盖了相关内容;在深度上,根据要求不一样,对于上述内容学习的程度会有不同。比如,如果你是个人web服务业务的研发人员,可能只需要对编程语言、框架和数据库有一定了解并能运用就可以了;如果是一个大型购物网站的架构师,可能以上内容都需要比较深入的研究。
好了,有了这个蓝图,老王想接下来细细讲讲每一个部分的内容。每一部分内容,老王都准备分成:初级、中级、高级三个级别的能力要求来分析。如果愿意,跟着老王一起来吧~
·语言(language)
我把语言放在了所有这些的首位,因为语言是做一切的基础,他是你表达你内心思维的手段。老王经常打比方,语言好比就是武侠里面的各种剑法、掌法……你要把你的内功心法表达出来,需要通过他们来落地。
现在流行的语言很多,c/c++、 java、 php、 c#、 obj-c、 python、</