IT行业工作两年半小结

来源:互联网 发布:java如何引用内部链表 编辑:程序博客网 时间:2024/05/16 10:44
  启用新的CSDN账户,是想对自己有个新的认识,新的开始。
 
工作两年半了,最近想了好多,总觉得这两年半来,走了很多弯路,但是总得来说,还是成熟了许多,也失去了很多。思考得越多,越觉得这两年浪费了很多时光,尤其没有能在一个方向上做深入的研究。而且在基础这块,没能打得扎实。在一家美资外企里,技术好像不是最重要的,重要的是资历。原因其实也简单,上面的人都靠资历混上去的,为了保持自己的地位,自然会把资历看得很重。当然,如果想在工作上获得成功,光有资历还是不够的。很多问题,不是有资历就能解决的。
 
        对待技术,要有钻研的精神,对操作系统,数据结构,数据库等要非常的熟练,要有自己深入的理解,这些都是基础。所以为了补足自己的短板,我给自己列了一个书单:
           (1)深入理解计算机系统
           (2)数据结构/算法导论 (这本书非常厚重,不是一时半会能看懂的,只是作为能力的培养和锻炼,慢慢琢磨)
           (3)数据库导论
           (4)C++程序语言

          这些书是我年前要读完的书 (算法导论除外,这本书太厚重)。

        当然,其实计算机领域也是数学领域的延伸,所以学好数学也是非常重要的(奉劝那些(计院)大学生,觉得高数难学,赶紧认真学,还有离散,概率论),我打算再重新学习下数学知识,不然,很多资料真的看不懂,而且提升空间也有限。计算机里面还有一个很重要的就是英语,我去过一次美国,如果我英语不行的话,这次机会根本没我的份。对于英语,我打算,除了坚持听说读写之外,每周坚持翻译一篇英语文章。
还有自己目前要重点研究的方向,网络,一直以前我都在做网络相关的工作,而且目前的项目重点也是网络,所以对于这块,要再次深入学习和研究。相关的书籍有
   (1) TCP/IP协议(卷1、卷2)
   (2) Unix 网络编程
 
        做一个项目做了两年半,觉得自己很失败,总结再三,很多时候都是在走重复的路,没有模块化,没有分层,什么都没有。软件最重要的是架构设计,RUP 4+1 架构就不错,当然《一线架构师实践指南》里面的5视图法也很不错。打个比方,我们有个模块,是处理业务逻辑,但是这个业务逻辑模块和控制模块高度耦合,根本无法建立单元测试,所以每次对这个模块有改动的话,造成其它问题的风险是非常高的。如果将这个模块独立出来,考虑其输入输出,然后加入单元测试,以后再有任何改动,就可以运用单元测试进行保证。还有就是OO,其实能把OO研究透了,很多设计方面的问题也就明了了。 
尤其是最近做网络集成,我个人觉得非常失败。很多设想都没有达成,系统依然处于不稳定的状态。尤其没能将系统重新划分,我个人觉得非常遗憾。当然个人能力也是一个制约。目前这个项目进入非常关键的阶段,很多问题需要慎重。

          说到思考,我还是想单独的说一下,我见过有些程序员,或者说码农,为什么总在抱怨呢。因为他们,甚至包括我自己,就如同工地上的小工一下,师傅把架子打好,往上砌墙就行了,不用思考,只需要体力。有些程序员(我见过的)也是这样,写程序不加思考,总是在试。试对了就过了,CODE写出来那叫一惨不忍睹啊,BUG满天飞。不得不承认,有时候我也是这样的人。写程序,多思考,多总结。这样才能将软件品质不断提升。而且,在很多技术问题上,要深入理解,明白透彻。做一个真正的软件工程师。
当然作为一个软件工程师,技术只是一方面,还有业务层的知识。技术只是为业务服务的,技术再好,不能满足业务需求也是枉然的。尤其是行业软件,对业务的要求是很高的。如果技术又好,又能懂业务,那这样的工程师才是真正的工程师,才是能创造出有价值的产品的工程师。
软件工程师的知识应该是有体系的,而我现在只是一个小小的码农,知识缺乏体系,看问题缺乏深度,处事缺乏成熟。

           当然,在公司里,除了努力工作之外,还要注重薪资,干活为了什么,赚钱,如果赚不到钱,干活干嘛?所以努力工作之外,一定要努力让自己有个合理的薪资水平。有的时候不要怕和老板谈工资,如果你有价值,并且对公司有贡献,一般情况下,老板都会考虑的。

        对待很多东西,要多思考,知其然,知其所以然。
原创粉丝点击