`

你真的精通Java吗?

阅读更多

 

简历和自我介绍上经常能够读到“精通Java”这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗?

对于语言的学习,我有一种观点,一是纵向,即要选择一门自己认为合适的语言学到有相当的深度。二在于横向,即要学习不同类型、不同历史和不同门派的语言:

  1. 既有底层的语言,也有高级语言;
  2. 接触一些动态语言、函数式语言;
  3. 了解一些不同语言的编程范型和编程方式,比如基于原型编程、面向切面编程、命令式编程等等;
  4. 最好能关注一门年纪尚浅,甚至小众的语言,了解一门语言的发展。

横向类比能够带来对一门语言的不同认识,但是,有广度而没有深度的专家是可笑的,深入地学习一门语言是不可缺少的。就以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的人没水平,做后台的人觉得做前台的没技术含量……我说,何必呢?

技术无贵贱,只是专注的领域不同而已。

文章系本人原创,转载请注明作者和出处(http://www.raychase.net

注:本博客已经迁移到个人站点 http://www.raychase.net/ ,欢迎大家访问收藏,本ITEye博客在数日后将不再更新。

25
8
分享到:
评论
31 楼 usiboy 2012-10-17  
我觉得,无论是什么样的编程语言,还是什么样的技术,这些只是你去实现一个目标的工具。最重要的是你运用这些工具能达到一个什么样的结果,正如楼主所说,“不同的语言有不同的擅长应用领域。就像想用Java去写操作系统或底层代码是多么不靠谱一样”,我也想补充一点,多点创新,多点思考,比你精通一门语言有益的多,但不是说不去精通他,而是这个过程需要如何的经历。这个世界没有绝对的,如果你是一个打工的,你必须得有一技之长,当发展目标需要明确,这决定着你如何去接收各种各样的知识,甚至是你的思考方式。而对于创业的人,那么看的问题已经不是仅仅能够精通一门语言来看待了。我还是比较赞同楼主的观点。支持一下
30 楼 javaroom 2012-10-04  
没别的意思,讨论嘛,各抒己见,对LZ的观点,我还是赞同的,奈何国情如此,悲哉
29 楼 anyasir 2012-10-03  
不知道怎么说
我就是从不写精通的
大学主修java编程
工作也三年多了 真不敢说精通java 简历也从不写精通java 甚至从没提到过“精通”二字 结果是很明显的:面试被刷掉的概率很高;进了公司你会发现,周围的同事有的在编程方面跟你差不多 而有的甚至不如你 可你的薪水就是没别人高
28 楼 ywblove1024 2012-10-03  
个人觉得有点钻牛角尖了~只是个人看法
27 楼 ssy341 2012-10-03  
很赞同作者某些观点,但某些观点也偏激了,学习了,谢谢,还有你的另一个窝打开的速度不是很快开始以为宕了
26 楼 w156445045 2012-10-03  
javaroom 写道
1、不写精通,简历筛选都过不去,能得到面试机会吗?
2、知道这些关键字的区别,就是精通吗?
3、请教java的优势在哪里?



其实你写了精通,结果面试的时候 你就蛋疼了。

其实,写熟练掌握比较好,

他们却不知道strictfp关键字,说不清volatile和transient的作用
这些 我也不知道。
25 楼 ray_linn 2012-10-03  
只要精通C#自然就精通java ,包括未来的版本
24 楼 javaroom 2012-10-03  
thinkaboutit 写道
都说技术无贵贱,专注的领域不同而已。何必因为不明白volatile和transient而说别人是新手呢。不是每个程序员都会用到这两个关键字的。

顶你!
23 楼 林晓盼 2012-10-03  
百年之后,谁又会去在乎当年说了啥话呢?生活不容易啊。
22 楼 PetriNet 2012-10-02  
一般写略懂一二,至今无面试机会
21 楼 风过后 2012-10-02  
[img][/img]
20 楼 johnson_x 2012-10-02  
kj


19 楼 337240552 2012-10-02  
wjm0729 写道
轻言精通的其实都是新手...
不过现在大多的HR都是外行,
不这么写还真连面试的机会都可能没有。
难为了我们的码农们

+1 大公司很少会招个初级程序员就要求精通的  只有xx公司喜欢招个初级java程序员就要求精通, 大家只好这么写了。。
18 楼 findjar 2012-10-02  
看小松说, 中国自古文人相轻, 谁也看不起谁。。。
17 楼 hfkiss44 2012-10-02  
是不是还需要了解下java是怎样用c++实现的呢  ?需不需要自己写个jdk才算精通呢?  能干事就行
16 楼 theoffspring 2012-10-02  
有几个人敢说真正精通,都是熟悉某一领域罢了,而且也没有必要熟悉每个点,因为你根本用不上。
15 楼 thinkaboutit 2012-10-02  
都说技术无贵贱,专注的领域不同而已。何必因为不明白volatile和transient而说别人是新手呢。不是每个程序员都会用到这两个关键字的。
14 楼 wjm0729 2012-10-01  
轻言精通的其实都是新手...
不过现在大多的HR都是外行,
不这么写还真连面试的机会都可能没有。
难为了我们的码农们
13 楼 zhangzhaoaaa 2012-10-01  
关注你啊!!
12 楼 penwei 2012-10-01  
精通了又如何。没有大神。。

相关推荐

    《精通Java中间件编程》源代码.doc

    《精通Java中间件编程》源代码.doc,《精通Java中间件编程》源代码.doc,《精通Java中间件编程》源代码.doc,《精通Java中间件编程》源代码.doc,《精通Java中间件编程》源代码.doc,《精通Java中间件编程》源代码.doc,...

    要想精通java必须看的经典书籍

    要想精通java必须看的经典书籍(强顶要想精通java必须看的经典书籍(强顶要想精通java必须看的经典书籍(强顶

    精通java核心技术

    《精通Java核心技术》是一本深度剖析Java编程语言的著作,旨在帮助读者无论是初学者还是专业人士,都能提升对Java核心技术的理解和应用能力。本书涵盖了广泛的知识点,旨在建立一个全面而深入的Java技术体系。 首先...

    从入门到精通java部全代码

    《从入门到精通Java全代码》是一本针对Java初学者精心编写的教程,旨在帮助读者逐步掌握这门广泛使用的编程语言。"明日科技"作为标签,暗示了这本书可能结合了现代编程理念和技术,以适应快速发展的IT行业。压缩包中...

    21天精通java

    【21天精通Java】是一本旨在帮助初学者在短时间内快速掌握Java编程的教程,适合对编程有一定兴趣但经验不足的“菜鸟”。该教程强调实践性,内容翔实,覆盖了从基础环境搭建到Web应用开发的全过程。 首先,学习Java...

    java从入门到精通PPT

    本资源“java从入门到精通PPT”提供了一套完整的Java学习路径,通过一系列PPT帮助初学者逐步掌握这门强大的语言。PPT的形式使得学习过程更加直观和易于理解,特别适合自学者进行系统性学习。 首先,Java入门阶段,...

    精通JavaJDK、数据库系统开发Web开发程序源文件

    这个压缩包文件的主题聚焦于“精通JavaJDK、数据库系统开发以及Web开发程序源文件”,这暗示了它包含了一系列用于学习和实践这三个核心领域的资源。下面我们将深入探讨这些关键知识点。 1. **JavaJDK**: JavaJDK...

    精通JAVA_SOCKET编程技术

    精通JAVA_SOCKET编程技术 在深入理解JAVA_SOCKET编程技术之前,我们首先需要明确Socket的基本概念及其在Java中的应用。Socket,即套接字,是网络通信的基础,它提供了一种在网络中进行数据交换的方式,使不同计算机...

    精通 Java_JDK

    Java JDK,全称为Java Development Kit,是Oracle公司提供的用于开发和运行Java应用程序的软件开发工具包。这个资源的目的是帮助开发者全面...通过不断学习和实践,你将能精通Java JDK,为你的编程生涯打下坚实的基础。

    精通java网络编程

    Java网络编程是开发分布式应用程序的关键技术,它涵盖了网络通信的所有...在"精通Java网络编程"的学习过程中,可能涉及的光盘资料可能包括源代码示例、实战项目、讲解视频等,这些都是加深理解和提升技能的有效资源。

    Java入门到精通完整教程+源码.zip

    本资源“Java入门到精通完整教程+源码.zip”提供了一个全面的学习路径,帮助初学者逐步掌握Java编程技能并进阶至精通。下面将详细解析这个压缩包中的学习内容。 首先,"Java1908-master"可能指的是2019年8月的一个...

    《精通JAVA核心技术》及源代码

    《精通JAVA核心技术》是一本深度探讨Java编程语言的著作,旨在帮助读者全面理解并掌握Java的核心概念和技术。这本书涵盖了从基础语法到高级特性的广泛内容,对于任何希望深入学习Java的开发者来说,都是一个宝贵的...

    21天精通java.rar

    《21天精通Java》是一本为初学者和有一定编程基础的人设计的Java教程,旨在通过21天的学习,帮助读者快速掌握Java编程的核心概念和技术。"21天"的概念源自于快速学习的理念,尽管这可能显得有些浮躁,但对那些时间...

    精通Java+JDK编程 随书光盘

    精通Java+JDK ,很多实例源码,适合JAVA初学者

    Java入门到精通pdf

    总的来说,《Java入门到精通》这本书全面覆盖了Java编程的基础和进阶知识,无论你是零基础的初学者还是希望深入学习的开发者,都能从中受益匪浅。通过系统的阅读和实践,你将能够掌握Java编程技能,为你的编程事业...

    21天精通Java(PDF格式)

    在《21天精通Java》中,你还将学习异常处理,这是一个处理程序运行时错误的重要机制。通过学习如何捕获和处理异常,你可以编写出更加健壮和稳定的代码。 文件I/O操作是任何编程语言都不可或缺的一部分。Java提供了...

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar

    精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....

    JAVA基础入门到精通pdf

    通过“JAVA基础入门到精通pdf”,你可以逐步掌握这些基础知识,并通过实践加深理解。记住,理论学习与实际编程相结合是学好Java的关键。不断练习,参与开源项目,你将逐渐精通这门强大的编程语言。

    精通Java--JDK、数据库系统开发、Web开发基础与实例

    《精通Java--JDK、数据库系统开发、Web开发基础与实例》是一本全面覆盖Java编程技术及应用实践的书籍。本书旨在帮助读者深入理解和熟练掌握Java语言,从基础到高级,从理论到实践,全方位提升Java开发技能。 首先,...

    精通JAVA WEB整合开发

    通过学习《精通JAVA WEB整合开发》中的内容,你将能够熟练掌握Java Web开发的核心技术,提升项目开发效率,并且能够应对复杂的业务需求。无论是初学者还是有一定经验的开发者,都能从中受益,进一步提升自己的技能...

Global site tag (gtag.js) - Google Analytics