本周读了周志明老师的《深入理解java虚拟机:JVM高级特性与最佳实践》,但是说来惭愧,一周的时间,读了不超过一百页,而且在这个过程中感觉到因为不了解,所以很难保持足够的热情坚持下去,曾经认为熟悉的java语言仿佛变得格外陌生。这样的阅读体验不禁让我对自己有了很多反思。
首先对自己进行定位,读得艰难的唯一原因就是对java这门语言的掌握不够深入,目前所处的技术高度不足以支持对这本书的理解。
回首自己的编程学习之路,从最开始接触java的大一算起,到如今我学习与使用java也有四年了。从最初只是简单地学习语法,会写一个“Hello World”程序,会用java写小程序解决一些算法问题,到后来自学了Struts2、Spring和Hibernate三大框架,开始学会做Web应用,同时接触了Android应用开发,似乎和java沾边的许多方面都接触到了,看起来也似乎是对java有了一定的了解与体会。
对于这个过程,我自我总结为技术能力从第一个阶段跨入了第二阶段。何谓第一阶段?在那个时候,java程序开发的理论课能考个90多分,课程设计的时候也能拿个优秀,一些基本的小程序也都可以动手试试,可是内心还是止不住地有一种惶恐和焦虑。我感到很迷茫,看着学长们开发网站,制作手机APP,参加竞赛,拿国家级奖项,心向往之,然而就是身不能至。模模糊糊地看到了一个方向,可就是不知道路该怎么走,始终处在不得其门而入的状态。就好像是看到了一座水晶宫殿,为它的华丽而折服,可就是找到进去的大门,始终在宫殿的外围打转。这就是我的第一阶段,总结起来就是三个字,不得法。
这种迷茫持续了大二一年的时间。终于在大二暑假的时候我找到了自己当时最大的问题所在是所图太大,想做到的事情太多,导致的结果就是所学杂而不精。于是痛下决心,决定把一门技术作为切入点,先深扎进去,找到进门的途径,再考虑向周边扩散。那年暑假留在学校,忍受着南京三四十度的高温和没有空调的宿舍,我坚持每天至少八小时的学习时间专心学习javaweb开发技术。印象最深刻的是那时白天坐在桌前,不住地淌汗,一天要洗好多次澡,而晚上打地铺睡觉,依然热得难以入睡。辛苦了一个暑假,终于有了收货,我对javaweb开发技术有了一定的了解,掌握了SSH三大框架,终于可以开始做一些“有实际意义的事情”。而就在那时,我清楚地感受到,之前久久不得入的那道壁障,我真的越过了。于是进入了第二阶段,这一总结起来就是,可以做一些事情了。
一法通而万法通。最让我感觉到已经找到一些门路的一件事是,我后来又去自学Android开发,这次只学了一周左右,然后就用了一个月时间开发出了自己的第一个Android应用,一个基于百度地图的记事本(当然,Android技术易学难精,入门容易,想做出好的应用其实十分不易,而我做到的也不过就是能做一个最基本的,类似玩具的一样的东西)。
再后来就是项目经验和代码量的积累过程。整个本科期间,前前后后开发过若干个web应用,也做过一些Android APP,收获了一些专业比赛的奖项,也收获了大概三四万行的代码量以及调试bug的一些经验。
然而,再往后走,就到了如今的境地。现在的感觉是,虽然做了很多东西,做了很多事情,但是扪心自问,有本质上的提升吗?必须实话实说:没有。学习了SSH(后来又添了SpringMVC)框架,会用框架开发网页,然而框架为我们屏蔽了许多底层的复杂逻辑,那么又对框架的深层的内在的思想了解多少呢?应该说,知之甚少。对Spring的面向切面编程、依赖注入和控制反转的思想只是有个模糊的印象;读了很多次介绍23种设计模式的书,对常用的几种模式可以大概讲讲思路,然而似乎从没有在项目实践中真正地用过任何一种(貌似单例模式还是试着用过的)。最近一段时间因为项目的需要又在学习使用Python以及Django,然而对Django的内涵也几乎不了解……于是现在所处的这个阶段,似乎应该形容为:尴尬。
一直在思考一个问题:我的核心竞争力在哪里?觉得很多大牛说的话非常有道理,无论在哪个行业,职场中想提高自己,就要让自己无可取代,如果可以取代,至少要让自己被取代的代价高一点。在这个话题里,我觉得对于一个程序员来说提高不可替代性的其中非常重要的一点是要精通一门语言。当然了,敢说精通口气太大,但始终觉得要朝着这个方向去努力,努力地去挖出一门语言更深层的东西。如果真的能对一门语言了如指掌,相信再学习其他的语言也不会是多么困难的事情。
于是处在尴尬的第二阶段的我想到的继续上升的方法是回归语言本身,去研究语言,去努力地掌握语言,当对基本的编程语言有更深的了解之后,我相信我会看到更多东西。欲穷千里目,更上一层楼。
技术的积累与提高就像是我放在文首的那幅图,永远是一个螺旋上升的过程,我们总要一点一点地去积累,一点一点地向上。这就像网络小说里说的修炼升级一样,积累一段时间后遇到瓶颈,而突破了瓶颈又是更高的等级。这样想,仿佛也是乐在其中了。
还记得高中时候的物理选修书的序言,作者期待学子们能有朝一日拍着那本书说“编者还需费思量”,我们的程序员修炼之路也是一样的,提高与超越应该成为我们永远的追求,也会是我们的乐趣所在。感谢周志明老师给我的启迪,路漫漫其修远兮,我们还要重新上路,期待下一次的破关升级。