您的位置:首页 > 其它

我工作这两年

2015-05-16 21:41 134 查看
  从13年毕业,也快工作两年了,上个月换了工作,所以总结下这两年的学习历程。

  12年校招的时候,我以一个 Java 工程师的身份走上了开发的路,算上轮岗,实际上正式进入研发部门还是13年9月底了。

  轮岗结束,我才知道公司的研发方向已经发生了很大的改变,当初招聘的时候公司准备将 C#.NET 替换成 Java 体系,所以有了很多 Java 背景的校招生,后来因为腾讯的“入侵”,C#.NET 逐渐被替换成 PHP 和 CPP。而我,被分到了架构组,还是做 C#.NET,因为还有很多系统没有完成迁移,需要做一些需求。

  我当时很茫然,首先我没有太多 C#.NET 的经验,而且本身也不是很喜欢这门语言(实际上我对微软很多东西不感冒,现在倒越来越喜欢微软了);其次,让一个本科毕业的学生在架构组混,我压力很大,首席就在我们组里,第一天就跟我罗列了很多我们会用到的技术点,我都没听过......我真是有点为自己的前途担忧了,找领导谈了很多次,终究还是被领导说服了先待着。

  可是运气又实在不太好,我的导师离职了,于是我过上了没人管的状态。大概过了一两周,组里来了个新同事,成了我的导师,他人还不错,我跟他表示了我的担忧以及如何学习 C#.NET,他给了推荐了一本书:《CLR via C#》。大家都知道我的情况,所以没有给我分配什么实质性的任务,于是我的所有事情就是学习了。我打算先通读一遍这本书,再在关键节点去攻克。大概花了三周时间,我把书基本看完了,也基本了解了 C# 这门语言(其实学校学习了点,所以这个不用花太多时间)和 .NET 框架了。我大概觉得我可以写一些小需求了。

  当然,要是这样就太没意思了。有天下午,我们突然被领导挨个叫去开会,我就觉得有什么事情要发生了,因为一般情况下都是提前预定会议,而且都是我们找领导。果不其然,研发部门的老大也来了,然后宣布架构组解散......好吧,其实我心里乐开了花,我终于不用写 C# 了。

  我被分到了一个做 CPP 的组,我又有点高兴不起来了。我的 CPP 学得很烂,以前就是搞不懂 CPP,然后转去学 Java 了。真是命运多舛啊,不过让我高兴的是组里的同事都非常 nice,尤其是我的导师,我们一起校招的同学都对此十分羡慕,居然有导师可以如此主动、耐烦的讲解业务,随时解决各种低级问题。

  组里大概给了我一个月的时间学习,我基本把所有 CPP 代码看了一遍。在良好的团队氛围里,我也可以比较轻松的随时骚扰其他组员,问问题,工作之余,我把大学的两本书:《C++ Primer》和 《C++ 编程思想》高效的看了一遍,于是一个月后我把我的 CPP 水平提升到一个可以依葫芦画瓢的水平了(我对此还是很认可的,我开始喜欢这门语言了)。

  事情永远不会这么简单的。

  我的第一个任务是做对账系统(我个人觉得应该是工具),用 Python!!!人生好累啊,好在 Python 这门语言比较简单,我在看了一些同事写的 Python 代码后,加上发挥死缠烂打随时问的不要脸精神,可以慢慢完成一些编程了,写过几次后,就觉得用 Python 写数据处理相关的脚本简直太爽。

  13年就这么过去了。

  我第一次写 CPP 是系统优化,心里真的是蛮兴奋的(我觉得我终于干上正经事了),虽然出了一些差错(比如写了select *这种代码)还有第一次发布失败大晚上打leader 和导师电话,终于还是完成了这个服务。

  就这样,我慢慢参与了一些服务的开发,以为走上了康庄大道。

  年后,谣言四起:公司合并。很多项目都停了,领导也不辟谣,处于信息链底端的我们只能瞎分析,然后一边抓紧时间学习(那会儿我还没去看外面的机会,毕业半年的学生,应该是没有什么市场的),一边吃着“散伙饭”。

  那真的是段不错的时光。我把 STL 的源码都看了一遍,大概知道标准库的实现了;看了《程序员的自我修养》,大概知道了程序的编译链接过程了;看了《UNIX 环境高级编程》,大概知道了 *nix 系统常用的 API 了。

  终于,公司还是合并了。等到公司高层确定了运作方式后,我们便开始了一个浩大的工程:系统融合。融合是痛苦的,双方公司的文化背景、技术背景都不一致,而且本来以前就是竞争对手,虽然大家都说开放的心态,总感觉很多人心里还是在较着劲。于是我觉得以前一周可以完成的事情需要一个月甚至更久来完成,双方经常会为了一些很小的事情上纠结很久,比如我曾和对方的同事在网络上耗了两天,还拉上了运维同事一起耗。

  最痛苦的融合初期完成了,后面的事情都是“前人栽树,后人乘凉”了,要轻松愉快很多了。

  14年5月,挑战终于来了。

  由于原先的统一后台的同事全部转岗,我们组(六七个 C++,三四个 刚从 PHP 转 C++)需要承接整个网站后台系统和框架组件。当时内部的讨论也很多,甚至考虑过自己使用 Thrift 搭建一套框架了。最终我们还是认命了,算起来一个人要承载原先一个小组甚至几个小组的系统了。

  人的潜能是无限的,我们居然 hold 住了!!!

  过程当时是痛苦的,说一两个吧。1、系统交接第二天,我在不知道系统任何代码,数据的情况下,领导给了一个数据库连接给我查问题......我甚至都不知道数据表的分表规则;2、线上 bug,我当场看源码最终修复,期间发布多个版本测试。

  好处就是,我拥有50多个系统的 svn 权限,包括框架和组件,一有时间,我便畅游在前人的沉淀之中。几个月后,我成了公司里整个框架最熟悉的几个人之一(我自认为),之后写代码就轻松加愉快了。

  快乐的日子都是短暂的,我感觉自己来到了舒适区,越来越难找到那份挑战自己的乐趣了。

  15年4月,我终于决定去尝试新的事情了,然后回到了 Java 的怀抱,新的故事开始了。

  感谢这两年一直帮助我的同事、朋友,尤其是我的导师,也感谢自己的努力,希望能在编程这条路上越走越远。

  谨以此纪念我这两年的努力,下面是我这两年学习 C++ 看的书和资料,别的语言比较杂,不列了。

  《C++ Primer 4th》

  《C++ 编程思想》

  《深入理解 C++ 对象模型》前一半

  《STL 源码分析》以及 STL 源码

  《Effective C++》

  《More Effctive C++》

  《Effective STL》

  《C++ Templates》

  《Boost 相关文档》

  各种内部知识分享平台资料和牛人博客

  

  其他:

  《程序员的自我修养》前一半

  《编译原理(龙书)》前一半

  《Unix 环境高级编程》

  《Unix网络编程卷2》若干章节

  《TCP/IP 详解卷一》这本书太枯燥,没看完,而且也没理解透,以后还要看

  《高性能 MySQL》

  《设计模式》

  《Linux多线程服务端编程--muduo》

  Linux 0.0.1版本源码阅读 + Linux 0.9.9版本 net 模块阅读(正在看)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: