3月如愿拿到了java开发职位的offer,感谢bobo老师,希望老师给我些今后发展的建议?

来源:1-2 学习数据结构(和算法)到底有没有用?

北斗神拳1984

2019-03-06

我是1984年出生的,一下子就到了35岁的年龄了,前年决定学习java,想做java开发的工作,学习了慕课网的就业班,然后是实战课程,学习了4个项目,当然也学习您的数据结构课程,面试的时候还真问到我java集合类的原理,虽然学习您的课都是半年多以前的事了,但是我记得还是很清楚,当然树后面的结构有点忘记了。面试了三家公司,都给我了offer,他们怀疑过我如此大年龄还能坚持学习的毅力,但是面试过程中看到我java基础很扎实,都给了我offer。我没选择薪资最高的那家,因为那家公司对java开发人员的要求比较低,而且休息时间很长,做的是大学的在线教育,我当心自己在一个太舒适的环境下会减慢我的学习动力。我选择了另外一家系统平台特别多的公司,他们开发的系统基本涉及到了现在流行的所有技术。我觉得这家公司压力虽然大,但是对我技术提升是一次很好的机会。在面试的过程我也看到他们技术经理和高级工程师的技术确实都挺高,也是一家上市公司。所以对我来说这一次的学习经历让我感觉到了努力确实会有回报,虽然在之前确实担心过网上那些言论,说30多岁还在做开发,肯定会被裁,但我的这次面试经历还是再一次证明了道听途书不可全信,亲身经历才最真实,最有说服力。我现在有点担心,毕竟要提升自己的开发技术,我到底应该先从哪些方面开始,而且能在今年这一年中能达到公司对我的期望?我自己学习毅力没有任何问题,哪些技术是我现在最重要的,哪些技术是最具竞争力的?希望bobo老师能给我些建议,已经走了很多年的弯路,希望今后都能走直路。

写回答

1回答

liuyubobobo

2019-03-07

wow!大赞!恭喜!如果我没有理解错,你在两年前还是计算机行业以外的人,经过小两年的努力,就已经成功转行来到了计算机行业!而且还是在30岁以后的这个年龄段!简直是了不起!你是我的偶像!这样的毅力和坚持,绝对是少有的,我应该向你学习!我相信你有极高的基本素质,保持这样的精神,这本身就是你最佳的竞争力!:)


至于如何提高自己,如何“达到公司对你的期望”?我的建议是:了解清楚公司对你的期望具体是什么,然后先做好本职工作,在你的具体工作上,先让自己成为公司的业务,或者团队可以依靠的人。世界上的牛人千千万,一个企业愿意为一个牛人付薪水的理由,不是一个人有多牛,而是一个人愿意把自己的技术,能力贡献出来,帮助企业运转,乃至进一步发展。一个人再牛,不为企业效力,对一个企业而言是没有意义的。这就好比我了解的知识再多,不把这些知识总结出来,录制成课程,对你而言是没有意义的。你绝不会因为我牛而付费。所以,请千万要提醒自己这一点。加入了一个企业之后,绝对是企业的任务优先,个人的学习放后的。把企业的任务完成好,才能提升你在一个企业中的价值。更重要的是,这也是你今后跳槽的重要“功绩”。只有你在一个岗位中做的足够好,才有机会去挑战更重要的岗位。


而其实,把本职工作做好本身,和提升自己,并不冲突。优秀的人,是能够在本职工作中提升自己的。尤其是“程序员”这个职位,本职的工作就是在不断地“创造”。当然,在具体工作中,我们的“创造”范围可能是有限的,仅仅是实现某些”并不难“的功能。但是我们总能追求:是不是能把一段代码写的更好?接口的设计的能不能更灵活?文档可不可以更详实?注释能不能更清晰?整体方案能不能更安全?产生bug的几率可不可以更低?遇到跨部门合作的时候可不可能提供更多协助?对自己的代码的作用能不能不单纯停留在技术层面,可不可能也对这段代码所支撑的业务有更多的理解?这些,在我看来,都和学习更多的所谓的“高级技术”一样重要,甚至更重要!


另一方面,更“高级”的技术千千万,但也不是每一种更高级的技术,都适合你,或者适合当前你的企业的。既然你已经加入了一家企业,你也希望好好做,希望更好的“达到公司对你的期望”,那么我的建议是:咨询询问你的工作环境中的同事,“老人”或者领导,咨询询问那些你觉得技术挺高的技术经理和高级工程师。搞清楚从他们的角度看,企业更需要什么技术,什么技术能帮助你有更好的发展。

机器学习高级不高级?高级。但是有可能于你的岗位根本用不上;

GO语言火不火?火。但可能你现在工作的产品,还完全没有采用GO的技术栈;

前端是不是很普遍的技术,是。但可能你现在的企业最需要的就是一个前后端能够融会贯通的人。


所以,其实我很难告诉你什么技术与你现在是最有用的。与其在工作之外盲目的寻找提升的方向,不如踏踏实实的从你的工作出发,寻找提升个人的路径。只要你在不断前行,不断做事情,也不断学习,你就是在不断提升,不断增值的。大牛不是一个模子刻出来的。大牛千千万,每个大牛的擅长和特点也千千万,他们成为大牛的路径更是大相径庭。还是要说回来,强调这一点:所有的大牛,都不是因为学习了多少东西,所以是大牛。学习了很多东西,那只是学霸而已,是“学校阶段”的大牛。到了社会上,所有的大牛,都一定是因为在自己的工作岗位上,做出了什么样的事情,或者解决了什么样的难题。切记。


如果一定要让我提一些技术提升的建议,那么我的建议永远是那些技术界的“内功”,如:算法,数据结构,操作系统,组成原理,设计模式,软件工程,编译原理,编程范式,甚至是离散数学,等等等。对这些内容的学习和深入理解,都无法做到让你马上找到一个薪水更好的工作,但是,他们是帮助你更深刻的理解计算机,理解技术的。很多所谓的更高级,更前沿,更复杂的技术,源头其实都隐含在这些领域中。

我也不认为你需要短期内就攻下这些领域中的一个或者几个。这些领域都是急不得的领域。作为技术人,时刻提醒自己,不可只满足于掌握一两个框架,学会一两门语言,更要不停地对这些更深刻的领域进行探索,并且日积月累的行动下去。时间长了,绝对是了不得的事情。


再有,很多“非技术”的能力,如沟通能力,表达能力,灵活处理人事关系等等,也都很重要。纵使在技术的世界中,技术是王道。但所有的技术,最终还要通过人与人的沟通,协调,合作,最终产生作用。作为职场人,不可忽视。但是看到你的年纪(比我大一岁),我相信这些你都理解。


再次恭喜你!继续加油!:)

11
3
颠覆123
看到北斗神拳大哥的经历真是太励志了,辞职学习Java需要很大的勇气!
2024-05-25
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程