一个合格的Java程序员必然是经历过不同的项目游走在行业技术的前线,有时候除了自己学习他人教导之外,更需要环境的推动,天时地利人和,Java程序员才能在职业道路上走得更远。
第一:工作的本质
工作最重要的目的是积累金钱。挣钱这个事情,至少有四种形式:
1. 帮别人挣钱(打工)
2. 为自己挣钱( SOHO)
3. 雇别人挣钱(企业主)
4. 让钱自己挣钱(投资)
第一种门槛和风险最低。而求职只是我们在自己资源和能力不足以进入后几种挣钱形式时,通过出卖自己的劳动能力换取资源的阶段性行为。
第二:关于跳槽
跳槽,对IT人来说绝对不是个陌生的词汇,几乎所有人都身体力行过。首先我要强调一点,跳槽并没有坏处,但是频繁的跳槽就不好了。
在工作的前4年,必须跳槽,而且鼓励跳槽(建议经历2-3家公司);每个公司对技术的侧重点都不同,对开发流程控制都不一样,所需要的技术性人才自然不一样。
比如外包公司,要的是一个代码狂人(我很喜欢招做过外包的人,感觉很多在外包公司待过的人做事的效率很高);
小事业的公司,要的是一个全能型的程序员(能设计分析,能写代码,能部署);
大的公司,要的是一个技术扎实,有潜力的人(英语好,理解能力好,Java基础扎实);这样如果你在一家公司呆久了,很可能就模式化,如果一旦离开这家公司,找工作有时候很容易碰壁;多经历两家公司,对程序员很有益!而且我自己也有感觉,每次找工作都在强制自己学东西。
而且关键是,一次跳槽,薪资就更高了 (很多人跳槽都是对当前薪资不满呀)。
第三:跳槽的意义
跳槽其实是打工这种挣钱形态下,我们进行自我调节的方式,通过合理地跳槽,我们可以寻找到市场需求和自我实现的最佳匹配,从而在金钱和成长上双丰收。“市场需求“描述了企业渴求的员工,”自我实现“描述了你想要的生活;当它们重合到一起,梦想就照进了现实。
第四:跳槽的原则
永远不要因为”现在很差“而跳槽,要因为”未来更好“而跳槽。只有这样才能保证你一直往上走。
第五:什么时间跳槽最合适?
1.认为自己是公司最好的程序员,在公司里已经没有可学习的对象了。
在这一点上,很多人可能是太过自信了,一定要正确对待自己的真正实力,不要太高估自己。如果真如你所想,你真的是最厉害的,那你可以考虑了。还有一种就是,知道自己不是最好的,公司有很多人可以学习,那如果他们都只会个忙个的,没有人愿意将自己的知识和你分享,没有人愿意帮你,那么这时你也可以另有打算。
2.如果你没有学习新的技能,还是用那么老掉牙的技术,你将会被淘汰。
如果你依然用那些过时的技能来开发,那么你将会面临被这个市场淘汰。也许有哪家工作仍在用早期的语言版本,这样你还能工继续工作,但是,你必须明白,如果处在一个停滞不前的技术环境里远比你就职一家不断改进更新的公司里要糟糕的多。
3.如果在这个公司里一直没有做出成绩
倘若你在一个公司里待了很久都没有一个成功的项目,当然这有时也不一定是你的错,原因有很多,可能是公司一直拖延发布,又或是其他的。如果你在接下来的时间里还是看不到前景,那么,这时你可以考虑要不要还待在这个公司了。
4.比起同行,你的薪水少很多又没有什么晋升空间。
除非是有低于市场薪水的原因,例如,公司有很多优秀且愿意帮助你的人,在其中能学习到很多技能这当是最大收获,如果是薪水不多又没有别的可以弥补的,那么你是时候可以考虑要不要从新选择下了。
5.如果公司总是把你当空气,没有让你表现和晋升的机会。
如果是这样,那么,公司根本没把你放在眼里,你也根本不重要,对他们是个可有可无的人。他们觉得不值得在你身体做长期投资,那你现在就可以去找你的新工作了。
6.发现自己在公司待了很长时间,无论技能还是物资都没有太大变化。
每天都是没啥变化的工作,总是只负责一些琐碎的小事,又或是真的有大项目的参与也只是让你负责无关紧要的部分,这样长期下去会让你没有了斗志,变的意志消沉。而薪水方面长期以来也是不尽人意,那么,你还有什么呆下去的理由。
7.现在的你已经没有了当初的工作激情
现在的软件开发并不像有些人想象的有趣,如果你目前的工作做的好无意义,这个时候,如果你有机会挑战一项新的项目才能让你的斗志更活跃,那么,你不妨改变一下现状,可以到能激起你斗志的公司去试试。
第六:跳槽的节奏和路线图
比如:最终目标是CTO,那么它的路线图可能是:
然后我们会给每一个节点设置一个达标能力和一个参考时间。当我们的能力已经开始可以胜任下一个节点的工作时,我们就会开始寻找相关机会,最理想的是在当前公司进入下一个节点,如果当前公司提供不了的话,那么就要通过换公司来前进。
当然路线图是可以调整的,比如:
但不管怎么调整,自己头脑里边要有清晰的目标。我们总是先在风险最小的路径(比如当前公司)寻求成长不成功时再考虑其他的路径。