热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

三个月跳槽2次,我经历了什么?

转自公众号——JAVA葵花宝典正常人跳槽大抵上无非两种:钱,没给到位;心,受委屈了;而程序员这个群体则不一样,这里结合小编的亲身经历,来给

转自公众号 ——JAVA葵花宝典

正常人跳槽大抵上无非两种:钱,没给到位;心,受委屈了;而程序员这个群体则不一样,这里结合小编的亲身经历,来给大家谈谈职业发展遇到的一些问题和困惑。

      先来简单说说自己的情况,从事Java编程五年,6月份刚从一家上市公司离职,之后打算退居武汉,入职一明年研发中心回武汉的公司,后因各种原因离职,目前在入职一家以区块链技术为核心的公司,接下来详细讲讲我的一些经历。

1

为什么离职?

      仔细想想在这家公司干的蛮久的,15年入职,18年离职,待了2年半,主要是团队配合还算默契,也能学到或者开发比较核心的东西,从开发到架构都参与过,包括还参与运维的一些工作,比如高性能高可用的部署,架构选型和搭建,开发权限也比较大,同事都比较信任我,个人的解决问题能力也是慢慢的变强,在这家公司,真正的体会到开发和研发的区别,从0起步打磨和创造了很多的产品,而不是单纯的curd.

      前两年主要是在打磨产品和基础架构的过程,个人以及团队都进步很大,但是因为后面公司的业务调整以及产品竞争力不大,感觉整个团队战斗力大大下降,不再是铁打的产品,流水的产品了,产品部换了一拨又一拨,技术团队核心人员也在流失,我开始焦虑了,一个转折点让我坚定了离职的信念,由于项目经理也要考虑跳槽离职,我如果此时不走的是个合适的人选,后面和总监交流的时候也确实验证了这个想法,在一个稳健发展的技术团队,当当项目经理其实也是挺好的,但是,当公司的研发处于停滞不前的状态,核心人员又流失比较严重的情况下,我此刻想到的就是逃离,是的,这对我来说太舒适了,我还年轻,还想继续撸代码,经济上,每个月除了工资和其他额外收入,税后有个几十k足够养家糊口,所以,在没有投简历的情况下,我就递交了辞职书。

2

一份工作打动了我

      处在交接状态的后面一段时间,尝试着投了一下简历,主要是在手机上下载的拉钩和BOSS直聘app上操作,不得不说,就我的使用情况来看,Boss直聘比拉钩还是要好用太多,沟通高效,投递处理结果快,比如拉钩上的投递通过了,可能过了一周才有反馈结果,而Boss上即使在你不投递的情况下也有大把的人勾搭你,投递的话反馈也比较快,大部分如果简历通过的话当天就能给到面试机会,所以用了一周基本就只用Boss了,因为没太着急找工作,想着短期没找到合适的就给自己放放假休息下,所以都是随便挑选着看岗位,设定好期望薪资进行筛选,在选新工作的时候给自己打了一个标签,java、高级开发工程师、架构、后台开发、以及自己熟悉的技术栈,然后在和一位技术负责人沟通的时候,一份工作打动了我,是什么样的工作呢?就是这家公司明年研发中心迁回武汉,拿着深圳的工资,在武汉光谷工作,说实话,这打动了我。

有工作的地方没家,有家的地方没工作,他乡容纳不了灵魂,故乡安置不了肉身

      虽然在深圳工作,但是买房是万万不敢想的,更何况在老家县城买的房子也没多久,并没有打算在深圳定居,但即使在深圳过着租房的日子,每个月的生活开支最低也要过万,房租房贷以及老婆孩子,这还是我作为一个程序员比较省的情况下,但是武汉就不一样了,我老家是湖北黄冈,离武汉比较近,考虑到回武汉发展家庭开支能省一大半,而且武汉买房定居也并不是遥不可及,也节省了租房的开支,最重要的是也还是拿着深圳的工资,跟之前相比税前变成税后多点,也算在可接受范围之内,于是见面聊了下然后第二次再见面和技术聊了下就顺利入职了。 这个随便挑选的工作也为我后面离职做了铺垫。

3

小公司的活没那么好干

      这家公司在规模上也不算小,上百号人,但在技术团队来说算是小团队了,过去没多久就有个开发要走了,入职后大部分惯例就是熟悉团队和项目,目前正在研发的是ERP系统,由于历史问题,一个项目是由2种语言开发的,java和ruby,当天看了下表结构,几个模块用到了两百多张表,而且一个字段注释都没有,表面稳得一比,心里慌得一批,在公司历史遗留问题上中间请教过几个架构师朋友,他们的建议是叫我跑路。。

      没办法,来都来了,怎么能轻易屈服,经过一周了解现状发现了不少问题,首先两种语言开发ERP这种关系特别依赖的系统,两边需要写很多重复代码,一旦表结构有修改两边都要修改,特别依赖人工沟通,而且按照技术经理的要求,肯定后面都是要做高可用的,Java这边我能兜底,因为相关的经验都做过,另外一个语言的真心没把握,比较接受的就是把ruby这边全部都用java重写,然后核心团队回到java技术上,然后架构上怎么整就怎么整,然后数据库单机无备份,在我的建议下做了异地备份,好想念大公司有运维的生活啊,一句话运维同事分分钟高可用集群就起来了。

      做了异地备份集群往后放放吧,毕竟一是缺少机器,然后自己也没有在生产环境搞集群,怕出问题,先解决痛点难点的问题,然后看了一下Java项目,这是之前离职的开发人员不知道从哪找来的cms项目改造的,连业务代码都原封不动的拿来了,然后原来是springMvc的项目,修修改改成了Springboot项目,然后就看到这样的一个SpringBoot项目:项目启动的时候加载很多Spring的Xml配置文件,这些有的是bean初始化的,有的是配置管理的,有的是自定义freemark初始化的。没办法,改吧,于是前前后后删了近四百个Java文件,这还是存在漏网之鱼的情况下,然后把所有的功能都验证下没问题。当然,这并不是最满意的结果,在心里规划的还有很多功能要做或者集成进来,比如Spring配置文件的完全剥离、缓存的管理、系统高可用场景如登录、权限等重写以及应对大数据检索集成ElasticSearch、项目的分包、拆模块等等。

      理想是丰满的,现实是骨感的。在我进行自我规划的时候,项目负责人找到我,希望我参与一个模块的开发,公司没有招前端,之前都是后端开发前端页面,所以真正要我做前端开发的话,心里是拒绝的~ 将近三年没写前端代码了啊,html和js这些再加上现在使用的freemark框架,然后再把进度结合起来,感觉我的角色转变的有点快,让我猝不及防,写完第一个页面,就去找了负责人和项目经理提了离职的意思,提到了自我定位以及想做的事情,经过一系列的讨论我还是被他们说服了,结果就是帮忙招人、继续开发,然后沟通了我后面要做的事情,这么一来,就搞了一个多月,也因为领导可能也确实想要留我,一个月左右就转正了,但其实并开心不起来,做不喜欢的事情感觉每天都是煎熬,在这中间因为个人发展问题以及我老婆也坚持留在深圳的原因,也跟boss说了招到合适的人以及我这块忙完了就撤,boss表示理解, 中间也因为家里事情回老家两次,一次是送老婆孩子回老家,还有一次是老弟买房回家做担保人,加在一起请了个把星期假,领导在这方面也挺开明和理解的,心里也是比较感激,但这样一来本来页面开发就拖进度,再加上个把星期的假期,很自然的延期了,后面差不多转测了交接了就再一次提出意向走离职手续了,说实话,这也是我一个人生的一个污点,头一次觉得自己做事比较冲动,并且浪费了大家彼此的时间,所以,对的人遇到对的事,特别特别重要!

4

人脉,同样也很重要

      在交接工作的时候,认识的一些朋友联系到我,希望我去他们公司任职合适的岗位,这其中有之前的两任项目经理以及架构师,一方面之前一起共事过,对于技术的信任,另一方面也是私交不错,所以有事没事多和同事搞好关系总是不会错的,不要老是吐槽同事怎么样怎么样,我认识的这些人,都有帮他们擦屁股的经历,但也有人在擦你的屁股,吐槽归吐槽,关系总要搞好的,不要总是记得别人的缺点而忽略别人的优点。

      最后还是去了之前项目经理推荐的一家以区块链技术为核心的公司,虽说他在那边也是一个管理岗的角色,但是为了避嫌还是由公司的架构师进行面试,面试过程比较顺利,这个项目组团队成员几十位,95%以上的开发团队,分工也比较明确,前期整整框架,现在也进入正常开发的状态,也对区块链这个技术产生浓厚的研究兴趣,感觉又有了努力和成长的方向。

5

总结

      找工作要自我定位,如果你是想找一份好的工作,不太建议海投,这将浪费你很多的时间和精力,不要轻易被待遇或其他因素妥协而忽略你真正的定位,这会导致你后悔当初的冲动,而冲动,往往会付出代价。

      给自己一个底线,不管是工作上的还是待遇上的,综合市场环境,高于期望值的要问问自己能否胜任或者抗的下这大旗,技术是最能考验人的,你中级的水平进了高级的槛不一定是好事,但在压力下扛下来了也不一定是坏事,但低于期望值太多了影响工作积极性,再谈可能就没那么简单了。

      规划职业发展路线,程序员做这个规划我觉得还是挺有用的,这将取决于你以后的发展方向,比如初级、中级、高级、架构师、技术经理(专家)、项目经理等,每个岗位对应涉及的技能树,那你就朝着这个方向努力,不要什么都想学,但是在工作中能够学到的我还是建议技多不压身。

告诉大家一个好消息,我的知识星球上线了,欢迎大家加入。

推荐作品

  ●  百度、阿里、腾讯、京东面试题分享

  ●  烂代码之:Controller规范和接口定义

  ●  Java性能优化的50个细节(珍藏版)

  ●  一个热爱代码老程序员的独白

  ●  千万别让数据结构和算法拖了后腿

  ●  谁在代码里下的毒

  ●  程序员如何预估自己的项目开发时间

  ●  吐槽我见过的最烂的java代码

  ●  springboot 核心知识清单整理总结


推荐阅读
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
小染雪_647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有