作为程序员,你必须理解这些有关计算机的知识存储—-块设备,文献系统,集群文献系统,分布式文献系统,光纤SCSI,iSCSI,RAID 等。网络—-以太网,光纤网,蜂窝网络,WIFI,VLAN 等。计算机体系构造,重要就是 CPU 指令集。x86,ARM 等。USB 协议。需要懂得 URB 包。PCI 协议,PCI-E 协议。现代计算机的外设都是 PCI 协议和 PCI-E 协议的。显卡目前全是通过 PCI-E 协议连接到计算机上的。相对来说减少了诸多需要学习的知识。搞虚拟化就需要深入掌握 PCI 协议。图像处理–图像压缩,视频实时编码等。3D 游戏关系数据库NoSQL 数据库操作系统分布式操作系统编译原理机器学习–目前大数据要用哦!理解这些领域知识,也包括理解该领域既有的商用硬件、商用软件和开源软件。诸多时候,你要完毕的工作,已经有现成的工具了。你只要使用现成的工具就可以完毕任务,不需要进行开发。有时候,只需要组合既有的工具,写某些脚本就可以完毕任务。如,我一次要实现一种双向同步任务。找到了一种优秀的开源软件Unison,编写一下配置文献就圆满地完毕了任务。不需要编写任何代码。尚有一次,要做高可用,用 Python 调用了几种开源软件就轻松实现了。编写安装程序,定制操作系统,懂得了操作系统的领域知识,写几行脚本就可以轻松搞定。不具有领域知识的人,就也许不得不进行大量无谓的开发,甚至开发很久之后才发现,这主线就是一条死路。此外,扎实的领域知识,可以大大提高编程调试、查错的能力。懂得编译器和编程语言运行时工作原理,就能迅速根据编译错误和警告信息修改代码。懂得操作系统底层运行机制,就能迅速找到运行时错误的问题本源。如,有一次我编写一种 windows 升级服务程序。它是一种 windows服务,需要执行 dos 脚本,这个脚本会替代掉这个 windows 服务自身。发既有时脚本执行无效,查了一晚上,发现当 windows 服务安装后,第一次启动就执行脚本时就会有权限问题,log 都对的,但实际执行这个脚本没有任何效果。但一旦 windows 服务程序启动一次之后就 ok。这必然是 windows 操作系统底层安全机制的问题,由于我对 Windows 内核理解不多,因此花了很长时间才发现这个问题,并对导致这个问题的本源并不清晰。0 段—领域知识菜鸟对领域知识没有多少认知,通过搜索引擎找到某些该领域的软件和硬件的简介性文章,按照文章指示配置和使用软件。勉强可以使用既有软硬件。1 段—领域知识行家理解领域内常用硬...