

进入公司之前,技术方面没有得到过系统的锻炼,只是在学校时学习的一些基本概念和知识比较扎实,比如知道软件的生命周期包括系统分析、可行性分析、需求分析、概要设计、详细设计、编码、测试、维护等阶段,但是并不十分清楚各阶段应该有哪些实际的活动,各活动应该做些什么工作,以及各阶段对下一阶段的指导意义;了解面向对象的概念,知道抽象、继承、多态的含义,但是不知道如何将这些知识运用到实际的项目中去;掌握了一定的技术经验,但是在实际项目中不能很好的和业务结合,考虑技术实现时不能全盘考虑,写出来的代码可以说是杂乱无章,很难进行维护;对于日语来说是从来没有接触过的。
进入公司后,由于公司的项目开发流程是相对比较规范的,尤其是卡斯特MIS项目,这个项目是严格按照公司定义的CMM2级的过程来进行的,我从需求阶段就开始参与,直到编码阶段,根据自己掌握的知识,很快就理解了各个活动的意义,从而项目管理上积累了一定的经验;技术上,在每个项目中我都要对其整体框架进行研究,框架是什么结构,各结构层次之间什么关系,各层次都用了哪些比较好的技术,在写代码的时候我都会把这些知识逐步的了解吸收,当然,这需要一定的基础知识和一些项目外的时间,刚开始完全是凭着扎实的基础知识去看去理解,随着经验的积累,再去看新的东西就很容易理解接受;随着项目经验的积累发现理解业务和业务的软件设计在整个开发过程中具有非常重要的作用,首先如果对业务熟悉能够不断的帮助我思考软件设计是否合理,是否有漏洞,理解软件设计能够帮助我去设计合理的程序结构,包括设计程序类、接口、方法等。对于日语学习我是没有什么好的方法。刚开始学日语的时候纯粹是为了工作的需要,每天背五十音图,记单词,看语法,可是看完就忘;后来开始看日剧,刚开始肯定听不懂,后来偶尔能听懂一句,感觉很开心,一直坚持,慢慢的对日语的学习产生了一定的兴趣,然后反过来再看单词语法记住的就相对多一点了。我看书很慢,希望把每个单词没句话都理解,这样效果可能并不好只是习惯而已。日语的学习我一直都提高的很慢,现在能够比较准确的读写,简单的日常对话能听能说。
一直以来,对自己的编程技术都比较自信,在卡斯特工作后,在技术上更是得到了长足的进步。卡特斯在C/C++方面的技术一直走底层路线,开发内容也比较广,比如:安全、PKCS11、CSP、IC卡开发、文件过滤驱动开发等,加上当前要新开展的几个业务:通讯、Vista开发、TRON嵌入式开发。精通任何一个业务方面都需要大量的实践。
总之,在公司的这段时间无论技术日语都有很大的提高。技术上从不系统到系统,把理论运用到实践,从运用架构到设计架构,从编码到软件设计,这些都是很明显的提高。日语方面从一无所知到能够读写,简单听说。技术是个不断完善不断发展的过程,接下来我希望能够学习关于软件性能、软件安全性等方面的知识;还希望能够学习一些其他领域的知识,例如嵌入式等和硬件相关的开发知识。