细细数起来,从2003年11月算起的话,我接触移动嵌入式开发已经一年多了。而自己真正实际的第一个项目开发就是一个移动嵌入式的系统开发,包含了J2ME手机应用开发和PDA上WinCE平台下的EVC开发。而后,自己又独自设计和开发了一个PDA上的信息管理系统,虽然逻辑不是很复杂,却也是真切实在。因此可以说,之于移动开发,自己还是经历不少,也积累了一定的经验。
软件开发作为一个职业的话实际是一个矛盾的统一体,我们追求的是不变的东西,比如思想、过程、原理、算法,然而能够让我们生存的却恰恰是那些变化的东西,比如具体的开发平台,具体的开发工具,具体应用领域。原因很简单,要生存,要生活,就得工作,而工作的内容却正是这些变化的东西。可以说,对于一般的公司来说,最为重要的其实或许并不是技术本身,而会是对行业的渗透和垄断。当然不排除向Microsoft这样的系统通用软件霸主,以及如IBM那样的通用中间件软件大牛,而实际上,不说目前的中国特色,在这个星球上的总多的所谓的软件公司,恐怕也只能是靠具体行业应用混口饭吃而已。一个开发工程师,最后其实并不一定要求就是技术高手,而可能更多是要深入应用行业,成为理解具体行业的开发人员而已。但是,这又是统一的,不矛盾的,一切变化的东西只有建立在不变的基石上才有生命力,只有深刻掌握了不变的东西,才可能在纷繁的变化中不至于乱了阵脚,才可能跟得上变化的脚步。
无论是什么样的技术,都必须要应用于具体的行业领域才能转化为生产力,才能给予我们生存下去的理由。时至今日,1年前没有选择职业生涯之后,我依然还在校园里继续我的学业,编织着我的梦想。尽管曾经因为项目关系在公司里接触了一年的项目开发,尽管在校园里要作技术开发,尽管现在言及事业尚且过早,尽管现在就把自己绑定到某一个具体的行业领域是多么不现实也不必要,自己也还是没有想过要把自己绑定到某一项技术,某一个开发平台。原因很简单,或许是没有足够的勇气,也或许是没有到抉择的时机。因此,我尽力去关注不变的东西,比如OOA/D,比如设计模式,比如算法,比如软件过程,甚至是项目的管理。我会尽可能去了解、学习、掌握、应用可能的技术,无论是windows平台的传统开发,还是移动平台的上的开发(PDA或手机),无论是C/C++开发,还是Java的开发,亦或是.Net上的开发,无论是C/S的桌面开发,还是自己其实不是很中意的B/S开发,都有涉及,都有关注。这个过程是必要的,平台和技术之间的相关和差异,能够给予一个人更多的思考和想法。
有一个哲理,很多人之所以不能成功,很多时候并不是因为不知道去追求什么,而是不知道去放弃什么。很多时候,放弃恰恰比追求更加难以把握。当你想什么都拥有的时候,可能也正是什么都没有的时候。另外一个关于职业的哲理就是,只要成为某一个领域的专家,就永远不可能失业,或者说可以成就一番事业。而我,可能在一年后就会去追寻自己的事业,追寻自己的职业人生,因此是需要作一个选择的时候了。这个暑假,计划好的事情或许没有一件可以如期如愿,但是最大的收获就是慢慢的坚定了自己的职业人生的方向,慢慢清晰化了自己的职业发展领域,这个思考的过程是痛苦,因为选择意味着放弃。这个痛苦抉择的产物就是,我会慢慢地将自己的精力更多聚焦于移动平台的开发,原因三分,一是兴趣,一是经验,一是发展。我的兴趣很多程度上来自期望迎接挑战,而移动平台上的开发因为硬因素将会面临着比传统的PC平台上的开发更多的挑战,我有过这样的经历,并且我喜欢这个过程。尽管或许自己在传统的PC开发上所经历的时间会更加多一些,但是这些对于移动平台上的开发来说,实际上都可以作为宝贵的经验。并且,我非常看好移动市场的发展,我的职业人生亦会跟随着这个大的趋势一同前进。
如果还要具体一些,我会更多关注WinCE系列平台上的开发,原因也很简单,我有这个方面的经验的积累,并且看好这个平台的发展。当然,这一切,至少在在我还没有真正开始自己的职业生涯的时间内,并不会影响我对其他技术的关注和学习,并不会影响我对软件开发不变的元素的坚持,也不会影响由于具体项目而要求其他的平台和技术(实际上至少有着很大的可能性)。然而,重要的是,我已经在慢慢筹划我的职业人生,我已经在慢慢准备的未来事业,我已经慢慢地能够为自己的未来的人生在很大程度上做出了选择,我已经慢慢地具有了对自己人生负责的勇气和魄力。
如果时间和精力允许,我会将自己以前的移动平台开发的经历和经验,以及自己继续这个历程的一些思考记录下来,且行且记,且行且惜。
k_eckel [