`
newleague
  • 浏览: 1475143 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

工作八年总结(转)

 
阅读更多

http://freeheron.iteye.com/blog/1159409

 

工作这么多年了。突然想总结一下。 

    知识和经验是需要积累的,当知识和经验都积累到一定的程度,或许就能产生质变的效果。这是我近八年的IT职业经历的感受。

     本科毕业时去找工作,当时真的很迷茫,觉得自己好像什么也做不了似的,甚至觉得自己找不了工作。尽管本科时,用过C语言来写过不少代码。但到毕业时,感觉都忘了似的。这还是用得不深、理解不够的结果。毕业作品用VB来做了一个台球游戏。至少看起来也挺象样的。但是感觉对VB的很多东西都不懂。总之,对自己的知识,脑子里就是一盘散沙。本科的学习对什么都是一个大概。根本没有办法或不懂得把学到的东西应用上去。这或许就是知识与经验的最原始的积累阶段,只能说是一个量变过程的开始,离质变还远着呢。

     没办法,上个研究生吧。

     硕士期间,可以说经历一个很大的量变过程。两年半的时间中,差不多一年半的时间是在不停的学习各种知识,准确的说是重新温习和加强了一下本科时学习的知识,诸如,体系结构,操作系统,网络,数据库等等。还有意识的选择的一门语言来重点学习。这样《Java编程思想》的第一版救被我够入了。或许我还是中国大地上读完这边本书前100个中的一个。开始都这本书时,感觉真是天书。当我都到第三遍时,感觉终于开窍了点。书上留下了很多自己笔记。很遗憾的是,后来这本书借给某个同学,让他弄丢了。特别可惜。

     经过一年多的知识学习,当时感觉自己有了质变了(现在看来,只能是个小质变),可以出去显伸手了。很幸运,第一份工作就是一个Java方面的工作。但工作之后才发现,尽管《Java编程思想》看了三遍,但是还是没法很好的工作。为什么呢?没办法,工作的内容是写Jsp和Servlet,《编程思想》中有j2ee的内容本来就很少。那是才突然感觉到,java的内容很多,自己只是知道一个皮毛。自己其实并没有掌握其中的精髓。两个月后,jsp和Servlet也知道了个大概了。为了毕业论文,先不干了。

     写毕业论文的过程,又是一个知识积累的过程,为了能在论文中把东西说得圆满,再次去翻阅了大量的书籍,虽然没有深入学习,但都很多知识都有了大概的印象。这对以后的深入学习很重要。

     论文写得差不多了,还有半年才毕业呢。又找了份工作。这次重新拿起了本科时用过的VB。可能是有过一次小质变,这下用起来就顺手多了。也很幸运到了一个大公司,那时有时间了,兼职跟全职一样,跟正式员工做同样的工作。(收入也差不离多少~) 这算是有了一次真正锻炼的机会,也为以后的工作经验和学习积累做了充分的预演。但是后来,证明这里的工作还是有点单一,或者说单调,只是用VB写代码而已。

    终于毕业了,工作了。 Java相关的工作当然是我最想要的工作。 开始工作了,问题也开始出现了:ant以前看过,不是很熟,以前都是用JBuilder(当时流行这个);struts从来没有听说过;Linux,装过,没深入用过;JVM调优,真不懂; Oracle数据库,装过,也算用过,但是在Linux下真不会使了,当然更不了解其内部的东西;JMS,JMX知道,不熟,并发编程更是不懂了;还有操作系统,网络通讯的底层的东西等等等等,很多东西,感觉自己不熟悉的东西太多了。

    一年过去了,ant很熟了,所有项目工程的编译打包脚本都是我写的,真的很辛苦的~。Linux的很多命令也会用了。

   两年过去了,struts差不多专了。可以自己原创新产品的图形界面框架了。已经用Bash Shell来写了很多脚本了,也开始逐步更深入的去了解Linux了。能解决一些Oracle的问题了。EJB,JMS,JMX之类的东西,因为都有了差不多固定的应用模式,用起来也不难了。也开始去接触性能方面的东西了。

   工作三年了,开始遇到问题了:性能问题。因为以前做的东西对这方面的要求不高了,现在要遇到了。首先是多线程编程和IO编程的问题。多线程方面的编程,虽然可以从书上学到一些内容,还可以参照别人的代码。但是当应用程序大规模的应用起来时,问题就出来了。没有并发编程方面的理论知识,要写出高质量的代码,真的很难,操作系统的知识也很重要。还有EJB、JMS、CORBA中出现的一些棘手问题,自己真的解决不了,因为对它们的理解都是表面的,并没有深入理解。但是也没有办法,没有那么多时间去系统学习了,只能是出现问题的时候去Google学习来解决问题了,但是为什么那样解决,很多东西自己真不知道。这可能工作中的必然阶段。但是这也是经验积累的重要阶段。

    就在不断加班中,度过了职业生涯的头四年。因为工作的需要,诸如ant,hibernate,struts,spring,webwork等等之类的开源工具,用起来基本差不多了;EJB,RMI,JMS,JMX,CORBA,SNMP等等之类也写了不少代码了;当然tomcat, jboss之类当然也熟得很了;MySQL,Oracle对开发工作也不会有多大的阻碍了;Linux,shell编程之类更是用得够多了。这时也开始发现,工作变得越来越容易了。这时因为经验和知识的积累,让很多问题都变得容易解决了。而且很多代码都成形了。用起来也方便多了。但这时候,开始发现自己的进步变慢了。这是必然了,因为很多时候都是在使用自己以前积累的知识和经验。但是自己并没有觉得自己是专家或者高手。就是自己并没有质变。这时特别想去做一些新的东西。但是这种愿望一般都很难实现。因为在一个大公司中,创新往往也是冒险的。

    这时感觉真的出现了瓶颈。现在很多IT技术和工具不断出现,觉得自己去了解它很容易。但同时又觉得这样下去,自己只是在知识面越来越广,越来越是只知道表面功夫,很肤浅。因为工作中并不需要这么多这些新东西。怎么办?现在工作变得容易了,时间也多了。自己必须做些什么了。

     先去解决工作以来自己面临的一些不爽的东西吧。首先当然是并行编程的问题。尽管在工作中做了不少并发编程的工作了。但是基本都是先依样画葫芦,然后出现问题再企图去解决的工作方式。自己并不能完全吃透。很感谢JDK5中的concurrent包和它的实现者,仔细研读了几遍作者的书,加上工作中的应用,感觉自己突然比同事们都高了一个档次,特别是加上掌握了NIO、JVM故障和调优方面的经验之后。至少让自己感觉到,要成为高水平的JAVA开发人员,并发编程、IO和调优这方面的能力是相当重要的。

    来到了职业生涯的第六个年头。突然有个机会需要自己去进一步掌握Oracle。这么多年来,自己除了java开发之外,还多工作都是在Linux和MySQL、Oracle数据库方面,Linux的知识得到了比较全面的了解,而MySQL的内容相对较少(至少那时比较深的书籍不多,只有MySQL本身的文档),也很容易有了一定的了解。Oracle一直都是我比较尊敬的产品,因为它本身的文档就让我尊敬(应该是害怕~)。当年上学时,李开复还在微软,去听了他的一次演讲,他当时就说Oracle是让他很尊重的做大软件的公司。确实像Oracle这样的大数据库软件,也是微软自己所做不出来的。就像自己现在特别想去了解Google的后台的基础平台的实现一样,当时也特别想深入了解Oracle。这样自己真正开始了对Oracle的深入学习的过程。非常感谢Oracle大师们的那基本OracleXXX艺术的书籍。全面学习Oracle的过程其实也就是一个对操作系统、数据库理论知识、网络知识等知识的汇合学习的过程。我对Oracle的学习并不想自己去成为一个DBA(尽管没有考证,我想我比很多有OCP的人强~),但是这个学习过程确实受益非浅。当自己去深入掌握了Oralce某些知识之后,突然感觉自己在其他方面的知识也豁然开朗了。甚至Oracle的一些技术也可以被自己应用到自己的编程实现中,比如就曾经参照Oracle的检查点技术来解决问题。

    工作这么多年了,现在深深的觉得理论知识、基础知识相当的重要。细细体味一下,大学时学习过的汇编、编译原理、体系结构、操作系统、数据库原理和网络等理论知识是多么的重要。如果这些知识都有很好的基础,很多其他知识的学习都可以信手拈来了。可惜毕业的时候这些都大部分还给老师了(当然,也可以说在中国现有的教授模式下,很多这些知识我们并没有被真正授予)。当自己慢慢的去拾起这些知识之后,工作中的很多东西突然被领悟。有一段时间没有去写EJB、RMI、CORBA、JMS之类的代码了,甚至那些API都忘了,但是常常当同事在这些方面遇到棘手的问题时,自己时常能帮助解决、或者至少能根据自己的知识给出解释去指导得到解决的方法。这也许就是基础知识和知识积累的力量。

    当然,基础知识是至关重要,但是只是一味的去读那基本书籍,可能就成了书呆子了,甚至根本没有领悟那些知识,大多得在应用环境中体会。所以很多现在的中国大学教育根本没法真正达到传授知识的目的。所以也很感谢这么多年的工作经历和公司提供的机会。但是基础知识并不一定能带来技术技巧。技巧或许需要更多更广的经验和知识面。基础知识能让自己更容易理解和分析问题,而新技术和经验技巧却能提供更多更好的方法来解决问题。编程语言也许并不重要。但是有时也很重要。当掌握的编程语言多了,找到解决问题的手段也就多了。同样,知识面广了,新技术和技巧的掌握得多了,工作就轻松了~。这也是知识积累的力量。

    这么多年了,自己还是没法预料将来会是怎么的职业生涯,因为计划赶不上变化。但如果知识掌握的扎实,不管将来怎样变化,都一样可以应付。不是知识和技术没有用,得看掌握到什么程度。继续努力吧!

    计划赶不上变化,也许再过八年之后。我又是另一番感受了。

分享到:
评论

相关推荐

    【人力资源经理】年度工作总结及计划.doc

    本次统计的工作时间范围为2019年1月1日-12月31日,本人是从3月15日起编写电子版工作日记,连续统计了37个标准工作周,占应统计49个标准工作周的76%,从统计学角度应具有代表性。37个工作周我实际工作日为230.12天,...

    8年互联网老兵,2个月面试20家大厂的知识点总结和建议

    我不是什么大牛,我只是一个有八年工作经验的互联网老兵,既没有非常亮眼的学历,也没有牛逼大厂的履历。 这个冬天,在孩子得病从急诊转住院的时候,我得到了年前将被优化的消息,作为家里唯一经济来源的我整个人蒙...

    Java五子棋设计报告.doc

    2015年6月 目录 1引言1 1.1系统开发背景2 1.1系统开发的目的和意义3 1.2完成的主要工作4 2需求分析和总体设计4 2.1需求分析与设计思路5 2.1.1关键技术说明5 2.1.2需求分析5 2.1.3系统设计方案与思路5 2.1.4系统目录...

    计算机应用基础知识总结.doc

    计算机应用基础知识总结 第一章 1. 1946年第一台电子计算机ENIAC(埃尼阿克)在美国问世。 2. 计算机的时代划分: 电子管计算机时代、晶体管计算机时代、集成电路计算机时代和大规模集成电器计算 机时代。 3. 计算机...

    最新计算机应用基础知识总结.doc

    计算机应用基础知识总结 第一章 1. 1946年第一台电子计算机ENIAC(埃尼阿克)在美国问世。 2. 计算机的时代划分: 电子管计算机时代、晶体管计算机时代、集成电路计算机时代和大规模集成电器计算 机时代。 3. 计算机...

    计算机应用基础知识总结(1).doc

    计算机应用基础知识总结 第一章 1、 1946年第一台电子计算机ENIAC(埃尼阿克)在美国问世。 2、 计算机的时代划分: 电子管计算机时代、晶体管计算机时代、集成电路计算机时代与大规模集成电器计算 机时代。 3、 计算机...

    计算机应用基础知识总结概述.doc.doc

    计算机应用基础知识总结 第一章 1. 1946年第一台电子计算机ENIAC(埃尼阿克)在美国问世。 2. 计算机的时代划分: 电子管计算机时代、晶体管计算机时代、集成电路计算机时代和大规模集成电器计算 机时代。 3. 计算机...

    计算机应用基础知识总结(3).doc

    计算机应用基础知识总结 第一章 1. 1946年第一台电子计算机ENIAC(埃尼阿克)在美国问世。 2. 计算机的时代划分: 电子管计算机时代、晶体管计算机时代、集成电路计算机时代与大规模集成电器计算 机时代。 3. 计算机...

    QC数控式虎钳松紧装置的研制.doc

    我厂现所用于铲背或清根加工的设备是手摇螺旋式虎钳,通过手动转动摇柄,将运动传递到蜗轮、蜗杆结构实现紧固工作,不但生产效率底而且劳动强度大,需要两名操作工每天要旋转上万次松紧虎钳进行加工,工作至下班时...

    单片机(温度计).doc

    单片机课程设计报告 数字温度计 专业班级 电信083 姓 名 第八组 王爽 曾智 袁永华 罗朝霞 徐艳茹 时 间 14 周~ 15 周 指导教师 李川老师 2009 年 12 月 12 日 1设计要求 基本范围-55 -128 精度误差小于0.625 LED...

    单片机c语言课程设计交通灯(1).doc

    总结…………………………………………………………11 八.源程序………………………………………………………12 参考文献…………………………………………………………14 一.前言 近年来随着科技的飞速发展,...

    单片机c语言课程设计交通灯.pdf

    总结…………………………………………………………11 八.源程序………………………………………………………12 参考文献…………………………………………………………14 3 一.前言 近年来随着科技的飞速发展,...

    农业农村碳达峰碳中和项目建设方案.docx

    八、总结 本方案旨在通过推动农业农村碳达峰和碳中和工作,促进农业绿色发展和乡村振兴。通过实施农业减排固碳技术研发与推广、农业碳汇能力提升等措施,降低农业碳排放强度,提高农业碳汇能力。同时,加强政策引导...

    美丽乡村改善农村人居环境项目方案.pptx

    时间表:项目计划耗时X年,分阶段实施,确保按期完成。 负责人:明确项目负责人及各分项工作负责人,确保责任到人。 关键里程碑:设定项目启动、中期检查、项目完工等关键里程碑,便于跟踪项目进度。 资源需求:详细...

    美丽乡村改善农村人居环境项目方案.docx

    时间表:项目计划耗时X年,分阶段实施,确保按期完成。 负责人:明确项目负责人及各分项工作负责人,确保责任到人。 关键里程碑:设定项目启动、中期检查、项目完工等关键里程碑,便于跟踪项目进度。 资源需求:详细...

    Spark-Core学习知识笔记整理

    Spark-Core文档是本人经三年总结笔记汇总而来,对于自我学习Spark核心基础知识非常方便,资料中例举完善,内容丰富。具体目录如下: 目录 第一章 Spark简介与计算模型 3 1 What is Spark 3 2 Spark简介 3 3 Spark...

    企业上市相关IPO参考资料全集.zip

    八、IPO案例 上市路演 IPO特殊案例 阿里巴巴IPO案例 碧桂园高价IPO 工行IPO案例 几个典型IPO案例 无实际控制人IPO案例辨析 石油IPO案例分析 水电IPO案例分析兼IPO程序讲解 中海油IPO案例分析 阿里巴巴IPO招商书-英文...

    【推荐】超全超实用的医院内部绩效管理资料合集(132份).zip

    民营医院管理院长工作资料总结 民营医院网络咨询医生绩效管理要点概述 某民营医院目标责任管理实施方案 某年度临床科室绩效考核办法 某眼科医院绩效考核方案 某医院绩效管理实施办法(三级军队医院) 某医院绩效考核...

    LCD12864液晶显示电子钟设计.doc

    " "工作计"起止日期 "工作内容 " "划 " " " " "第一天 "课题绍,答疑,收集材料,C51介绍 " " "第二天 "设计方案论证,练习编写 C51 程序 " " "第三天~第六天 "程序设计 " " "第六天~第八天 "程序调试、仿真 " " ...

    课程设计基于单片机系统的数字电压表.doc

    数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继 电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从 0.01%-0.005%。 目前,数字电压表的内部核心部件是A/D转换器,...

Global site tag (gtag.js) - Google Analytics