从web到游戏,走出舒适区
最近很久没有更新博客了,实在太忙。因为在这段时间里我做了一个改变了我现在职业生涯的一个决定,而我现在正在为这个决定而加倍的努力付出。
我认为我还是有必要把这个比较重要的节点记录下来,我也是第一次在自己的博客里面写这种偏阅读非技术类的文章,虽然没有技术细节,却又与技术息息相关。
决定转岗
我在大概两周前,从Web开发转到了游戏服务器开发。很多我周边的人知道后都认为跨度太大了。的确,Web后端跟游戏服务器相对比,虽然都可以归类为后端,但是不管从技术上还是业务上,两者之间都存在很多本质上区别,例如语言、架构和通信协议等等。
转岗前的状态
那么我是在什么情况下做的这个决定的呢?
每天朝九晚七,偶尔系统上线前加加班。做的都是内部系统,每个系统几乎都是针对不同的用户群。
业务在技术上没有什么阻塞点,框架和集群都已经慢慢稳定了,每天唯一需要下功夫去做的就是梳理当前要做的东西的业务,然后用符合现有框架的代码去实现这个业务。
几乎没有遇到过什么重大BUG,也没有遇到过什么无法解决的技术难题。然后我还维护着部门的所有环境的集群,也维护着部门每天都在用的自研发的自动化部署工具,时不时的对其进行功能上的更新和BUG的修复。
由于在部门呆的时间比较久,又维护着集群和一些部门公用的一些工具,在技术还算是比较有权重。
为什么要转岗
看到这可能有有些疑惑,不是挺好的吗?为什么要转岗,并不是那个环境有任何的问题,可能会有很多人甚至向往那样的环境,我把这归结为我自己的“毛病”。
我比较喜欢"自虐",喜欢给自己施加压力,一旦让我闲下来我会浑身不自在,觉得自己实在浪费时间。这也是为什么会在每天下班之后先去健身, 然后再回去上班,9-10点下班。但是我仍然会给自己休息的时间,但是这个时间比较少但是对我足够了。
我在刚刚描述的那个环境里,就觉得比较不自在。我自认为自驱动力还是可以,我驱动自己在工作之余做了很多事情,例如维护集群,更新自动化工具,然后优化代码,写博客,自我提升。但是长期这样下去,我感觉自己push的力度已经很大了,但是仍然没有办法满足我内心的预期。
大家都知道,一套牛逼的框架诞生背后是什么驱动。是业务。
人也一样,或者说具体一样,对程序员也一样。只要 强大的业务在背后做驱动,我们才会为了解决这个业务去做一些事情,这个”事情“诞生的过程,可能对一个程序员的提升才最大。
为什么不离职
这存粹是个人的原因,我17年就来这家公司实习了,在里面认识了很多人,大家都很nice,公司有免费的健身房、图书馆。还有健身教练,我个人跟这位教练虽然没有私下的交集,但是每天一起撸铁互虐还是很开心。图书馆里有很多好的书籍可以看,然后公司的办公环境也很不错。
而且最开始我加入的时候就是冲着游戏来的,但是事与愿违,没有进到项目组。
转岗意味着什么
从Web到游戏服务器,我放弃了很多东西。你在Web那边可能是一个老鸟,对一切需求技术得心应手,甚至还可以重构框架和服务。
但是到了这边,在业务上是一个十足的菜鸟,可能你会跟刚刚进公司的实习生做同样的事情。你得有一个很好的心态来面对这个事情。
同时你还需要在短时间内快速的转变思维,学习大量的东西,尽快的熟悉业务。这个挑战很大。同时转岗有可能会对你的职业生涯甚至规划造成比较大的影响,所以首先你得有一个明确的职业规划,知道自己想要做什么。
为什么要写这篇博客
我写这篇博客,首先是纯粹的为了记录自己的职业生涯,同时把自己的经历和做决定的过程分享出来,帮助那些想要踏出自己的舒适区,但是仍然在犹豫的人提供一个参考。
one more thing
在最近这段时间,我渐渐的改变了对某些事的观点。
以前我写博客,都会考虑很多,这样写会不会太水了?这个技术点是不是没有什么可以分享的?因为有这些顾虑,本来有很多本来应该发表出来的博客就这样躺在了草稿里。
就比如这篇文章,创建的时间是7月16号,今天已经是7月24号了,磨磨蹭蹭的,改了又删。我索性就一气呵成,把自己想说的完完全全的说出来。
总结下来就是一句话,Done is better than perfect
最后
我的经历仅供大家参考。如果你不甘现状,那就去改变现状。
从web到游戏,走出舒适区的更多相关文章
- C语言(简单游戏)-走出迷宫
#include <stdio.h> //宏定义 maze[ROWS][COLS];行和列; #define ROWS 7 #define COLS 6 //绘制迷宫(全局变量) char ...
- WEB与游戏开发的一些区别
WEB与游戏开发的一些区别 前言 最近由于在准备期末考,以及准备实习.其实都没好好写过博客,但今天由于个人身边的一些事,所以对做web和做游戏开发的区别做个记录,以下都是从网上搜索到的资料文章,感 ...
- 刻意练习,逃离舒适区——怎么样成为一个高手[罗辑思维]No.183_知识笔记
2016/10/30 14:31:32 一.对事物的见解分为两类: 1.评论性的见解 说的内容都是对的,符合常理的,但是却是不解决问题的. ...
- 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)[转]
前一段时间,讲了一系列开发经理.实施经理.服务经理的工具箱:开发经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) ,实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成 ...
- Sql Server查询性能优化之走出索引的误区
据了解绝大多数开发人员对于索引的理解都是一知半解,局限于大多数日常工作没有机会.也什么没有必要去关心.了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是, ...
- 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT
. 异数OS-织梦师-PBFT(六) 走出区块链,加速破解PBFT 拜占庭 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区Q ...
- ofo走出校园观察:市场定位导致产品错位?
Ofo和摩拜单车虽然同样都是做单车共享,但实际上两者在最初的市场定位是有明显的差异的,因此提供的产品方案也存在巨大的差异. 市场定位不同,导致产品方案的巨大差异 摩拜单车一开始就定位于开放市场,充分的 ...
- 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]
前段时间,写了一个开发.实施.服务费用计算三部曲. 水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八) 实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九 ...
- 走出测试,走向CEO
飞测说:大家好,我们又见面了,我是黑夜小怪.不巧,今晚加班回来路上,湿身了,淋了个落汤鸡,不过明天也许可以看海了,也就呵呵了,原本想回来后聊些技术的,现在突然想先聊聊我的一些想法,仅供交流. 走出测试 ...
随机推荐
- Django forms组件与钩子函数
目录 一.多对多的三种创建方式 1. 全自动 2. 纯手撸(了解) 3. 半自动(强烈推荐) 二.forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组 ...
- Java多态之向下转型
目录 Java多态之向下转型 强制类型转换 instanceof Java多态之向下转型 往期回顾:我们学习了向上转型和动态绑定的概念,可以知道在继承关系中,将一个子类对象赋值给父类的引用变量,调用父 ...
- Openstack简述
1.Openstack项目发展概况: Nova 计算服务 Swift 对象存储服务 Glance 镜像服务 Neturon 网络服务 Keystone 身份认证服务 Celimeter 计 ...
- ASP.NET操作Excel
使用NPOI操作Excel,无需Office COM组件 部分代码来自于:https://docs.microsoft.com/zh-tw/previous-versions/ee818993(v=m ...
- java之枚举和注解
JDK1.5新增的enum关键字用于定义枚举类. 枚举类和普通类的区别: 使用enum定义的枚举类默认继承了java.lang.Enum类: 枚举类的构造器只能使用private修饰符: 枚举类的所有 ...
- 源码角度分析-newFixedThreadPool线程池导致的内存飙升问题
前言 使用无界队列的线程池会导致内存飙升吗?面试官经常会问这个问题,本文将基于源码,去分析newFixedThreadPool线程池导致的内存飙升问题,希望能加深大家的理解. (想自学习编程的小伙伴请 ...
- 【转载】记一次因 Redis 使用不当导致应用卡死 bug 的排查及解决!
说明:此篇文章 作者分析问题的思路很好,值得学习记录,原文转载自公众号. 首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象 刚开始当测试抱怨环境响应慢的时候 , ...
- Java8新特性之接口defualt,static方法
简介 作用 Java8中接口引入了defualt,static两种方法提供默认实现,彻底打破了接口不能有默认实现的规定 static 让接口类似于工具类,提供一些静态方法 static方法不会被子类继 ...
- js 淡入淡出的tab选项卡
代码如下 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...
- Java源码记录 - AbstractMap
路径java.util.AbstractMap ()构造方法 /** * 唯一的构造器.(一般由子类隐式调用) */ protexted AbstractMap(){ } size()返回当前map的 ...