学习无尽头。“够用就好”是最实用的判断准则。剩下的就看自己的追求了。越往底层发展离业务就越远。
假如有这么一个故事的发展历程:Java客户端应用开发 -> Java服务器端应用开发 -> Java库/框架开发 -> Java监控、性能调优工具开发 -> JVM开发 -> 编译器/GC/多线程并发库开发 -> 操作系统开发 -> Hypervisor开发 -> 硬件开发…或者中间过程变一变,在经历库/框架开发之后 -> Java IDE开发 -> 对Java语言绝望了自己研发JVM上的新编程语言(包括新语言的编译器和标准库) -> 对JVM绝望了自己研发新语言配新虚拟机(包括GC、线程模型之类) -> 对虚拟机绝望了自己研发独立(standalone)的编程语言(包括内存模型之类) -> 操作系统开发 。
这是绝对无止境的。这种路线走到最后恐怕还是得发现最缺的就是钱,所以不如去做金融来多赚点钱去开公司让牛逼员工去研发各种新奇技术好了,说到底要想向底层发展纯做技术的话那就是兴趣有多大就能走多深。这不需要问别人学到多深多广才是好,自己肯定能感觉到。如果不是兴趣驱动而是为了赚钱的话还是别纯做技术的好…另外再提一句:多数东西都是使用比实现更容易,而且不是在一个级别上的。
前面提到“流行框架”“底层API”都是说“是不是熟练使用就算学好了”,从实用角度说如果只需要用这些东西的话那确实只要会用就够了。但是要彻底理解其机理那肯定是自己深入参与到其中的研发才是硬道理。至于有没有必要这么深入,还是前面说的,看兴趣和需要到没到那一步。(不得不说确实有用起来“似乎”比实现起来还麻烦的东西,所以大家才会不断重复造那些轮子。
如果不涉及业务的话Java的阶段其实还挺好划分的
1、刚工作阶段会用JDBC连数据库了,配置上写Strus、Struts2、Hibernate、MyBatis、Ibitis、Spring这些进行基本的增删改查
2、涉及到通信和多线程了,什么WebService、Socket种种
3、涉及到设计模式了,这个时候敲代码的比重比较少,一般都是花很长的时间进行设计,例如画UML
4、涉及到JVM和上面提到的框架的调优与定制,与DB端联合提高QPS什么的
技术自然是由上至下的,但是并不是说哪个就一定好,例如你在第一个阶段技术不是特别突出,但是你可以和领导跑业务,吃饭喝酒吹牛逼什么的,你可以混的风生水起,或者你JVM调的可明白了。
为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要入门的资料欢迎加入学习交流群:9285,05736
网友评论