南昌市建设监督网站站长,龙岗住房建设局网站,小黄人seo,工程建设标准强制性条文简历和自我介绍上经常能够读到“精通Java”这样的话#xff0c;有人和我说#xff0c;精通Java的人太多了#xff0c;精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗#xff1f;对于语言的学习#xff0c;我有一种观点#xff0c;一是纵向#xff0c;即… 简历和自我介绍上经常能够读到“精通Java”这样的话有人和我说精通Java的人太多了精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗对于语言的学习我有一种观点一是纵向即要选择一门自己认为合适的语言学到有相当的深度。二在于横向即要学习不同类型、不同历史和不同门派的语言既有底层的语言也有高级语言接触一些动态语言、函数式语言了解一些不同语言的编程范型和编程方式比如基于原型编程、面向切面编程、命令式编程等等最好能关注一门年纪尚浅甚至小众的语言了解一门语言的发展。横向类比能够带来对一门语言的不同认识但是有广度而没有深度的专家是可笑的深入地学习一门语言是不可缺少的。就以Java为例依我看来至少有这样几个递进的过程语法语义。这是最基础的部分都说Java简单语法容易学习但是真要细说起一些细节来也真够我啰嗦了。我见过一些所谓的“精通Java”的人他们却不知道strictfp关键字说不清volatile和transient的作用不知道怎么去定义一个注解(interface)。你觉得这些要求苛刻吗对这些以“精通”要求自己的人。熟悉语言的应用范围。不同的语言有不同的擅长应用领域。就像想用Java去写操作系统或底层代码是多么不靠谱一样在这个过程中应当熟悉语言的优势劣势这里你自己会提出自己的见解。譬如Java最NB的地方在哪里跨平台可是很多语言都可以跨平台开源那开源的语言多了去了高性能的虚拟机包括先进的编译解释优化技术还是那么多用Java实现的类库、框架呢把那些用Java实现的类库和框架脱离出Java语言本身来归类未必是恰当的。熟悉Java就必须阅读许多类库和框架的源码。学习语言的实现机制。就像精通Java的程序员需要了解Java虚拟机一样也许不需要对虚拟机规范一清二楚但是起码要知道CAFE BABE吧起码要了解JIT的机制吧起码要明白垃圾回收策略中的CMS吧起码要能尝试自己编译一把JDK吧起码要能去定位那些无响应的Java程序问题吧在这个过程中从了解一门语言将逐渐进化到去了解一门语言所处的平台。整理语言发展的历史。为什么学习编程语言也要关注它的历史因为去了解一门语言的发展历史(比如这篇关于Java多线程编程的历史)可以明白在这过程中碰了什么壁、犯过什么错、有哪些大的变更学过别人家什么东西……这对于分析现今这门语言与其他语言的碰撞、展望一门语言的未来大有益处。在这个过程中会不由自主地将其和不同时期的其他语言比较。如果给你一次重新设计这门语言的机会你一定能够提出不少改善的意见来。我从来不相信精通Java是一件容易实现的事情。有一股风潮说搞底层研究的人看不起搞上层业务的人写C的人认为写Java的人没水平做后台的人觉得做前台的没技术含量……我说何必呢技术无贵贱只是专注的领域不同而已。