作者:春天花会开foryou

oschina.net/question/3465562_2281392

今天分享一位同行的经历:

本人Java开发6年半不到7年的样子。

英语专业,临毕业跟着隔壁专业去培训了四个月 Java 。

跟他们一起来了北京找工作,一找就是 5 个多月,面试 100 多家公司。最终还是隔壁专业的同学介绍到他们公司才就业了。

入职后同学就是我的领导,技术相对一般,我们做 Java 游戏后端的,时间很快,一眨眼,我就跟着混了四年,每天就看些博客,书籍,业务上也会做功能,但自觉做的比较蠢。没什么太大进步。

四年时间很快乐,跟着老板,同学,从一点不会,到能独立完成工作,能自主做一点小小设计。但技术上说真的,差得太远。

随着心越来越慌,工资水平属实也太低 6K 多,于是四年这个节点,我跳槽了,工资翻倍。这是一份非常苦的工作,曾经2个多月没放假,也曾经连续四天四夜没回家,工作到凌晨 3 点是司空见惯。

然而我只是个小兵,加班加了 10 个月,游戏上线两个月,人员就全部裁掉了。由于 Java 一直感觉没有入门,框架方面 掌握的也比较少,这个 MMO 的项目本是练手大好时机,连忙带懒就也这么过来了。

随后不知道算走运还是算倒霉,找到了上市公司的工作,20K「我梦想中的工资是 25K,如果达到就打算不再跳槽了,为什么是25K?因为游戏Java后端基本上 30K 算是一个封顶,哈,当时比较幼稚,以为就这么干着,早早晚晚也能混到最后,就算技术不行,吃透两套框架,在游戏圈就能立住脚」。

说是走运,因为工作相对简单,我 1 个后端对 6 个前端,听起来挺唬人,但其实还是做业务,但因为只有我一个人接手这个项目,所以我也算是主程,当时我觉得我的人生的每一步真是走的太好了,缺什么来什么,想要架构,想要自己来就有机会了,这一年多感觉特别顺利,也觉得自己终于像是入了门,不再害怕工作上的需求了。

但说是倒霉呢 ,其实也就是因为这一切其实都是假象,我根本还是几年前的那个自己,只是因为业务熟练了,以为自己行了。

这公司也是裁员,我在这里做了一年半不到,临走给了 N+1,美美的拿着钱,找自己梦想中的 25K 去了。并且决定不做游戏了,因为游戏公司有名的就那几家,没啥大发展,还是互联网好,差不到 40K 封顶,我以上所说的封顶都是指很普通的人啊,大佬就别跟我计较了。

就在裁员的第二天,我面试了京东一个物流创新部,好像是这个名字,那天我记得特别清楚,经过了一下午面试(面试的难度真是超级低,我在那里侃侃而谈,最难的问题也只是线程池那几个参数)。

然后,过了。我真的感觉自己要一飞冲天,当时在想,在这里不能做太久,公司的文化太诡异,一切围绕着强东转,公司的人说话好像都在躲着什么东西,加班也是每天固定,然后大小周。因为正赶上过年,面试的人说年后人事会联系我走流程,就能入职。

这一去就天差地别了,我在家等了一个半月,中间经过无数询问面试者,人事等,后来,流程跑着跑着就没了。当时觉得京东真是让人开眼,还特么带这么玩的。

这时候,我还是不知道愁~然而,马上就要觉醒了。我又去面试,还是25K,有时候你认真的要价真的比猥琐要好很多,我当时就是愣要,大部分人还真信。记得收到的OFFER有必要商城,赢时胜等等,后来去了一家做语音的公司负责做云平台。哈哈,这份工作只做了三天半。从入职第一天就夜夜失眠,为毛?因为看不懂代码,压力很大。

以前做游戏觉得大家都是吊丝,每天在一起呼呼哈哈,确实也快乐,有什么需求甚至直接在座位上喊着沟通这样。但是这家公司就比较正规了,我以为互联网公司都是这个样子的,同事之间一天一句话都不说,主程也只给我简单说了说流程,就自己看代码吧。

我虽然技术渣,但有时候对自己要求还是挺高的,总想快速的上手代码,这代码这手上一天,两天,三天,连个皮毛都没看出来,就慌的不行,当时就开始知道自己代码水平有点渣了,但以为自己是不适应,这次找工作其实也挺波折,醒悟是一个缓慢的过程。

所以还是想着回游戏行业,毕竟自己历经三家公司,都没碰到什么难度,虽然寻路啊,地图啊,战斗啊这些自己都完全整不了,但是还是能完成普通工作的,此时的我还以为自己能搭框架呢,啊哈哈。

于是我就辞了,公司真的不错,14薪,要走还好顿要留我。当时以为自己是不适应走的。现在回头想想,其实怕暴露真实代码水平,不好意思才走的「身体不骗人,我的脑子居然会骗自己」。

于是,我开始面游戏了,还是 2 ,但面着面着觉得不对劲,为何大部分面试我都答不上来个啥,三问两问就瘪了。两周时间,居然 10 家只收到 1 个 OFFER,并且是小公司做主程。我开始慌了,很慌,这 10 天里我慢慢认清自己的真实水平了,不敢细想,细想连面向对象都不怎么会,那些继承啊接口啊,从来也没写得好看过,都是照着别人已有的模块,拿来粘贴,还做得挺快。

多线程一想就蒙蔽,数据库就会点简单操作,Linux 也是一样就会个CP MV CAT top啥的,最常用的是 ps -aux|grep。原来,原来我什么都不会啊。但是上天还是眷顾我的,居然这十几家我最看好的那家公司,第 11 个面试。过了,哈哈,当然这时薪资下来了一点,但是我管不了那么多,从上家裁员到现在,已经整整过了 2 个月零一周了,这些天过得真不怎么样,每天都特别焦虑。也瘦了七八斤。

就这样吧,入职好好干吧,我收到OFFER时,暗暗想着,我要为公司肝脑涂地,它在我危难之时,向我伸出了关爱之手,感谢公司。

于是更大的噩梦开始了~~入职到现在 2 个月了,我几乎毛也没做。每天都想逃避都想跑,心脏压得我天天疼,好堵啊,现在也还是如此。这 2 个月我彻底认清了自我,和入职半年的新生小手差不多的水平,一直用这水平干了这六年工作。。

真汗颜,以前用的 SVN,到了新公司学 git,这 git 是真难啊,怎么都学不会,网上那堆教程跟屎一样,看着好像是会了,用着都特么不对,差得远呢,到现在还只会create  a branch,写, pull develop ,切回来把develop 合过来,然后再把branch合回到develop,再push,基本上是在用svn的方法在用git,而且  git我感觉很奇怪,好像没几个真的会用,不管是网上还是我的同事。

光说痛苦了,说说自己为什么痛苦吧,我知道每个人都有自己的心酸事。我只是想说说我的。

哎,主要说说新公司的事吧,这么多天了,我死去活来,难受的要命。比如我从刚入行就不大懂开发的根本问题是什么,也许书本上的解释我也看得懂,但是真要理解这件事,应该不是只停留在字面理解,如果你有懂那一天,你应该立刻就知道,它会直接在头脑中告诉你---啊我入门了。

鉴于此,我一直都保存着前几家的源码,我想着,开发既然自己不能理解好,也没有举一返三的能力,也不会自主写出什么东西。那就收集多多的代码,涉及到的哪一部分不懂,可能就能在其中找到例子,灵感。这样就可以在框架层面也不至于什么都没有积累。

这次的工作,服务端也分了好几个进程,之前我都是用redis搞数据沟通,比如你要生成唯一ID,每个子服务里都有redis,incr就好。新的框架也是这个主程用了好多年的了,不想加入新的东西,但是又要求我按他的思路去做,又说代码版权等问题,之前所有的源码都不能给我看,我想其实也是合理的,毕竟我是 P6,高级开发哎。按理说,招我进来可以从 0 开始搭建架构的。我的能力也就是 curd 了,甚至可能 curd 还做不太好,也就说不上怎么能硬气的跟他说明。

比如上面 id 的问题,那我可能就要每个服启动时,去 mysql 查一批id存放在每个子服务上面,设一个警戒值,不够了再取。但是这样吧,对我来说就很难,这就要考虑到警戒值不够用了怎么办,各服务启动时要把id拿到才能对外服务,还有 id 如果实在没有了,可能要进行同步阻塞去查询,但是同步怎么写?不会写同步~~

另外再举例子,如果是加好友功能,这种单用mysql,而且还弄出一个 dbserver 的服务,什么都要写个异步的协议过去,那加好友原来是:

addFriend  {

各种条件判断,不合条件返回个tips

执行加好友

}

现在可能变成这样了:

addFriend  {

异步去查数据库了

}

gameserver -> dbserver ,当dbserver->gameserver返回时,又是另一个协议,handler什么的又得另写,执行判断,再返回,等等。 当然写得好的人,这些问题都不存在,而我只会直肠子写Java,就会个 List.add    if else  for循环。

这基本上是我的全部本领了。就在这框架里有很多难处。还有个问题是怎么写gate与game的玩家session对应,想了N久才想出个办法,包装了个protobuf二层协议,,哦问题多了去了。应该都是开发者该在工作中解决的基本问题,而我一步一个坎。

再者公司的氛围也是头疼的紧,一整天也没人说话,除了要甩锅的时候,根本没人会沟通。交待任务啥的,给我压力也特别大,比如主程今天说,docker了解一样。然后明天让我搭 dokcer 自动化部署流程了。今天说git flow了解一下,明天就要严格执行 git 工作流了。

还是那句话,可能这是一个 P6 真正要掌握的本领,就是有个关键词,然后就能自己看外文文档,然后就能搭建出一个看上去很像样的工程化产品。好吧,这样来看我离真实的 P6 的实力,至少得差 5 个档次。

自己特别的低迷,心脏堵的难受,每天早上一醒来就感觉自己活不起了。有天晚上梦中,看见一堆代码,却怎么看都不懂,又醒不了,难过,懊丧了一整夜,连睡觉的时间都不放过我,自己的痛苦多了就经常跟朋友家人说,到后来反倒让我认清了,什么狗鸡巴朋友,哪有朋友,没人会care你一丁点,各自有自己的烦心事不说吧,没有共同经历的也难为互相理解。

总之,在朋友对我的反应上,基本就是你想多了;你不干得挺好的吗;程序员一个拿那么多钱你还瞎苦恼个什么;不光你,谁没困难;其中特别好的一个也差不多最多宽慰两句,你行,你可以挺过去之类的。之后就再无信息。

当时也是苦恼了好一阵,认识你们有个什么用,你说我最想听什么,我联系你们的目的是什么,哈哈,算了算了,都是故事,你们并没有那么好。但回头吧,仔细想想不禁就明了了这件事。

30多岁了,这是关乎你自己生存的问题,这个问题不是靠什么运气和神迹才能改善的,它积累在你多年生活的每一天里,你的理解是什么,你对工作的态度如何,你怎么利用你的时间的。

这一切的一切都是你自己该解决该思考的问题,别人帮不上任何忙。然而这些年我都是养生过来的,一直都没学会如何去思考,这应该是与有所成就的人最大的区别了。

有人说做职业规划,而我脑中也只有这四个字的浅层意思。也许有的人对这个就比较上心,有着深刻理解也说不定。

也就是说别人怎么决定你的人生,别人怎么决定你的想法,都得自己去选择,自己去承担,指望着别人给你的,只能是「放松心情了解一下努力了解一下」这样看似没用实际也没用的东西。

今天先写到这吧,写得乱糟糟。

无论怎么写也写不出你真的在痛苦时那种无助与万念俱焚,你很难再去回想,你是怎么失眠一个月的,你很难想你在公司楼下对着镜子,颤抖着害怕着不敢回办公桌时的心情。

然而这一切都没意义,生活不会因为你痛苦就突然变好了,别人不会因为你痛苦就能放过你了,这些对任何人都没意义。

我还将继续下去,这家干不了了,还要找下家,还要每天学习「虽然效果不怎么样」。然后等待着,这些迟早该发生的事。

你再想想,今天虽然这么痛苦,是不是可能是你接下来生活的最好的一天了。毕竟你就坐在那里十几个小时,就有人几百上千的送给你。然后我干不下去这行了去做什么,销售?开个麻辣烫店?去工地真正的搬砖?

hi,哈哈哈哈哈,外人看叫矫情,自己看属实是活不起。

话说你有怎样的经历,欢迎留言分享~

关注Java技术栈微信公众号,在后台回复关键字:Java,可以获取栈长整理的Java技术干货。

最近干货分享

Spring Cloud Gateway VS Zuul 怎么选择?

46张PPT弄懂JVM、GC算法和性能调优!

数据库怎么分库分表,垂直?水平?

Zookeeper怎么实现分布式锁?

分享一份Java架构师学习资料

一个人学习、工作很迷茫?

点击「阅读原文」加入栈长的小圈子!

7年Java后端被淘汰,一路北漂辛酸史。。。的更多相关文章

  1. Java后端开发工程师是否该转大数据开发?

    撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人 背景 看到一些java开发工程师,对java后端薪酬太悲观了.认为换去大数据领域就会高工资.觉得java后端没有前途.我 ...

  2. [转载]我的Java后端书架 (2016年暖冬4.0版)

      [转载]我的Java后端书架 (2016年暖冬4.0版) ps:最近正在初学Java,有一些其他语言的底子,但是还是要好好看书,好好练习,网上找了好久,都没有这份书单来的实用,特意转载过来,方便以 ...

  3. 招聘前端、Java后端开发、测试、Mysql DBA

    公司介绍: http://www.lagou.com/gongsi/43095.html http://www.yamichu.com 简历发到: zhuye@yamichu.com 招聘职位: JA ...

  4. java后端制作MD5加密

    由于一次业务的需要,我制作了一次密码的修改子业务. 当用户忘记密码的情况下,我需要动态的发给他一个6位的随机密码,通过即时通,短信,微信等.并同时修改数据库中的原密码为这6位的随机密码.让用户再去修改 ...

  5. java后端书籍推荐

    书架主要针对Java后端开发. 3.0版把一些后来买的.看的书添补进来,又或删掉或降级一些后来没有再翻开过的书. 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可 ...

  6. 我的Java后端书架 (2016年暮春3.0版)

      04月 24, 2016 | Filed under 技术 http://calvin1978.blogcn.com/articles/javabookshelf.html 书架主要针对Java后 ...

  7. Java后端书架

    本书架主要针对Java后端开发与架构. 更新记录:4.0版把第五部份-具体技术的书整块拿掉了.<TCP/IP详解 卷1:协议>出到了第二版,增加<SRE:Google运维解密> ...

  8. Java后端开发

    Java后端开发 名称 内容 基本框架 Spring.Mybatis Linux服务器   数据库优化   消息服务 rabbitMQ.activeMq rocketMq 缓存服务 memcached ...

  9. 我的Java后端书架2016年暮春3.0版(转)

    书架主要针对Java后端开发. 3.0版把一些后来买的.看的书添补进来,又或删掉或降级一些后来没有再翻开过的书. 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可 ...

随机推荐

  1. java连SQLServer失败 java.lang.ClassNotFoundException:以及 javax.xml.bind.JAXBException

    总结:jdk1.8及以下连sqlserver只需驱动,1.8以上除了驱动还需JAXB API. 1       java连SQLServer必须要先下驱动.否则出现: java.lang.ClassN ...

  2. 泛微weaver_oa filebrowser.jsp 任意目录遍历

    url//document/imp/filebrowser.jsp?dir=/etc/

  3. JavaScript中如何让图形旋转不会相互影响

    最近在联系JavaScript 二维绘图,经常会用到旋转,前几篇博文也提到过这类问题. 但是我忘记了JavaScript二维绘图中有关旋转最核心的两个方法:save()和restore() 在w3c上 ...

  4. 将xml文件转为txt文件

    import os import re import sys import glob import xml.etree.ElementTree as ET def xml_to_txt(indir,o ...

  5. c# SqlBulkCopy实现批量从数据集中把数据导入到数据库中

    今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走 ...

  6. java性能调优01

    1.阿姆达尔定律 1.1 加速比=优化后的耗时/优化前的耗时 1.2 阿姆达尔定律   s<=1/F+(1-F)/N 其中:s为加速比,F为程序的串行化比重,n为cpu处理核数 2.调优层次(设 ...

  7. 从Airbnb的发展历程和网易云的大起大落看IT行业创新(第5周课后作业)

    我想先根据个人看法回答“创新是什么?”这个空泛的问题.创新是面对当下的资源条件限制创造出能够满足动态需求或解决动态发展中的问题的新策略.这种实用化定义在大部分邻域都勉强能让定义者自圆其说,对于IT行业 ...

  8. VS2013+Opencv3.3配置教程

    转载自: https://blog.csdn.net/u014797226/article/details/78283873?locationNum=5&fps=1 参考博文1: 操作环境: ...

  9. 嵌入式 emmc 中 安装 烧录 内核 kernel,设备树 devicetree ,根文件系统 rootfs

    一般调试嵌入式开发板喜欢选择  利用 TFTP 传送  内核与 设备树,  利用 nfs 加载根文件系统. uboot 环境变量 设置如下: bootargs=root=/dev/nfs rw nfs ...

  10. Spring下载maven

    http://maven.springframework.org/release/org/springframework/spring/