zoukankan      html  css  js  c++  java
  • 毕业工作五年的总结和感悟(上)

    时间过得太快,立即就要大学本科毕业五年了,从实习就開始增加如今的公司。所以算起来增加如今公司的时间已经超过五年了。

    五年的时间非常长,而且这五年也是人生中事业(说事业感觉有点高大上,说职业可能更合适。只是我喜欢把什么事情都当做一份事业来干)最关键的时间。上次写工作总结的时候还是4年前了吧,刚毕业那个时候由于时间所实用于工作和研究技术了。所以能够抽出非常多时间来写东西。

    事实上写文章或者博客是非常花时间的,由于须要回顾和思考。正由于须要回顾和思考,所以写文章和博客事实上对自我的提升还是非常明显的,特别锻炼自己的表达能力。非常多人事实上技术非常nb,可是就是表达不出来,事实上就是由于对自己的总结和思考太少了。非常久不写文章了。我如今写起来都是非常慢的。想表达一个意思须要思考非常久。

    在正式写工作总结之前还是想谈谈今天回老家的感受。

    非常多邻居见了我都说我非常多年没有回去了,可是我总是认为我应该是常常回到那个熟悉的地方。感觉就像前几天刚回来过一样(曾经经过可是没有回去走走。熟悉的感觉应该是来至儿时的记忆和梦中常常回去)。回到老家的每个地方(我们的土地、老房子、老老房子、我们的每一棵树)都是那么的熟悉。那种儿时的回顾和感觉一下子就在我脑海里不断的浮现。这次回老家尽管非常匆忙,可是还是利用有限的时间把儿时的记忆都带着我如今的身体去过了一遍。遇见了非常多熟悉又陌生的邻居,由于我时间也非常赶,他们也正在忙着自己的事情,都是简简单单寒暄了几句。回老家所有的回顾都是儿时的艰苦生活,这就是触景生情。老家的格局变化不大,就是那条清澈的小河被污染的太严重了。

    先简介一下这五年都做了一些什么样的工作,然后在详细描写叙述每个工作内容的详细情况和收获。2011年3月进入公司实习。实习的内容就是开发一个Symbian的client(那个时候Symbian系统还占领大量中国用户的手机client)。后面毕业以后进入公司的第一个除总部以外的研发中心,这个时候開始调研分布式日志系统,也開始接触hadoop生态系统,接着開始做基于分布式文件系统的云存储系统,再下一个项目就是统一日志平台(相似splunk和elk的产品),后面又做了一年多的公有PAAS平台,几个月的docker。以上所有的项目我都是以技术负责人或者系统架构师的角色參与当中。2015年上半年带领五十多人的团队做整个公司的研发工具生态链的建设。下半年做一些技术产品创新的项目,当中异步并行框架小有成果。

    眼下主要负责技术委员会的建设、部门的server资源分配管理、专利评审、部门技术晋升流程与制度的制定和优化等,也负责部门一些项目的技术方案和架构的优化。

    在进入如今的公司实习曾经,自己已经在一个家具公司实习过一段时间,在家具公司里面主要做C#的开发,只是这个公司仅仅干了一个多月时间,然后又去了一家大型的上市外包公司做兼职,详细的工作就是在地震局做GIS系统的开发,主要使用到的技术就是ArcGIS+C#。这个从我最早的博客内容就能够看出来。

    后来我还使用这个项目作为我毕业时的论文。而且还得到了学校的优秀毕业论文。真正进入如今这家公司实习是2011年3月14号,那是从学校坐了1天的火车去首都实习的。实习的内容就是依据我们自己擅长的语言安排到各个项目组当中。由于我大学期间做嵌入式相关的项目和研究,所以对于C和C++比較熟悉,当然java语言基础也是学习了的,会使用SSH框架,只是自己当时的爱好和側重点还是在C++上面。所以自己去了一个与C++开发相关的Symbianclient项目组,在这个项目组中本身人就不多。2个有经验和2个实习生(加上我)。

    由于曾经没有接触过Symbian系统的开发,所以用了2天熟悉了Symbian开发环境和工具,做到能够自己开发一个简单的应用而且能够在Symbian的模拟器上执行起来。在熟悉开发环境和工具(sdk)期间给我们实习生安排了两个小项目给我练手。一个是简易的计算器,还有一个是九宫格。这些项目尽管非常小,可是对于从来没有接触过Symbian开发的人还是不知道怎么下手。可是由于自己的计算机基础非常好,主要是在大学期间锻炼好了非常好的自学能力(大学期间自己不断自学了非常多计算机基础知识和一些高级的专业知识:比如编译原理、linux操作系统内核、嵌入式操作系统uCOSII、ARM体系结构与开发。所以有非常好的自学能力),所以用非常短的时间就完毕了这两个小项目。

    leader看我完毕的还不错,而且通过平时和他的交流,他也深深的感受到我良好的计算机基础知识和非常强的学习能力。所以leader就開始分配一些真实项目的开发任务给我。可是都是整个项目里面的非常小的一块,而且框架已经搭建好。仅仅须要在固定的地方用代码实现指定的功能就ok。

    接触正式项目时,我还是非常小心翼翼,比較这是我第一次開始做正规项目,由于这个也是比較简单的功能。而且有成熟的模板能够參考,非常快的就完毕了功能。只是刚開始我总是非常小心。所以进行多次的測试和验证我实现的功能。确定了没有不论什么问题才提交给leader。经过这个正式项目的小模块功能锻炼,leader和我都发觉自己全然能够胜任正式的开发任务了,就開始把非常多独立的小模块交给我。包含架构的设计和代码的组织。随着不断的进行,我对Symbian开发也是更加的熟悉,基本上各种复杂功能和架构设计都是能够轻松的完毕。终于我们Symbian开发团队在时间非常紧迫和人员非常少的情况下顺利的完毕了Symbianclient上线。尽管在这个项目组中我仅仅简单的待过一个多月。而且这一个多月基本上是天天加班到凌晨3、4点,周末也是常常加班,我记得清明节也是连续加班。都是大家都非常激动的填写加班申请,而且都写的要求是工资低加班,结果后来还是仅仅换来调休。

    这也是我第一次正式的增加公司和团队一起作战,当时的自己每天都是充满了激情,不断的编写着自己喜欢的代码,累了的时候就和团队的其它人一起吹牛,一起吃饭和一起喝酒。我还记得一个周六加班的时候,那个晚上有刘德华的演唱会(我也是刘德华忠实的粉丝,不是由于他帅。也不是由于他歌唱得好,更不是由于他的演唱会是多么的精彩。当然更不是他是影帝。是由于他是劳模,一个靠自己辛辛苦苦努力实现自己梦想的普通人),由于我们上班离开演唱会的地方还是有一段距离。

    所以我就须要早一点出发。我也问问我们组的其它同事是否想去。他们刚開始说不是非常想去,那我一个人就自己出发去了,刚到楼下我们的leader就打电话给我。问我走到哪儿了,等他们一起去。

    终于我们4个人一起到达演唱会地点,现场去买的票。本来我说买最廉价的180。结果leader说买最贵的,只是当时最贵的票也仅仅剩380的。我们就买了这样的票,只是还是离舞台太遥远,看到的刘德华非常小,仅仅有通过大屏幕才干全然看清楚,只是现场的气氛太棒了,基本上是全场一直在一起high。我也算实现了一个小小的愿望。通过这个实习的项目让我全然的进入了工作的状态,在这期间我也学习了非常多移动端的开发知识,自己也自学了一点Android的开发。

    所以对于一个想进步的人是没有不论什么理由阻止他的,尽管我们工作的内容有限。可是我们能够自己去学习和工作内容非常相关的技术。后面从我还有一个项目也能够看出来。

    实习期间还发生了一个小插曲,就是在最后阶段我须要回老家參加一个高中同学的婚礼,由于他提前一个月就给我说了而且我也答应了,所以必须要回去。而且一个星期以后又是我亲哥结婚,所以我就准备请假回去了。而且就不回来继续实习了,由于还要回学校准备论文和项目。可是由于项目还有一些紧张,须要继续在干一段时间。

    当时我提出来以后上面的leader就不是非常高兴,就找了还有一个直接管我的leader(我是从其它团队划分到实习的项目组的。我真正的leader也是我如今的直接leader是即将成立分研发中心的负责人)。

    当时我和直接管我的leader事实上根本还不认识,他就直接过来找我谈话了。

    他了解了一下事情的经过和原因,然后我们就随便的聊了一些工作的事情。讨论了以后即将成立的研发中心的工作内容情况。他也了解了我熟悉一些什么样的技术。以及喜欢做一些什么样的技术。当我说了真实的我掌握了一些什么的技术以后,他比較吃惊,还重复问我没有吹牛吧。当时也没有办法证明,就仅仅能说后面有机会试试这些技术。最后还是找到一个折中的方案解决问题。就是參加完高中同学的婚礼在回来工作一个星期。只是当时公司是不能对这样的情况的机票进行报销的,可是也不能坐火车。由于时间来不及,终于我出了一半的机票,leader他们帮我攻克了一半的机票。

    毕业以后进開始真正的进入公司了。我进入的就是公司刚刚新成立的分研发中心。我是这个分研发中心的第一批员工,我也是公司招聘的第一届应届毕业生。由于是刚成立的分研发中心,非常多项目都须要从北京拿过来。当然还须要自主的研发一些新的创新项目。我毕业后进入公司的项目就是调研一个分布式的日志採集传输框架,终于选择的是一个Facebook开源的C++实现的框架scribe。我们的目标是让散落在各个server上的日志终于归集到一个集中存储里面,由于各个项目当时都是单独的汇总日志进行各自的业务数据分析。所以我们当时最主要就是给各个团队提供技术方案,而且帮助他们部署和解决遇到的问题。由于scribe的代码本身不多。所以全然能够所有掌握其代码,有了这个计划就须要全然投入时间去研究这部分代码了。

    在研究代码的过程中还是发现非常多不足和值得改善的地方。可是眼下是没有计划去改动的。大多数人最多做到这一步就已经非常不错了,能够把scribe的源代码所有熟悉,事实上非常多人在工作能够熟练的使用和运用就已经非常满足了,由于已经基本满足业务使用了。假设对技术有比較大的兴趣的话会把源代码大致浏览一遍。可是说实话scribe事实上本身是非常easy的,仅仅是考虑到各种日志传输的情况来支持各种业务,真正核心的技术是底层的分布式传输数据框架thrift。

    这个框架是真的非常强大,能够支持各种语言开发传输数据,而且能够支持多种协议。

    假设你不是一个真正喜欢技术而且愿意刨根问底的人根本不会对thrift感兴趣。或者根本都不会注意到它的存在和作用。

    由于当时研究scribe一段时间以后。确实认为没有什么能够继续深入去研究和学习的了,为了满足我强烈的学习愿望,我会对工作中涉及到的各种高级的技术产生浓厚的兴趣。所以自己又開始深入研究了thrift,而且针对它的C++版本号实现全然的阅读其源代码。包含从它的IDL语法。如何通过IDL文件生成相应的代码,各种传输协议的支持。编码解码和server模型,序列化方式等方面全然的从源代码进行解读,当然还和其它相似的框架进行对照。假设你还认为只是瘾。事实上还能够继续深入下去。thrift它的实现又使用了C++的boost库和libevent库。这个两个库又能够学习非常长时间了,而且都是非常有技术含量的技术。还能够在继续深入,由于这些库的实现终于都会依赖linux的API,能够继续学习linux系统编程。假设对linux的系统API实现感兴趣全然能够继续研究linux的内核实现。这样你全然就能够仅仅通过一个简单的分布式日志传输框架就学习到最最底层的linux内核。

    非常多人抱怨工作中使用到的技术都非常easy,仅仅是简单的写写业务逻辑的代码,特别是做web开发的。总认为自己没有机会接触到一些nb的框架或者更加底层的技术。事实上非常多技术就在我们工作的身边。仅仅是我们顺其自然的把它们都忽略了。比如非常多都是做java开发的。认为能够使用java的jdk和ssi框架开发业务逻辑就ok了,而且也认为这些业务逻辑做过一次两次就没有什么难度。假设自己的技术须要提高根本没有机会。事实上真正对技术感兴趣或者对自己有追求的,java使用的jdk全然能够深入的研究。看看他们是怎么实现的。jdk继续深入就能够了解到jvm的相关知识,假设继续深入全然能够看看开源jvm的实现,开源jvm终于也会使用到linux系统api。那么也是全然能够继续接触和学习linux内核的。ssi框架也基本上都是开源的,假设愿意深入学习其原理。全然能够掌握这些框架的实现。学习他们优秀的设计和实现。非常多东西大家可能看起来学习没有太多的用处。可是学习这些东西事实上在悄悄的改变你对技术的认知和感觉,然后使你的技术在无形中成长,非常多时候你不知不觉就已经使用上这些技术了。

    先写到这里吧,感觉写的东西太多。一篇文章非常难写完,就是上面这些内容我都已经写了快一个星期了,总是写写停停。打算还是分成三篇来写吧。


  • 相关阅读:
    正则获取HTML代码中img的src地址
    System.Diagnostics.Process 启动进程资源或调用外部的命令的使用
    按位取反运算符~
    Nhibernate Query By Criteria 条件查询
    Unit Test测试框架中的测试的执行顺序
    Jquery自定义插件之$.extend()、$.fn和$.fn.extend()
    如何采集QQ群中所有成员QQ号码
    Sql server使用Merge关键字做插入或更新操作
    c#类库和可移值类库的区别
    VS代码管理插件AnkhSvn
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7338619.html
Copyright © 2011-2022 走看看