2年工作经验杂谈(java开发)

前言

  • 个人介绍
本人不是985/211,普通本科,通信专业,成绩挺好不是最拔尖算得上中等偏上,好吧我觉得可能是上吧,党员。
在毕业后在厦门一家公司实习后加入工作,工资中等,公司规模300-500,团队8-30人。
与理想的薪资待遇有偏差,当然自己的能力有偏差。
  • 两年来工作路线 
入职小白-》
高效下手-》
初级程序员-》
核心研发、中级-》
技术组长、技术主管(短暂)

  • 两年来学习路线 
java基础-》
ssm、ssh、sql、maven、svn上手-》
代码规范、业务实现能力、代码质量、单元测试-》
方案设计、数据库设计、代码接口设计、开源框架工具使用、微服务-》
技术方案设计评估、代码规范质量评估、人员技术管理、任务分解分配、关注性能方面
  • 个人规划
1-2年-》java or 微服务
2-5年-》微服务or大数据
5-7年-》架构
7-10年-》架构 or技术管理

工作经验

1、工资低?能力问题or待遇问题

说实话这也是一直困扰我自己的一个问题,是现有能力还是先看准待遇呢?

首先,你是如果觉得工资低呢,这往往是对比让你豁然觉得自己亏了。

了解行业薪资水平最好的方式就是对比同行业平均工资,哈哈当然还是看看薪资对应的要求,不要盲目自信。

其次,定位自己的薪资和岗位匹配度。

在刚刚出来找工作时,不建议冲着工资去,选择自己能够历练或者学习的公司,
当然只要工作压力不太大,工资水平越高越好。毕竟,钱多事少的好事不常有,
过高工资必定给自己太大的压力,没有容错空间。

而如果实力符合,建议先拿到工资,再考虑历练、学习机会。
因为,社会不同校园,常常是是:自己学进门,修行也靠个人。
毕业生为啥不建议呢,这考虑到公司的培养成本以及不稳定性,毕业生容易翻车。

最后,个人经验作为参考。

个人刚毕业的时候,工资是厦门平均水平之下的,虽然有点不服气,但是的确短时间达不到高薪资的效益。然而,我有了自己可支配的“工作之余”。趁着没有勇武之力,可以努力的“习武”。刚毕业的应届生,在企业看来:缺的从来不是学习能力和精力,而是廉价劳动力,哦!不好意思说错了,是可培养的潜力。

有个人规划的建议:

1、列举自己不足之处,根据实际分析哪些是近期最要命的短板
2、拟定一个近期会使用,但是学习成本一般的学习计划
3、等你上面完成了,拟定长远计划(网上公开课的技能书,你懂得又免费又有诱惑力,嘿嘿)

没有个人规划的建议:

0、早点规划
1、就每一天遇到的问题,业余时间差缺不漏,时间允许的话就地解决,不行就记下来
2、每天针对使用的技术进行知识扩展,横向或者纵向。量力而为
3、如果上面都没完成,你还是混日子好了,工作经验是你最后的武器

2、学些什么?新技术or旧技术

说实在的技术革新是很快的,想当年java还在sun公司时,jdk6到jdk8也要的一两年的时间,

如今我jdk8还没用溜,jdk11、12已经排着队了。

所以作为开发你没得选择,你能选择的是,防止自己变成旧技术

个人建议:

1、适当加强当下使用技术的深度。
jdk8在用,你就把jdk8的特性用起来,stream用法,lambda用法,函数接口啊,map优化内容啊。

2、适时补充新技术。
用ssm的思考,smm与springboot差在哪里,springboot解决什么问题;
springboot与springcloud又有什么区别,springcloud解决什么问题,诸如此类。

3、因人因公司而已,有可能一早就用上springcloud以及主流技术。
那也就是说,哥们,别人的旧技术就是你眼中的“新技术“,为啥公司淘汰了它。

4、当然,技术不是越新越好,而是公司开发团队的对它的掌控能力,搬石头砸自己脚,是用新技术的大忌。
springboot单体服务,的确比springcloud更有生命力,起码便于维护。

3、晋升渠道?靠人际关系or技术能力

说实话,作为一个技术人员,你一定很看不起第一类,你更希望的是能者居之,其实事实上也是能者居之,

但是人际关系重要性一点也不逊色与技术能力

转化下问题,这个问题好歹是在问:能力强但不配合和能力不强但很配合。

这个问题一想而知,企业更需要后者,能力不强但是靠得住。

个人建议:

1、不卑不亢,不威不武,既不拉帮结派,也不闹事结怨,工作归工作,生活归生活。
只要符合企业价值观,也有被认可的实力,除了走后门的富二代、官二代,你还怕什么!

2、工作向来不是一个人的战争,团队作战才能事半功倍。(公司团队真的非常非常重要)

4、软实力?如何而来呢

首先:软实力额为价值,怎么说呢,开发人员为什么工作经验那么值钱么。

个人分析如下:

1、行业解决方案、业务问题分析解决能力

2、个人技术栈、技术实践经验、技术实现能力

3、软实力(包括:设计稿、ppt、表达能力、软件开发理论、管理体系知识、流程体系知识、团队合作能力等)

其次:软实力作用,意在综合实力和优势

纯技术岗,软实力意味着你有作为干部储备的条件。

如果,你有意向从开发升级为技术主管,你的软实力发光了;

而又或者打算从开发转向管理岗、干部岗,不好意思,软实力又让你有一战之力,甚至会超过技术你比好的人。

最后,如何提升呢:

1、不要一股脑的增长技术,而不学习经验。项目体系也是需要学习的,
简要说明,参考cmmi3软件流程如下

需求调研-》项目可行性分析-》项目立项-》项目总体计划-》需求设计-》
工作量评估-》项目风险把控-》项目进度计划-》需求跟踪-》开发设计-》
开发编码-》阶段测试、回归测试-》里程碑输出、测试-》集成测试、回归测试-》
产品测试-》产品验收-》项目结项-》项目合同期内运维

2、不要小看会议、讨论的意义:

主题很重要(防止开火车跑偏)
问题列出来就是解决一半了,带着方案讨论问题,就事论事(扯淡封嘴)
有会议必须有结论,把握每个人发言时间(话痨讲重点)

3、不要小看三板斧,检称WWH

WHAT,WHY,HOW。越是需要团队,约需要明确

4、学会做的同时,学会表达。

代码很重要,设计图也很重要,设计想法也很重要,ppt你懂的!

5、如何看待加班?你愿意加班么

这个问题嘛,你知道996ICU么。

加班是常态,也是病态。什么原因加班?公司项目紧急?个人bug?临时任务?还是强制加班呢?

个人想法:

1、适当加,如果项目紧急又是非你莫属,哥们恭喜你,你有机会表现了,
哈哈最好不要变成-人傻事多的香饽饽。加班需要你时间和身体的把控能力,
合理时间内既是你体现价值的机会,长时间内则会是你体现加班价值的机会。
看看自己的发量决定。

2、必须加与一定不加。
如果是个人bug,纰漏造成,我觉得还是必须要解决的,要加班也是常理的事。
总不能吧工资当做写bug的钱,然后加班改bug,最后调休(可能是常态吧 哈哈)。

有一类加班是必须不加的,制度外的加班,无故加班,恶性加班,人情加班。
这种加班很少见,但是也会发生的。通常在管理混乱的情况下,常常出现负责人不加班,
打下手小弟帮忙加班的。长此以往,恭喜你,成为最牛逼小弟(这当然得看人,
好领导会带你飞黄腾达而不是踩着你上去)。

6、跳槽?你想怎么跳

首先、跳槽原因很多,但都离不开薪资待遇。程序员真的需要跳槽才能更好提升?其实都没有那么绝对。

个人是不建议频繁跳槽,这样会给自己留下病根(吃着碗里的看着锅里的,吃到锅里的又想着还没煮的菜,

容易忘记了自己可能只吃得下一碗饭而已)。

其次、跳槽离不开的几个真实理由:

1、事多钱少,事少钱少,事杂钱少,事乱钱少,嗯钱少

2、学不到技术钱少,学不到经验钱少,发展空间不足钱少,嗯钱少

3、公司前景不好,公司制度不好,公司规划不好,公司拧螺丝,嗯未来钱少

其实吧,总结起来就是要么现在钱少,要么未来钱少,哈哈哈!

最后、如果真有更好的选择,希望你慎重考虑和权衡利弊,离职和入职对于前公司和后公司都是很重要的事,对自己也是

1、前公司不同程度上损失了人才(别觉得没自己事),如果自己做的不好还影响口碑

2、现公司意味着你将收到致命三联-》你会什么?-》你值多少?-》为什么离职?

3、而对于你自己,一是面试,二是面试后的适应。

个人经验总结

1、关注开发规范、管理流程规范、关注问题分析和总结能力

2、学习技术,不管是微信公众号,csdn,github,开源中国,码云等等,找到合适自己的“搜索引擎”,
先了解了才有机会拓宽技术面,最后选择最合适的技术深究下去。

3、不要定老长老细的学习计划,相信我。工作里面没有那么多时间,利用零散时间学习,
并且学会总结。便签,云笔记,印象笔记,或者白纸黑字,写下来就是你的了。

4、举一反三,横向:用了mysql就想想oracle呢,如果再有时间就想想pg呢;
纵向:mysql表设计(3nf、2nf呢),再有时间想想mysql引擎,执行计划。
这样能把你从无知中解救出来。

5、系统复习,零散的学习缺少总结终究是过眼云烟,及时总结做好笔记,最好是能做一张思维导图。

猜你喜欢

转载自blog.csdn.net/qq_22211217/article/details/100291520