不知不觉一年又过去了,是时候反思一下自己,这一年自己到底成长了多少,我想写博客的目的很大程度上是想记录自己成长的每一个历程,当以后自己再看看自己当初的文章也能够体会到自己当时的心情,心态与境界,最重要的是对以前工作的一种总结,同时也是对未来有一个更明确的规划,人生需要一个不断的反思和总结,这样才能不断去取得进步,就像我的博客下面的那句座右铭:“年岁有加并非垂老,理想丢弃方堕暮年”,希望自己永远能保持年轻时的那份激情与活力,为了人生的理想去奋斗,至于取得多大的结果,一切顺其自然吧......
本文还是一如既往的从工作和生活两个方面来总结这一年,其实工作本是生活的一部分,但是也许我想表达的是工作还是侧重表达自己对技术的总结吧,而生活更多的是对自己更深刻的反思,当然文章中所有的观点仅仅是自己的一些观点,一家之言,但是也代表着此刻自己的想法,也许多年以后再重新回过头来看这些就有意义了!
一 工作中
今年是来到上海的第二年,也是呆在这家公司的第二年,也是自己快速成长的第二年,从加入这家公司起,就主要负责WPF和ArcGIS的二次开发,我们整个组也称之为可视化应用,首先说一下因为我们公司是做DLP拼接屏的,主要的客户是公安等国家行政单位,包括检察院、地铁、公路、以及一些其它的单位,公司也经过了20多年的发展,近年来公司也意识到靠过去单纯去卖硬件已经没有太多竞争力, 需要能不断提高公司的软实力,提高产品的附加值,从而寻找到真正新的利润点,这些想法是非常好的,而且也在一步步付出行动,经历了去年一整年四个基于ArcGIS的应用项目以及其它可视化应用,我们也积累了一些经验,也在一步步去摸索,但是无奈,去年我们这个组原本有5个人,今年一开年,项目经理离职创业去了,另外一名工程师因为一些现实问题也离开了魔都......, 就这样我也从去年给他们打下手到真正去承担一些“重大”的事情,我想这些都是成长的必经之路,当然好在有了去年一整年的积累,最起码不是从头开始。
由于去年一下子展开四个大项目,而且是整个团队第一次进行相关开发,当然有些工程师还是有这方面的经验,经历去年一年的开发,虽然项目上都验收通过了,但是从今年起各种后遗症都出来了,客户在使用中反应各种问题,然后由于我们关键开发人员的离职,后面的人就要经历痛苦的填坑过程,其实真正能够做出一件出色的软件产品真的是一件非常不容易的事情,这需要有视野和技术沉淀的老手去架构软件,项目经理(当然我们公司不是互联网公司,没有产品经理一说)充分理解客户需求,然后提炼需求,还需要一群高素质的开发人员去扎实开发,最后还要经历过完整测试,最后才去发布软件,然后还要去不断完善才能称之为一件合理的产品,当然这在很多公司其实都是奢望,软件开发人员也许同时承担了需求调研,软件开发,测试等一系列的工作,而且我们的客户由于都是一些国家行政单位,都需要去对接相关的数据库,所以有时候出差就不可避免了,个人不反感出差但是如果不能提高效率,无意义的出差就没有必要了。
学习知识的过程是一个爬坡的过程,开始的时候由于你知识的缺乏,你会觉得学习进步非常快,那是因为你知识的缺乏,不懂的地方太多,所以成长会非常快,但是越到后面就越慢,每一步都需要去突破,否则就是在原地踏步走,个人觉得自己也正在经历这个过程,所以希望这个过程自己更能够静下心来好好处理好这些问题,从去年到今年,我觉得自己对面向对象的思想有了更加深入的了解,但是想要精通还必须经历漫长的开发阶段,而且更能体会到WPF的这种MVVM的思想,这种思想的精髓就是数据绑定这种方式,通过这种方式能够真正做到前台代码和后台逻辑的真正隔离,如果不能深入去理解这些,个人觉得还不如老老实实地去用WinForm开发。工作中还有很大的一块就是去开发ArcGIS,通过在计算机上安装ArcGISRuntime For WPF 然后获得授权码,从而做到ArcGIS的二次开发,其实这些也是利用别人提供的SDK来完成一些地图的开发,我想说的是想真正地去做好这件事也是很不容易的一件事情。
其实现在回顾今年一年来最大的进步就是真正去了解软件的开发流程,不再是以前拿到个需求然后只为去完成相应的功能,其实现在想想仅仅只是为了完成这一步,境界确实有点LOW,也看过身边的一些技术老手,感觉和我们最大的区别就是代码"越写越慢",在拿到一个需求之前,首先会认真分析这个需求,然后去提取接口,考虑软件的扩展性和通用性,当所有的东西考虑完毕以后再去考虑写代码的问题,其实也只有这样才能真正地去写好代码,感觉个人现在最缺乏的就是这方面的能力,这些才是构建一个软件产品的核心思路,当然这个也需要很多的开发思路和整个行业的视野性,所以我们做软件的最终目标是成为一个好的设计师而不是软件蓝领,只会去Copy一些别人的东西,一旦形成这样的思维定势后果将不堪设想,我们要成为一个很有思想的开发者,然后通过代码去把自己所想的表达出来,我想软件开发者确实应该拿出自己的作品说话,真正的写代码有追求的人一定是那种有匠人精神的,不断去突破自己才能真正地获得进步......
在技术上,1 今年还是花了些时间去了解微软官方的Prism框架,因为我们的整个AIP框架都是基于这种Prism模块化的思想开发出来的,而且能够动态加载DLL,从而真正地实现软件的热插拔,但是比较可惜的是还没有机会真正去试着搭建自己的DEMO,还停留在看官方的实例,了解Unity和MEF依赖注入容器的阶段,这点希望在以后的项目中能够真正地构建自己的Prism项目,而且这个开源的框架对于构建大的开发产品还是非常有用的,希望自己能够一直学习下去。2 在实际的开发中使用过一段时间的NHibernate这个很好的数据库中间件,不过对他的了解还不是很深刻,同时没有深入去了解HQL语言,个人觉得就是配置起来的时候还是有些麻烦,特别是要自己配置从数据库字段到类字段的一一映射关系,这个好像可以通过CodeSmith来自动生成,但是本人对CodeSmith这种自动生成代码模板的形式还是不太了解,所以需要学习的东西还是太多太多,其实这些东西说到最后都是要通过面向对象的思想去操作数据库而不是还是以前那些单纯的写SQL语句,就像Linq To SQL 或者是Linq To XML 这些的最终目的都是想通过面向对象的思想去操作数据库,因为人的大脑更容易理解的毕竟还是那种面向对象的思想,毕竟万物皆对象,这是面向对象思想的核心。 3 第三点就是对面向对象的思想和WPF MVVM的思想有了更加深入的理解,我想这些东西都是在自己不断去犯错误然后总结出来的,其实能够真正地去学好这些东西都是在不断地犯错中深刻体会到的,写代码写到最后应该想到到底该怎样将代码越写越少,越写越精炼,越写代码出BUG的机会越少,其实这也是我本人一直追求的目标。
另外通过这一年的开发过程,自己也深刻发现自己对设计模式、算法和数据结构以及代码重构的能力欠缺,这个也是我一直在学习的过程,我想这也将是一个任重而道远的过程,还有对于写博客自己有了更深刻的体会,自己需要更多的去注重写博客的质量而不是数量,当然形成一个好的习惯是非常重要的,但是感觉自己对有些问题还是思考的太少,说白了还是没有能够真正地去静下心来,去充分挖掘技术背后的东西,同时也不能一味的去贪多,毕竟贪多嚼不烂的道理都应该懂的,面对浩如烟海的知识每个人只有选择一个自己觉得合适的方向才能有所突破,最终真正地去学会这些东西,另外还需要花更多的东西去了解一些开源的东西,最终成为一名合格的软件开发人员。
最后在技术上用苏轼的那首《题西林壁》 结尾吧! 横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中。所有的困惑来自于自己只见树木不见森林,没能站在一个很高的高度去看待问题,我想这种境界是需要很多的努力才能达到的吧!
二 生活中
关于这个话题内容就更广了,来上海的这两年人很累也体会到了很多不同的人生感受,每天看到熙熙攘攘的人群,每天花费近3个多小时在上下班的路上,我想这也是很宝贵的一段人生经历吧,还是那句话“年岁有加,并非垂老,理想丢弃,方堕暮年!”年轻人吃再多的苦都是对人生的一种历练,都是为了不断去修心,让自己变得更加平和,怎奈这个社会是如此浮躁,面对魔都高昂的房价,高昂的消费,有时内心也会产生太多的挫败感,刚来上海时作为90后感觉自己还是很年轻,但是面对自己身边越来越多的93 94甚至是95后,年龄已经不再是我的优势,不知道对于自己放弃考研毅然去选择出社会的这段历程到底会对以后有多少的影响,但是人生没有如果,有的只是打不到的信念和坚强的意志。
出来以后最多的感受就是父母的不容易,以前总觉得父母太过于节省,依稀记得多少次,我妈妈对我说过的那句话“等你以后过日子,肩上挑起生活的重担你就懂得了......”,现在对于生活的理解更加深刻,但无论如何,选择了就永远不要去后悔,你现在所经历的一切都是上天给你最好的礼物,年轻人不要着急,也许你现在所经历的一切都是在扎根,也许在多年以后,一场春雨就能让你长成参天大树......
加油!2017会更好......