2012,是个特别的年份; 在 2012 , 有传说中的世界末日, 更有IT、移动、互联网领域的日趋激烈的竞争格局演变,煞是好看。
2012 上半年,我还是个研究生; 下半年,正式入职,成为软件开发行业中的一员。我还在学校的时候,特别想知道真实的软件开发环境是怎么样子,那里是一个充满神秘感的地方,及至我真正进入,也开始有了真实的体会。
7月份,刚进入公司不到10天,就承担了入职后的第一份任务:开发程序或工具,完成项目所需要的数据订正工作。老板说,我可以选择 java 或 python. 最终我选择了 python, 并使用推荐的 web.py 框架。因为,我觉得 java 来做这项工作可能很麻烦,不如 python 便捷。从项目角度来说,这实际上是个简单的技术选型,当然这个选择其实有风险的,因为我是边学边用的;不过有老板和熟悉python的同事做代码REVIEW,风险就小了很多。在这个项目中,印象最深的有三点:
1. 需求变更非常频繁,交流需求非常密切,需要多个团队密切配合;几乎每天需求都会有新增和变更,每天在邮件中有来自各个团队的交流和项目进度跟进。公司是小团队制的,每个团队的人数基本不超过10人,各负责一个子系统。我想,这就是真实的软件开发环境吧和要面对的挑战吧。需求挖掘和管理、项目管理和团队协作沟通值得作为一门学问来认真探索。
2. 最不起眼的地方,埋藏着最大的危险。开发程序一定要考虑真实环境。在数据订正的逻辑中,有个地方逻辑很复杂,因此投入了很多时间和精力来确保无误;可是,有一张表的订正逻辑非常简单,因此用的是看上去非常平凡的SQL语句,结果在这里出了麻烦:没有考虑真实环境的性能问题,效率很低,以至于差点放弃此次发布计划。
3. 自己的成长离不开老板和工作伙伴的支持和鼓励。正是有了各位工作伙伴的支持和包容,有了老板做靠山,加上自己的努力, 比较顺利的完成了第一份任务。心里很是感激。所以,与工作伙伴保持良好的交往关系是很重要的。
关于此次项目发布的体会,可以参考我的博文:《第一次参与项目发布的体会》。 这里就不详述了。
接下来,去公司的另一个子公司接一个项目,除了 SSH , 还用到了 flex 技术。 此次领悟到的一点是,工欲善其事,必先利其器。最初,因为部署flex的热调试看上去很繁琐,就暂时不去理会,专注于业务的学习和项目的接手。结果每一个很小的 flex 改动,都要编译整个 flex 工程。虽然编写了脚本完成自动化编译和部署,可以在编译部署的时候做些其它事,但根本问题还是没有解决。总体来说,还是耗费了很多时间。因此,后来终于迫不得已学习了flex工程的热部署,才让flex开发大大松了一口气。结论是: 在开始一个项目之前,一定要事先部署好工程的热调试。到现在为止,我接手这个项目已经4个月了,基本能够承担起相关需求的开发,也做了些基本的思考,可以参考博文: 《如何构造软件》
接手的两个项目都需要学习新语言和新技术,我想这早已不是什么新鲜事了。不过我想提出自己的开发学习理念: 有两年以上的开发项目经历的人,应该更注重领悟,而不是沉迷于某项技术的学习。领悟开发活动的本质,开发技术的本质,能够触类旁通,而不是学一个用一个。此外,程序员尽量涉猎更广泛的技术领域,勇于接受新技术和新领域,而不是固守在单一的技术领域中。善于专注,敢于舍弃。每一次舍弃都是一次飞跃。
我的老板也提出了给我的两条忠告。第一次,他指出我太注重技术而不是业务的学习。我想这也是很多技术人员的通病吧。我们更梦想成为系统架构师,而不是业务专家。其实,从社会需求和职业晋升的角度来说,业务才是关键,而不是技术。技术只是手段,业务才提供价值,产品是业务的具体实现形式。第二次,他大概看到我太沉溺于埋头实现需求,与同事的交集太少,对我说,一个人要有自己的专长,要有自己独特的价值,当提到某个事情的时候,别人第一时间想到的是你。这也是很好的忠告。不一定要善于夸大自己的工作,但也要适量地展示自己的工作; 要有自己的专长,不要什么都会一点且只会一点。要深入事物核心,而不是满足于表面的了解和使用。
要削减学习项目,收缩战线,集中攻克一些子主题,确立自己的专长和竞争优势;
怀着探索的方式和心态来学习和钻研,深入事物核心和本质。
程序员的人生,除了面对代码,还必须面对自己的前程和感情问题。因此,这段时间,更多地思考了自己的职业、技术发展之路,调整自己的生活态度,而不是全身心投入到技术的学习中。方向是努力的前提。程序员需要持之以恒的阅读学习来汲取知识和灵感,需要运动锻炼来保障可持续长久的发展,需要交流交往来结交志同道合之友,需要广泛涉猎各种领域的资讯来扩展自己的视角和见识,需要进行认真的自我反省,来解决自己的情感问题。总结为五个词: 阅读、运动、交流、资讯、自省。一个真正的男人要有能力解决自己面对的问题,而不是无益的吐槽,跟随大流,虚度光阴。应用开发人员热衷于熟悉和使用各种开发框架,但有没有想过,给自己的人生、职业和情感开发一个合理可扩展的框架呢?
总的来说,我觉得自己对内的思考是比较充分的,不过对外的关注不够。我私下认为,人们对于科技创新和IT产品竞争的关注似乎过了头,—— 科技虽然能给人们的生活带来便利,但仅是便利而已。人的心灵和精神需要归宿,没有任何一种科技有能力解决这种根本性的问题。那么,从局外人来看,感觉人们的关注有些舍本逐末,或是人们早已意识到自己无法解决这个根本性的问题,—— 就像图灵停机证明一样, —— 因此,不得不将自己的目光投向错综复杂的外界?
2012 年终将过去,祝愿所有的开发人员,乘着新年希望的曙光,早日圆自己未完成的心愿~~~ 祝梦想成真~~~