wow!大赞!恭喜!如果我没有理解错,你在两年前还是计算机行业以外的人,经过小两年的努力,就已经成功转行来到了计算机行业!而且还是在30岁以后的这个年龄段!简直是了不起!你是我的偶像!这样的毅力和坚持,绝对是少有的,我应该向你学习!我相信你有极高的基本素质,保持这样的精神,这本身就是你最佳的竞争力!:)
至于如何提高自己,如何“达到公司对你的期望”?我的建议是:了解清楚公司对你的期望具体是什么,然后先做好本职工作,在你的具体工作上,先让自己成为公司的业务,或者团队可以依靠的人。世界上的牛人千千万,一个企业愿意为一个牛人付薪水的理由,不是一个人有多牛,而是一个人愿意把自己的技术,能力贡献出来,帮助企业运转,乃至进一步发展。一个人再牛,不为企业效力,对一个企业而言是没有意义的。这就好比我了解的知识再多,不把这些知识总结出来,录制成课程,对你而言是没有意义的。你绝不会因为我牛而付费。所以,请千万要提醒自己这一点。加入了一个企业之后,绝对是企业的任务优先,个人的学习放后的。把企业的任务完成好,才能提升你在一个企业中的价值。更重要的是,这也是你今后跳槽的重要“功绩”。只有你在一个岗位中做的足够好,才有机会去挑战更重要的岗位。
而其实,把本职工作做好本身,和提升自己,并不冲突。优秀的人,是能够在本职工作中提升自己的。尤其是“程序员”这个职位,本职的工作就是在不断地“创造”。当然,在具体工作中,我们的“创造”范围可能是有限的,仅仅是实现某些”并不难“的功能。但是我们总能追求:是不是能把一段代码写的更好?接口的设计的能不能更灵活?文档可不可以更详实?注释能不能更清晰?整体方案能不能更安全?产生bug的几率可不可以更低?遇到跨部门合作的时候可不可能提供更多协助?对自己的代码的作用能不能不单纯停留在技术层面,可不可能也对这段代码所支撑的业务有更多的理解?这些,在我看来,都和学习更多的所谓的“高级技术”一样重要,甚至更重要!
另一方面,更“高级”的技术千千万,但也不是每一种更高级的技术,都适合你,或者适合当前你的企业的。既然你已经加入了一家企业,你也希望好好做,希望更好的“达到公司对你的期望”,那么我的建议是:咨询询问你的工作环境中的同事,“老人”或者领导,咨询询问那些你觉得技术挺高的技术经理和高级工程师。搞清楚从他们的角度看,企业更需要什么技术,什么技术能帮助你有更好的发展。
机器学习高级不高级?高级。但是有可能于你的岗位根本用不上;
GO语言火不火?火。但可能你现在工作的产品,还完全没有采用GO的技术栈;
前端是不是很普遍的技术,是。但可能你现在的企业最需要的就是一个前后端能够融会贯通的人。
所以,其实我很难告诉你什么技术与你现在是最有用的。与其在工作之外盲目的寻找提升的方向,不如踏踏实实的从你的工作出发,寻找提升个人的路径。只要你在不断前行,不断做事情,也不断学习,你就是在不断提升,不断增值的。大牛不是一个模子刻出来的。大牛千千万,每个大牛的擅长和特点也千千万,他们成为大牛的路径更是大相径庭。还是要说回来,强调这一点:所有的大牛,都不是因为学习了多少东西,所以是大牛。学习了很多东西,那只是学霸而已,是“学校阶段”的大牛。到了社会上,所有的大牛,都一定是因为在自己的工作岗位上,做出了什么样的事情,或者解决了什么样的难题。切记。
如果一定要让我提一些技术提升的建议,那么我的建议永远是那些技术界的“内功”,如:算法,数据结构,操作系统,组成原理,设计模式,软件工程,编译原理,编程范式,甚至是离散数学,等等等。对这些内容的学习和深入理解,都无法做到让你马上找到一个薪水更好的工作,但是,他们是帮助你更深刻的理解计算机,理解技术的。很多所谓的更高级,更前沿,更复杂的技术,源头其实都隐含在这些领域中。
我也不认为你需要短期内就攻下这些领域中的一个或者几个。这些领域都是急不得的领域。作为技术人,时刻提醒自己,不可只满足于掌握一两个框架,学会一两门语言,更要不停地对这些更深刻的领域进行探索,并且日积月累的行动下去。时间长了,绝对是了不得的事情。
再有,很多“非技术”的能力,如沟通能力,表达能力,灵活处理人事关系等等,也都很重要。纵使在技术的世界中,技术是王道。但所有的技术,最终还要通过人与人的沟通,协调,合作,最终产生作用。作为职场人,不可忽视。但是看到你的年纪(比我大一岁),我相信这些你都理解。
再次恭喜你!继续加油!:)