不知不觉已经到了工做的第十个年头,很难想象时间会消逝得这么的快,真是印证了那句成语叫“白驹过隙"。
白驹在不停的向前跑,我也从一个职场菜鸟变成了一名老兵,每当回想起之前的一段段经历时,总以为本身应该要写点什么回顾一下。html
2009年是不平凡的一年,那会儿 sun 公司被甲骨文收购了。当你们都在津津乐道的讨论着 Java 的将来的时候,我才刚开始个人第一份工做。
那时去的是一家作电信业务的小公司,主要作数据分析管理方面的软件。那会公司在生存方面尚未什么问题,因为老板跟客户高层的关系比较铁,基本上产品都能卖的出去,团队不容易饿死。
但也由于是这样,公司的整个研发氛围比较"浮夸",也就是形式主义上的东西不少,一个开发部差很少四五十来人,几乎每月都要考一次试,内容就是编码规范、算法题云云。前端
老员工们对这些是不齿的,因此基本都是一些校招的小兵们会拿个好成绩..其中也包括我。可是你们内心也明白,出了校园就不能再是"高分低能"一族了。况且这种事情根本算不得什么。
所幸是同事都很热情,基本也不会跟咱们计较什么。除了工做上的热心帮助以外,时不时也会常常聚餐。并且那时候因为公司还有加班餐券的福利,致使咱们晚上个个成了楼下真功夫的常客,就连店里的服务员都爱跟咱们调侃:
"大家公司福利那么好阿,收转行的服务员吗?“程序员
在技术方面,因为刚开始什么都不会(学校里真的什么都不会教,或者说本身除了混完学历什么都没学到..),作什么也缺少自信。因而我偷偷下载了12G的 Java 教学视频,天天晚上看1-2小时...就这样从一个最简单的“鼠标画图” 小程序开始了个人程序开发之旅。同事老张知道了这事,给我推荐了很多好书,其中就包括《Effective Java》、《Java编程思想》这些,也就是后来,这些书让我对开发语言有了更加深刻的掌握。
尤为是Effective 系列,到十年后的今天仍然是Java领域的经典必读之做。web
团队里一直都喜欢贯彻学习、改进方面的事情,这跟老板的作事风格也有很大关系。我最有印象的是有一次作代码Review时,一哥们的代码被拿出来当典型了,一个if/else 嵌套了十层... 后来这哥们几个月后也离职了。老张感慨说,"其实写代码也就是 if、else这些东西"..
那会想一想也差很少如此,偶尔代码写得糟糕也是常事,只要不伤天害理不就好了。算法
我所在的小组负责一个了数据抽取软件,就是会将不少异构的数据源进行整合,按一些业务规则作转换处理,而后写入目标数据库。技术上采用的C/S架构,客户端是基于 Eclipse RCP 框架作的界面,后端用 SpringFramework +Jetty 定制了一套RPC服务。
那会凭着本身的兴趣深刻学了下Swing、JWT/JFace,也作了不少小工具,只是到后来 Java 在小程序、客户端UI方面根本没发展起来,对于这块技术的积累也没有产生更大的意义。
就从 web 前端技术在后来大肆流行的态势来看,当时的技术选择仍是"任性“了点。数据库
SpringFramework 是团队里主要用的框架,在那两年主要用的版本仍是 2.5,可是关于这块并无作过多的深刻了解,而只是应付一些普通的项目上的使用。为何?我认为大多数人可能跟我同样,被 SpringFramework 的概念绕的有点玄乎,什么控制反转、依赖注入,这种概念化的东西最终在解释上又好像很简单,甚至都怀疑是否是我根本就理解错了。到后来发现也就是如此,Spring 框架只是实现了一层简单的对象装载能力,相比那些难懂的 EJB、Web容器来讲轻量得多,很容易就被用到项目里头,跟各类开源组件作"胶水式"的整合。因此当时流行的SSH(Struts/Spring/Hibernate)三大框架里头,Spring 更像是一个"拉皮条"的角色:编程
Struts 作了表示层,搞定了MVC,Hibernate 作了持久层,搞定了ORM,而后 Spring 是..整合大家两个!小程序
这里扯的有点远,只是想表达的一点是:技术框架自己就是为了解决复杂度而生的,每每并不如想象中那么可怕。后端
在这个阶段,曾借助框架完成的一件有印象的事情是:网络
把一个 4000 行的充满 if/else 的类进行了重构,硬生生拆成了20个绝不相干的子模块。最后还受到了领导的表扬..
尽管这家公司不大,但我所在的三年里也经历了许多使人意外的变更。
第一件事是高层的政治斗争,那会公司的研发副老是新上任的,其性格和作事方式上都很是强势,尤为是对于老员工一些混日子的态度特别看不惯,这点跟他非技术出身应该有很大的关系。因而在任职期间,他在公司里大搞特搞军事化管理,严查考勤,搞野外军训拓展。许多老员工都是敢怒不敢言,但因为老板从态度上更信任这位副总,不少人最终就选择了离职。
第二件事是研发总监的出轨,前面那件事里头,由于政治斗争的缘由,公司里原来的总监也被离职了。这一位是后补的管理者,我对这我的的印象不深,只记得比较爱开玩笑,喜欢搞搞小团体。在公司里头推广了自研的一套web框架,一些核心项目的底层也给换成了这个框架。而后就是忽然某一天人就没来上班了,才知道是这破事让许多人给知道了,而后是他带来的核心团队也一并走掉了,留下了一堆烂摊子。
第三件事跟管理层就没有什么关系,主要是公司业务的发展遇到了瓶颈,因为互联网的冲击,那会传统的软件厂商都是很差受的。
在2010年末,当时华为想搞云计算大范围开放了社招,公司里头能干的人基本都跳槽过去了。
而我呢,就在一次次的送别后天然而然的成为了项目组的骨干。固然除了人员离职的缘由以外,我自身的成长也仍是比较明显的。
这里提到了成长,一方面是对于企业而言,个人岗位能力提高了,对于公司的许多项目、流程机制都很是了解,已经具有带新人的条件。
另外一方面,在我的技能上,对于Java开发的能力有了相对全面的掌握,包括不限于多线程并发、网络编程、JVM结构这些东西;
而在 Web 开发方面,基本上用SSH 作出一个网站项目也不是什么难事。得益于数据处理软件开发的特色,所以对各类关系型数据库都有涉猎。
关于这些点,我都给写到了我后来求职的简历里面。
那么之因此后来离开,也是由于以为在那里的成长已经停滞了。当时有个说法叫 "程序员,三年跳一跳,愈来愈美妙"
“当我在谈论 jvm结构和 rmi 技术时,身边的同事只会聊起八卦和体育彩票的事情,而我压根也不喜欢博彩类的东西。”
固然另一个缘由是以为薪资过低,以为本身应该出去看一看新机会了。
接下来,在移动互联网的大潮中,我选择了一家处于上升期的企业,开始了另外一段职业上的旅程。