这篇文章记录一位小姐姐转行的心路历程。内容很长,一点一滴记录了一个「非科班半路转行」计算机的不容易。
不是鼓吹大家转行,人总会有更喜欢的工作,有想去尝试的方向,如果对计算机感兴趣,这篇文章,就具有一定的借鉴意义。以下是正文。前言
本人 Java 开发 6 年半不到 7 年的样子。英语专业,临毕业跟着隔壁专业去培训了四个月 Java 。跟他们一起来了北京找工作,一找就是 5 个多月,面试 100 多家公司。最终还是隔壁专业的同学介绍到他们公司才就业了。第一份工作
入职后同学就是我的领导,技术相对一般,我们做 Java 游戏后端的,时间很快,一眨眼,我就跟着混了四年,每天就看些博客,书籍,业务上也会做功能,但自觉做的比较蠢,没什么太大进步。
四年时间很快乐,跟着老板,同学,从一点不会,到能独立完成工作,能自主做一点小小设计。但技术上说真的,差得太远。随着心越来越慌,工资水平属实也太低 6K 多,于是四年这个节点,我跳槽了,工资翻倍。这是一份非常苦的工作,曾经2个多月没放假,也曾经连续四天四夜没回家,工作到凌晨 3 点是司空见惯。然而我只是个小兵,加班加了 10 个月,游戏上线两个月,人员就全部裁掉了。由于 Java 一直感觉没有入门,框架方面掌握的也比较少,这个 MMO 的项目本是练手大好时机,连忙带懒就也这么过来了。20K的工作
随后不知道算走运还是算倒霉,找到了上市公司的工作,20K。其实我梦想中的工资是 25K,如果达到就打算不再跳槽了,为什么是25K?因为游戏Java后端基本上 30K 算是一个封顶,哈,当时比较幼稚,以为就这么干着,早早晚晚也能混到最后,就算技术不行,吃透两套框架,在游戏圈就能立住脚。说是走运,因为工作相对简单,我 1 个后端对 6 个前端,听起来挺唬人,但其实还是做业务,但因为只有我一个人接手这个项目,所以我也算是主程,当时我觉得我的人生的每一步真是走的太好了,缺什么来什么,想要架构,想要自己来就有机会了,这一年多感觉特别顺利,也觉得自己终于像是入了门,不再害怕工作上的需求了。但说是倒霉呢 ,其实也就是因为这一切其实都是假象,我根本还是几年前的那个自己,只是因为业务熟练了,以为自己行了。裁员
这公司也是裁员,我在这里做了一年半不到,临走给了 N+1,美美的拿着钱,找自己梦想中的 25K 去了。并且决定不做游戏了,因为游戏公司有名的就那几家,没啥大发展,还是互联网好,差不到 40K 封顶,我以上所说的封顶都是指很普通的人啊,大佬就别跟我计较了。就在裁员的第二天,我面试了京东一个物流创新部,好像是这个名字,那天我记得特别清楚,经过了一下午面试(面试的难度真是超级低,我在那里侃侃而谈,最难的问题也只是线程池那几个参数)。我真的感觉自己要一飞冲天,当时在想,在这里不能做太久,公司的文化太诡异,一切围绕着强东转,公司的人说话好像都在躲着什么东西,加班也是每天固定,然后大小周。因为正赶上过年,面试的人说年后人事会联系我走流程,就能入职。这一去就天差地别了,我在家等了一个半月,中间经过无数询问面试者,人事等,后来,流程跑着跑着就没了。面试
我又去面试,还是25K,有时候你认真的要价真的比猥琐要好很多,我当时就是愣要,大部分人还真信。记得收到的OFFER有必要商城,赢时胜等等,后来去了一家做语音的公司负责做云平台。哈哈,这份工作只做了三天半。从入职第一天就夜夜失眠,为毛?因为看不懂代码,压力很大。以前做游戏觉得大家都是吊丝,每天在一起呼呼哈哈,确实也快乐,有什么需求甚至直接在座位上喊着沟通这样。但是这家公司就比较正规了,我以为互联网公司都是这个样子的,同事之间一天一句话都不说,主程也只给我简单说了说流程,就自己看代码吧。我虽然技术渣,但有时候对自己要求还是挺高的,总想快速的上手代码,这代码这手上一天,两天,三天,连个皮毛都没看出来,就慌的不行。当时就开始知道自己代码水平有点渣了,但以为自己是不适应,这次找工作其实也挺波折,醒悟是一个缓慢的过程。所以还是想着回游戏行业,毕竟自己历经三家公司,都没碰到什么难度,虽然寻路啊,地图啊,战斗啊这些自己都完全整不了,但是还是能完成普通工作的,此时的我还以为自己能搭框架呢,啊哈哈。于是我就辞了,公司真的不错,14薪,要走还好顿要留我。当时以为自己是不适应走的。现在回头想想,其实怕暴露真实代码水平,不好意思才走的。身体不骗人,我的脑子居然会骗自己。还是25K
但面着面着觉得不对劲,为何大部分面试我都答不上来个啥,三问两问就瘪了。两周时间,居然 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
执行加好友
}
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,哈哈哈哈哈,外人看叫矫情,自己看属实是活不起。有后续吗?
其实这个文章写到这里的时候就已经算是结束了,我觉得作者写的虽然有点乱,属于流水账记录,但是她写的很真实啊。我们大家其实都是这样的:一路走来,一路成长。一路走来,一路失去。于是我去搜索了一番,想要知道这个 30 多岁的妹子,最后到底怎么样了。是真的干不下去了,还是逃离北京了?亦或者是走过瓶颈,走向顺境了?你还别说,我好像还真的给找到了后续。而且对于她写的文章的四处传播,还吐槽了一番。下面虽然有部分观点上有点不一致,但是我还是决定原封不动的把她的话挪过来。后续
经过这么狠的一番折腾,去了半条命,但是说因祸得福也好,凤凰涅槃(这词捅得有点大哈)也罢。下半年换了一家公司,制度轻松,人也和气,我害怕职业生涯的结束,疯狂的补了自己的短板,不到三个月,回血显著。现在快半年了,已经不惧怕任何技术上的困难了。之前那种总是揭不开技术的面纱的感觉也淡了很多。回想起那段痛苦的时间,实在感觉到人钻到死胡同的可怕,希望不再有更多的人真的放弃自我,再坚持一下,再坚持那么一下,也许真的就能突破。没这么一遭,像我这种人可能真的没办法成长,相信苦难,相信自我。就再坚持一下吧(当时如果有个靠谱的机会,真的可能转行了,现在又是另外一种体验了吧)。描述下现状:又开始飘飘然了,下半年几乎全是好事,一通百通,浑身通畅,技术上想啥有啥,生活中顺利的不像话。家庭和睦,工作顺意,意志上由于这次打击,加固了许多。认识上也提升了不少,看待事物也没之前那么执着了。看到很多公众号,知乎,cdsn什么的,都很自觉的转发了我的文章-----大部分用来分享。特来补充---我不是学那些课拯救的自我。1.github必须要掌握,可以根据具体代码关键字搜到你想参考的内容,比如输入关键字,搜索,选Code,选Java这样基本上,在第三方出现不会用的类、方法,都可以找到具体的例子。2。点进去,不管是代码、源码、报错什么的,大胆的点下去,看不看得懂一点都不重要,重要的是你敢硬着头皮看 ,看懂5% ,10%都不要怕,终有一天,你会知道---这么干,管用。3.掘金,必须下载关注,每天推的东西,看见关键词就去搜一下,没兴趣也大概知道它是干啥的---- 一定会有一天,在别人没方案时,你突然灵光一闪,多了许多思路。开源中国 必须关注,每天把软件更新资讯看喽, 一天一共也没几个,看看这些个第三方都是干嘛的,知道别人都在干啥。你积累的越多,你就越知道,也没什么神秘的事,大家都是这么学的。4.选一个系统,自己熟悉的,但是没有完整的构架过的,去大胆的构架,别管什么新技术旧技术,一齐用到这个系统上, 把它跑起来。-----这点目前对我是最重要的。我可以用最新的框架,搭建出一个还算能用的系统,在搭建过程中,了解了无数的关键词,注意事项。你会发现,一个大而全的系统,几乎能覆盖市面上80%的概念。等你搭出来了,你就知道,什么是泥潭中抓住一颗救命稻草, 什么是半夜跑通了的极致的欢喜。5.跟4有关,学习的时候不要浪费时间,时间很宝贵,比如现在技术这么多,你一定挑自己熟悉的领域去学习, 搭系统框架时,无关的东西就不要看,什么 区域链,AI,大数据什么的,你看一时半会也没什么概念,等到学得 差不多了, 需要另一层突破时再去关注。现在不是浪费时间的时候。6.一定要用 idea,扔掉eclipse,别管谁跟你说什么,你都要接受idea,不管有多大困难,多么坚持不住,一定要换成idea, 不管有多少人跟你犟,你就是要换成idea, 如果有人问idea把什么问题解决得比eclipse好了,别理他,坚持下去, 我也不知道它哪好,你就坚持就行了,你会懂,什么叫做自由。8.控制自己的挫败感,就中文那些个教程,你弄不出来,跑不通,是非常正常的事,那不是你的问题,是他们是傻碧, 自己什么都不懂就敢做分享,一搜千篇一律的一个小demo,任何研究都不做,就往出放往出贴,毫无责任感。9.认识事物都是需要过程,多看,多想,多动手,比如RPC,看了许多文章你也不懂它是什么意思,不要着急, 多找源码对比着看,多找英文网站去看,慢慢去理解,为什么是这样,为什么写成这样,这样解决了什么问题, 自己在动动手,有一天你理解了的时候你会诧异,为什么当时不理解,自己是不是傻,哈哈。总结一下,上面都是老生常谈,别人也都这么说,我自己理解的。最重要的,其实就是大胆、别怂、就是看,就是勇敢的点下去。就是碰到新技术,第一个冲上去,看见不认识的词,直接点翻译,看见没见过的关键字,直接就百度,谷歌。我们的宗旨是,不懂不要紧,但是要去看,哪怕只是知道了另外几个你不懂的概念,把它们记下来,只记关键词。另外,当你不行的时候,你想想我,这一个成天想着死的人都能顶过来。还有,如果你没有这么大的压力,你可能暂时还不知道我在说什么。也许你天资聪慧,也许你接受的是一流学校的正统教育,也许你一直足够自信,可能你都不会碰到我的问题
欢迎加入我的知识星球,一起剑指大厂,不断晋升加薪。