2010年行将结束,按照当年中小学老师的规矩,是做年终总结的时候了。
很多年没有做过总结了,有些生疏了。。。
还好,这个只是技术篇
2010年, 我换了一个城市,换了一个公司,依然从事着软件开发的工作。从最初的兴奋,到现在的平淡;有一些收获,有一些失落,有一些彷徨,有一些不甘。。。
好吧,专注谈技术。
应该说,2010年技术上有所进步,自我打个65分吧,压线及格。程序员要有条理,分类来说,有下面方面:
1. Web
想涉足Web已很久,终于在2010年跨入门槛(好吧,我承认只跨入了一只脚)。从对Web基本不了解,到对Web基本了解,是过去一年里自我感觉收获最大的东西。进入新公司后因为项目需要,我开始比较系统的学习了Asp.net。在初步了解Asp.Net后,你会觉得这个东西很强大的:上手容易,开发环境完善,对象设计良好,跟WinForm一致的开发模式。。。
最开始使用Asp.net是帮朋友做一个本科毕设的聊天室程序。那时随意的使用UpdatePanel这个控件,造成了我对Web开发的最初理解:不用使用Javascript,不用理会浏览器,原来Web开发如此简单。。。
后来公司项目中需要Web,我更深入一些学习了Asp.net。我们在项目中应用了好几种Asp.Net控件:包括Farpoint Spread,ComponentArt Web,Asp.Net Ajax Control Toolkit等等。。。我开始理解Ajax的复杂和强大了。当然,这只是建立在第三方控件的基础上。在很长一段时间里,我们满足于使用这些控件。其结果就是,在我们那个功能简单web界面上,你可以看到各种风格和效果的控件,反映迟钝,缺少提示。。。再后来,学习了JQuery,开始试着使用Javascript来直接调用后台服务实现Ajax。体会到了JQuery的优美和强大,我积极的将JQuery引入到我们的项目中,用它来取代之前的各种Asp.Net服务器端控件。回过头来看,才能理解Asp.net的笨拙和低效。现在如果从新做一个Web项目,我会尽量排除Asp.net的控件。
2. .Net
在过去的一年里,我比较积极的学习了几种.Net后台技术和框架,比较重要的包括:Entity Framework,WCF,WF和F#。这些东西都跟项目有一些联系,但主要的动力来自与对项目代码质量的不满,以及一个热爱技术的人所应有的探索精神。在阅读前人留下的代码时,我看得真是愁肠百结,有一种强烈的不满压在胸中:随处是手工复制粘贴的代码;随意的捕获异常而不进行处理,心不在焉的写着没有意义的函数(如 return ”bad code".ToString()),更别提混乱的代码结构和软件架构(或者根本就谈不上架构)。最让我无法理解的是他们会把数据库的字段名在C#里重复了那么多遍(我可以确定是纯手工的复制)。。。强烈的不满下我学习了Entity Framework,然后用Entity Framework做了一个基本相同功能,但是架构清晰的多的原型程序给他们看,结果。。。(好吧,这个超出了技术的范畴)
基于同样的理由,我学习了WCF,(之前的项目使用了.Net Remoting技术)。并且结合Entity Framework和WCF做了如上所述那个原型。结果。。。(同上)
在公司上一个项目结束的时候,我们升级到了VS2010,.Net平台下的新技术又扑面迎来。趁着事情不多,我抽空学习了一些相对无关的技术,给小组安排了几次Knowledge Sharing。其中一个主题是New Features in .Net4。为了准备Knowledge Sharing,我比较认真的学习了WF和F#。虽然至今仍然停留在学习的水平(没有用这些技术做过像样的程序来),但是我仍然觉得收获颇丰,有XXX牛人曾经说过类似这样的话:重要的是不是技术本身,而是思想。
3. 架构设计
如前所述,为了证明自己的观点和技术,那时我需要写一个原型程序。我需要一个足够Professional的架构,图纸和代码来展示我的程序。为此我花了一些时间学习UML设计,下载了一些文档学习如何写软件设计文档。我先绘制了高层的软件结构图,然后开始搭建软件模块,让最基本的行为先运行起来,我尝试着使用迭代的方式来实现程序。我一边验证着技术上的可行性,一边考虑架构的合理性、扩展性。在夜深人静的时候体会着编程的快感。又有XXX牛人曾经说过类似这样的话:多实践。在投入了一个半月的业余时间后,这个迄今独立完成的最复杂的程序小功告成。(其实现在看来,也实在是没有多少难度的),其结果。。。(如上)。但我仍然受益非浅,感觉自己离真正的架构师更近了一步,说话也更有底气了。
4. 开源技术
在过去的一年里,从JQuery开始,我逐渐的接触开源技术,从开始的抗拒到现在的向往,我相信,作为一名技术人员,我的心态在慢慢成熟。我更加频繁的访问wikipedia (对不起Jimmy Wales,等我有钱了一定资助你们。。。),去了解.Net以外更加广阔的天地,我也是这个时候才知道Apache和GPL协议的区别。从前只抱着.Net而排斥其他技术的心态现在看来是幼稚的。架构师仍是我的目标之一,要成为架构师,了解多方面的知识必不可少。(否则,当另外一个家伙在了解多方面知识的基础上,提出他的解决方案,你如何表示赞同或者反对呢?呵呵,当出现这种现象时,你的架构师恐怕就得退位让贤了)
在初步学习了.Net 平台上的F#之后,我抱着极大的热情又了解了其他的函数式语言, Python因为其结构简单,应用广泛而成为我的学习目标。(呵呵,其实学习Python还只是最近的事情。现在学习效率慢啊。。。想当年C#学习一个礼拜就可以开始应用了,哀)。我下一步的计划是学习Django框架,体验一种跟Asp.net完全不同的方式来写Web程序~
5. 项目管理
这回我确定,有个XXX牛人说过,不想做项目管理的程序员不是好程序员。我相信我是一个好程序员,所以我这方面也不能落后。我不太善于人际关系,但这也不会成为做不好项目管理的理由。前一段时间看到一篇文章非常有感触,贴出来共勉:
我先说说我的管理理念,我认为第一件事就是将“管理”这两个字扔了,没有人愿意让别人管的,所以你的企图去管人就已经让你进入困境,作为领导,重要不是学习什么管理技巧,而是要掌握正确领导者应有的心态,那就是以帮忙自己下属成功为自己的成功,没有这个心态,你整天只会在一些人际关系里面折腾
http://blog.qq.com/qzone/117733/1293116643.htm
(BTW,我理想中的人际关系应该是简单、透明而真诚的,怀念在AD的日子,做梦都想去Facebook那样的地方)
好了,书归正传,在过去的2010年里,我也在有意识的提高自己项目管理的能力。这一年,我切身体会了另一种公司文化,我曾经渴望变化,却又对变化失望。当然,乐观的看,也是一种动力。我尝试将上一家公司的先进方法带到这个公司,我努力做的professional一些,希望我的行为能够正面影响其他同事。我学习控制自己的心态,告诉自己要能够以开放的态度接受别人的批评。我学习感激他人,从每一个人身上发掘优点,为我所用。我默默的实践着自己心中的管理哲学,那就是作为一个领导者,是要以自己的能力和品德,别不是其他,来感染他人。有更贤者,应主动让位,自己更贤者,应当主动请职。我也告诉自己,需要的时候要毫不谦虚的站出来,如前经理所说的那样:想要Outstanding 先要Stand out。不是有那么一句话么:当理想遭遇现实的时候,XXXXXX。于是,我在学习着Standing out的同时,我也学习着收敛,沉淀,提高自己。
2011年已翻开第四页,新的计划还需细琢。希望自己可以保持幻想,保持热情,保持健康。期待新的一年里有新的变化,期待在技术的山坡上站得更高,尿的更远。(XXX牛人说过:站得高了,便没有坎。)
2011 大家共勉励~
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wintlu/archive/2011/01/04/6114635.aspx