老兵的十年职场之路(一)

来自微信公众号:美码师

不知不觉已经到了工作的第十个年头,很难想象时间会消逝得这么的快,真是印证了那句成语叫"白驹过隙"。
白驹在不停的向前跑,我也从一个职场菜鸟变成了一名老兵,每当回想起以前的一段段经历时,总觉得自己应该要写点什么回顾一下。
在这里插入图片描述

初出茅庐

2009年是不平凡的一年,那会儿 sun 公司被甲骨文收购了。当大家都在津津乐道的讨论着 Java 的未来的时候,我才刚开始我的第一份工作。

那时去的是一家做电信业务的小公司,主要做数据分析管理方面的软件。那会公司在生存方面还没有什么问题,由于老板跟客户高层的关系比较铁,基本上产品都能卖的出去,团队不容易饿死。
但也因为是这样,公司的整个研发氛围比较"浮夸",也就是形式主义上的东西很多,一个开发部差不多四五十来人,几乎每个月都要考一次试,内容就是编码规范、算法题云云。

老员工们对这些是不齿的,所以基本都是一些校招的小兵们会拿个好成绩…其中也包括我。但是大家心里也明白,出了校园就不能再是"高分低能"一族了。何况这种事情根本算不得什么。
所幸是同事都很热情,基本也不会跟我们计较什么。除了工作上的热心帮助之外,时不时也会经常聚餐。而且那时候由于公司还有加班餐券的福利,导致我们晚上个个成了楼下真功夫的常客,就连店里的服务员都爱跟我们调侃:

“你们公司福利那么好阿,收转行的服务员吗?”

在技术方面,由于刚开始什么都不会(学校里真的什么都不会教,或者说自己除了混完学历什么都没学到…),做什么也缺乏自信。于是我偷偷下载了12G的 Java 教学视频,每天晚上看1-2小时…就这样从一个最简单的“鼠标画图” 小程序开始了我的程序开发之旅。

同事老张知道了这事,给我推荐了不少好书,其中就包括《Effective Java》、《Java编程思想》这些,也就是后来,这些书让我对开发语言有了更加深入的掌握。尤其是Effective 系列,到十年后的今天仍然是Java领域的经典必读之作。

团队里一直都喜欢贯彻学习、改进方面的事情,这跟老板的做事风格也有很大关系。我最有印象的是有一次做代码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 技术时,身边的同事只会聊起八卦和体育彩票的事情,而我压根也不喜欢博彩类的东西。”
当然另外一个原因是觉得薪资太低,觉得自己应该出去看一看新机会了。

接下来,在移动互联网的大潮中,我选择了一家处于上升期的企业,开始了另一段职业上的旅程。

本文转自微信公众号美码师,如需转载请联系原创授权,请问对本文进行二次转载!

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值