最近很久没有更新博客了,实在太忙。因为在这段时间里我做了一个改变了我现在职业生涯的一个决定,而我现在正在为这个决定而加倍的努力付出。

我认为我还是有必要把这个比较重要的节点记录下来,我也是第一次在自己的博客里面写这种偏阅读非技术类的文章,虽然没有技术细节,却又与技术息息相关。

决定转岗

我在大概两周前,从Web开发转到了游戏服务器开发。很多我周边的人知道后都认为跨度太大了。的确,Web后端跟游戏服务器相对比,虽然都可以归类为后端,但是不管从技术上还是业务上,两者之间都存在很多本质上区别,例如语言、架构和通信协议等等。

转岗前的状态

那么我是在什么情况下做的这个决定的呢?

每天朝九晚七,偶尔系统上线前加加班。做的都是内部系统,每个系统几乎都是针对不同的用户群。

业务在技术上没有什么阻塞点,框架和集群都已经慢慢稳定了,每天唯一需要下功夫去做的就是梳理当前要做的东西的业务,然后用符合现有框架的代码去实现这个业务。

几乎没有遇到过什么重大BUG,也没有遇到过什么无法解决的技术难题。然后我还维护着部门的所有环境的集群,也维护着部门每天都在用的自研发的自动化部署工具,时不时的对其进行功能上的更新和BUG的修复。

由于在部门呆的时间比较久,又维护着集群和一些部门公用的一些工具,在技术还算是比较有权重。

为什么要转岗

看到这可能有有些疑惑,不是挺好的吗?为什么要转岗,并不是那个环境有任何的问题,可能会有很多人甚至向往那样的环境,我把这归结为我自己的“毛病”。

我比较喜欢"自虐",喜欢给自己施加压力,一旦让我闲下来我会浑身不自在,觉得自己实在浪费时间。这也是为什么会在每天下班之后先去健身, 然后再回去上班,9-10点下班。但是我仍然会给自己休息的时间,但是这个时间比较少但是对我足够了。

我在刚刚描述的那个环境里,就觉得比较不自在。我自认为自驱动力还是可以,我驱动自己在工作之余做了很多事情,例如维护集群,更新自动化工具,然后优化代码,写博客,自我提升。但是长期这样下去,我感觉自己push的力度已经很大了,但是仍然没有办法满足我内心的预期。

大家都知道,一套牛逼的框架诞生背后是什么驱动。是业务。

人也一样,或者说具体一样,对程序员也一样。只要 强大的业务在背后做驱动,我们才会为了解决这个业务去做一些事情,这个”事情“诞生的过程,可能对一个程序员的提升才最大。

为什么不离职

这存粹是个人的原因,我17年就来这家公司实习了,在里面认识了很多人,大家都很nice,公司有免费的健身房、图书馆。还有健身教练,我个人跟这位教练虽然没有私下的交集,但是每天一起撸铁互虐还是很开心。图书馆里有很多好的书籍可以看,然后公司的办公环境也很不错。

而且最开始我加入的时候就是冲着游戏来的,但是事与愿违,没有进到项目组。

转岗意味着什么

从Web到游戏服务器,我放弃了很多东西。你在Web那边可能是一个老鸟,对一切需求技术得心应手,甚至还可以重构框架和服务。

但是到了这边,在业务上是一个十足的菜鸟,可能你会跟刚刚进公司的实习生做同样的事情。你得有一个很好的心态来面对这个事情。

同时你还需要在短时间内快速的转变思维,学习大量的东西,尽快的熟悉业务。这个挑战很大。同时转岗有可能会对你的职业生涯甚至规划造成比较大的影响,所以首先你得有一个明确的职业规划,知道自己想要做什么。

为什么要写这篇博客

我写这篇博客,首先是纯粹的为了记录自己的职业生涯,同时把自己的经历和做决定的过程分享出来,帮助那些想要踏出自己的舒适区,但是仍然在犹豫的人提供一个参考。

one more thing

在最近这段时间,我渐渐的改变了对某些事的观点。

以前我写博客,都会考虑很多,这样写会不会太水了?这个技术点是不是没有什么可以分享的?因为有这些顾虑,本来有很多本来应该发表出来的博客就这样躺在了草稿里。

就比如这篇文章,创建的时间是7月16号,今天已经是7月24号了,磨磨蹭蹭的,改了又删。我索性就一气呵成,把自己想说的完完全全的说出来。

总结下来就是一句话,Done is better than perfect

最后

我的经历仅供大家参考。如果你不甘现状,那就去改变现状。

从web到游戏,走出舒适区的更多相关文章

  1. C语言(简单游戏)-走出迷宫

    #include <stdio.h> //宏定义 maze[ROWS][COLS];行和列; #define ROWS 7 #define COLS 6 //绘制迷宫(全局变量) char ...

  2. WEB与游戏开发的一些区别

    WEB与游戏开发的一些区别 前言 ​ 最近由于在准备期末考,以及准备实习.其实都没好好写过博客,但今天由于个人身边的一些事,所以对做web和做游戏开发的区别做个记录,以下都是从网上搜索到的资料文章,感 ...

  3. 刻意练习,逃离舒适区——怎么样成为一个高手[罗辑思维]No.183_知识笔记

    2016/10/30 14:31:32   一.对事物的见解分为两类:         1.评论性的见解               说的内容都是对的,符合常理的,但是却是不解决问题的.       ...

  4. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)[转]

    前一段时间,讲了一系列开发经理.实施经理.服务经理的工具箱:开发经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) ,实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成 ...

  5. Sql Server查询性能优化之走出索引的误区

    据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是, ...

  6. 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT

    . 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT 拜占庭 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区Q ...

  7. ofo走出校园观察:市场定位导致产品错位?

    Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...

  8. 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]

    前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...

  9. 走出测试,走向CEO

    飞测说:大家好,我们又见面了,我是黑夜小怪.不巧,今晚加班回来路上,湿身了,淋了个落汤鸡,不过明天也许可以看海了,也就呵呵了,原本想回来后聊些技术的,现在突然想先聊聊我的一些想法,仅供交流. 走出测试 ...

随机推荐

  1. Django forms组件与钩子函数

    目录 一.多对多的三种创建方式 1. 全自动 2. 纯手撸(了解) 3. 半自动(强烈推荐) 二.forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组 ...

  2. Java多态之向下转型

    目录 Java多态之向下转型 强制类型转换 instanceof Java多态之向下转型 往期回顾:我们学习了向上转型和动态绑定的概念,可以知道在继承关系中,将一个子类对象赋值给父类的引用变量,调用父 ...

  3. Openstack简述

    1.Openstack项目发展概况: Nova 计算服务 Swift 对象存储服务 Glance   镜像服务 Neturon 网络服务 Keystone   身份认证服务 Celimeter   计 ...

  4. ASP.NET操作Excel

    使用NPOI操作Excel,无需Office COM组件 部分代码来自于:https://docs.microsoft.com/zh-tw/previous-versions/ee818993(v=m ...

  5. java之枚举和注解

    JDK1.5新增的enum关键字用于定义枚举类. 枚举类和普通类的区别: 使用enum定义的枚举类默认继承了java.lang.Enum类: 枚举类的构造器只能使用private修饰符: 枚举类的所有 ...

  6. 源码角度分析-newFixedThreadPool线程池导致的内存飙升问题

    前言 使用无界队列的线程池会导致内存飙升吗?面试官经常会问这个问题,本文将基于源码,去分析newFixedThreadPool线程池导致的内存飙升问题,希望能加深大家的理解. (想自学习编程的小伙伴请 ...

  7. 【转载】记一次因 Redis 使用不当导致应用卡死 bug 的排查及解决!

    说明:此篇文章 作者分析问题的思路很好,值得学习记录,原文转载自公众号. 首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 , ...

  8. Java8新特性之接口defualt,static方法

    简介 作用 Java8中接口引入了defualt,static两种方法提供默认实现,彻底打破了接口不能有默认实现的规定 static 让接口类似于工具类,提供一些静态方法 static方法不会被子类继 ...

  9. js 淡入淡出的tab选项卡

    代码如下 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  10. Java源码记录 - AbstractMap

    路径java.util.AbstractMap ()构造方法 /** * 唯一的构造器.(一般由子类隐式调用) */ protexted AbstractMap(){ } size()返回当前map的 ...