因为他们只教了JAVA。
我常常在我司我部门例行架构师会议上问一个问题:TMD最近又出了什么新技术?
JAVA的世界和别的语言最大的区别就是生态太复杂。在一个JAVA完整生态当中,JAVA语言相关的内容非常少,大约只有三分之一。而大学和培训班教JAVA,80%都围绕JDK开展。这导致大部分没有工作经验的JAVA程序员进了行当以后,常常觉得自己啥都没学过一样。
JAVA语言本身,也就是你在IDE里面写下的代码,大约只占JAVA世界的50%,这还包括了培训班和学校肯定不会教的高级编程技巧,比如更好的代码结构,比如更优的性能,比如更好的扩展性和如何避免过度设计。在学校和培训班,只教一种,把功能做出来。把功能做出来,只占真正的JAVA开发的30%左右。
在代码之上,还有类库的熟悉和选择。还有集成层的选择。这些还都只是在JVM内的东西,加上JVM本身的设置,调优,勉强可以算“JAVA的东西”。当然,还有就是脱胎于JAVA但是目前事实上已经被公认成为独立分支的安卓编程。
在这之上,容器的东西,还可以勉强算上“和JAVA强耦合的东西”,比较大部分JAVA容器比如jboss,WL,WS都是需要相当程度的JAVA相关知识的。
再以外,还存在很多很多内容,可以说,是完全JAVA无关,但是在一个JAVA项目当中是必不可少的部分。比如最重的像是数据库,数据库本身就是一个非常大的知识点只是其中最简单容易的部分。还有ESB,或者它的弱化版本integration hub。在云已经成为常识的情况下,容器化技术,serverless技术,以及B/S系统绕不开的用户验证CAS/LDAP技术,都是JAVA项目必须但是和J