有一篇热文《写了8年的代码,做过的项目都下线了,程序员的意义在哪里!》,作者8年工作和业余时间开发几十个项目,几乎都关闭了。
想当初,很用心的去开发每一个项目;如今,这些项目只能一个个关闭。
这真的使我很悲观: 我花了那么多的时间精力,去做的事情,竟然如此的毫无意义。
我相信这也是所有程序员到一定人生阶段时必定会思考的一个哲学问题:程序员开发软件的意义在哪?
是为了养家糊口,是为了追寻技术,是为了创业,还是为了改变世界?
在软件咨询业摸爬滚打十余年后,我在整理简历时遇到一个难题,就是工作经验那一块,做过的项目太多了,要写好几页,这与当前硅谷的人力资源强调简历必须简洁的原则严重不符,因为招聘专员在你的简历上的目光扫描只有短短的15至30秒。德国传统的简历标准允许稍微冗长,毕竟不少公司废除纸质简历投递是这几年才执行的。但德国有历来向美国看齐的传统,所以大型公司或者新兴科技IT公司的人力资源,今后逐步采用硅谷的标准会是趋势。
我的首要业务,是把原本三四页的几十个项目简介缩短到两页以内。于是我开始一条条回顾,从业至今,做过的那些项目。
那些年,做过的C项目
第1个C项目
工作第一个项目,是为斯图加特地铁公司做的一个轨道内部管理移动系统,前端后端,数据库,后台数据接口全部一个人完成。
技术:
- 后端:J2EE Servlet,数据接口Hibernate,通过SOAP和SAP的接口与地铁公司数据交互。
- 移动端:JavaME,开发界面和业务逻辑,数据采录,显示轨道的静态地图图片。那时Google Map刚起步,也没有适合地铁公司数据格式的开源地图服务器,花了很大力气,架设了一个商用地图服务器,搞定了地图这一块。
- 前端:GWT,Google的一个Web Rich Client框架
项目现状:卒
原因:
- JavaME已经死了,Nokia那么庞大的帝国已轰然倒下。
- 臃肿的SOAP接口被RPC或Rest取代。
- Hibernate,半死不活。SSM大行其道。
- 静态无交互地图显示随着Google Map和其它优秀开源地图服务器的普及也淡出历史。
- GWT早已被各类前端框架替代
留在简历:留。
毕竟面试时,德国HR喜欢问的,常常是你做的第一个项目,哪怕你工作了多年。和其它刚入行的新人一样,我从这个项目中,海绵一般地吸收新知识,学了非常多的技术,包括移动端的设计和构架,后端数据接口的交互,以及数据库的设计与应用,这些技术习惯我一直沿用至今。
第2个C项目
德国本土一个娱乐信息互动平台的移动端。
技术:后端开发J2EE Servlet, 移动端JavaME
项目现状:卒
原因:平台已倒闭
留在简历:否
第3个C项目
给法兰克福政府机构做的Mobile城市景点热点导航。
技术:后端开发J2EE Servlet, 前端JSP+JS做HTML5
项目现状:卒
原因:Google map一出,谁与争锋
留在简历:否
第4个C项目
德国拜仁州铁路购票系统。
技术:
- 后端:J2EE Spring,MySQL。德国除了德铁是一半国有外,各个州和城市的铁路系统都是私营企业经营。各个企业都是独立的票务系统,但它们一般都使用德国的两家铁路票务系统平台。这两家系统的标准和接口是完全不同的。我的工作,是开发一套通用的API,通过SOAP和Rest接口与两大系统平台接口兼容对接,实现德铁与拜仁铁路票务系统的数据整合。
- 移动端:JavaME,车次查询,票务系统
项目现状:半卒
原因:
- JavaME已死
- 后端服务API可能还在继续运行,用在后来新的Android或iOS移动端上。
留在简历:是
从这个项目我学到了,如何开发一套完善的合乎标准的API。
这时我已经把一个叫J2ME Polish的框架用的炉火纯青,它可以在Nokia等手机和Blackberry上做出比系统原生界面炫得多的界面。当时国内相当多的团队也在用,我甚至想写本中文的技术书。这个想法后来被智能手机系统iOS和Android的诞生掐灭了。
第5、6、7、9个C项目
- 手机多媒体云备份系统,类似dropbox
- 本土移动