Q:
你好:
我叫LSQ。现在在一家做金融外包的企业做java开发。现在想请教一下您关于职业的事情。
【背景】
我的情况是转行做了一年的java,之前在做javaweb的开发,只做过两个小的Javaweb项目,技术一般。现在做的是银行类项目,主要是做业务测试写代码很少,感觉再做下去会把本来就不强的代码能力更加弱化。
我想3到5年后可以去一些大公司做javaweb,因为看招聘感觉这样的岗位会多一点,之后可以靠经验可以把职业周期拉长一点。计划用一年半到2年多时间将ssh和ssm这些框架用的比较熟练,其他的需要将缓存方面的redis、MongoDB、maven和一些基本的java基础、IO、NIO、多线程、集合、 Linux常用命令,shell脚本都熟悉起来。之后2年需要了解的有分布式、消息、搜索等机制、JVM原理、Internet基本协议(如TCP/IP、HTTP等)、数据库常用优化方法、设计模式、 SOA架构、分布式系统,、 常用算法及数据结构、应用服务器调优等,希望都可以做的好一点, 最终可以在一个大流量、高并发、高性能的分布式系统或者互联网系统中担任重要的角色,比如说高级工程师之类的。
【我的问题】
一是如果想要几年后达到这样的效果,需要怎样做才比较有效呢?由于现在的做的事情不是javaweb方向的,业务时间自己学感觉自己也好像有点吃力,因为现在的工作时间是9点到晚上10点多一周6天,而且感觉比较零散不系统不知道重点。现在能想到的办法是先去一家小公司接触ssh或者ssm的开源框架开始做几个javaweb的项目,但是不知道接下来的话该怎样学习或者去怎样的公司才能让自己的技术进阶呢?
二是上面所说的技能有没有漏掉的,或者说Javaweb这个方向其实在未来几年后并不是一个好的选择,做java的话还有哪些方向可以去好好做呢?
A:
开发者的工作,是典型的“以战养战”模式。假如你不做开发,不做项目,不用工程化的方式做产品,那你永远不可能拥有精湛的技术。
所以从这个角度讲,你现在做的业务测试,对你将来的职业目标来讲,毫无价值,早点放弃。
你之前做过 Java web 开发,虽然是小项目,也算是有经验哦。先在单位内谋求开发岗位,有之前的经验,应该是大有可能。如果失败,那就换工作。
关于你提到的那些技能,可以算是比较大的知识图谱了,工作三五年后能构建出这样的知识结构,就很不错了。对于刚入行的开发者来讲,可以先把某个专项技术用熟练,比如你说的 Java + SSM ,以它们为核心,其他的东西,大概了解,或者用到了现学即可。
所以,如果你现在要找工作,就瞄准 Java + SSM 或 Java + SSH,找使用这个组合的岗位。这样,你才能在工作中不断磨练技艺,用“以战养战” 的方式让自己强大起来。然后,你积极主动的话,可以业余时间围绕着 Java Web 来丰富其它知识。
然后,后续再找工作,还是围绕着你所用的技术栈,这样持续做上 3 年以上,你才可能在这个方向上累积比较有价值的技能和经验。当你把一个技术栈玩熟了之后,再学其他的,也会比较快。
最后总结一下:在开发过程中练习某种技能,在三几年内持续在一个技能栈上努力,这样才能慢慢熟练、精通某种技术。请以此为导向,结合你的现状来做选择。