前言
可能有很多朋友在做了多年技术之后都会进入一个迷茫期,对自己所负责的业务逻辑非常熟悉,但是每天就只是和各种需求和Bug打交道而已,总感觉对自身能力的提升并不大。虽然在公司里属于不可缺少的一员,但是同时又担心离开了这家公司就找不到更好的工作了。
有这种焦虑的朋友或许应该思考一下这个问题:如何成为Android高级开发,提升自己在 Android 市场上的竞争力?
技术人的职业规划不管如何发展,总归是一个从初级到高级的过程,不要妄想从初级一步跨越到架构师、CTO 之类的职位,所以高级工程师这个过渡阶段显得就很重要了,那么今天就来给大家说说你们还差在哪里!
1、工作经验与技术积累
说到高级工程师大家的第一印象自然就是工作经验丰富,技术够牛逼。
注意这里说的是工作经验,并不是指工作时间。有的人踏踏实实做项目,业余时间想着多学点新技术,坚持读书,认真写博客总结,多实践,加上自己本身悟性又不差的,2、3 年的时间都可以有别人 3、5 年的工作经验,成长为公司的高级工程师水到渠成。而有的人混日子,做的项目得过且过,业余时间玩游戏,追剧,也许你在公司工作了 10 年看起来兢兢业业,然而你对自己没有更高的要求,安于现状,不求进步,这类人即使有 10 年的工作时间,却只能止步于此。
靠着自己持续不断的学习,以及工作经验的积累,一步一步,见得市面多,踩的坑也多,技术越来越牛逼也是理所应当的事,而技术是一个高级工程师最基本的要求,然而我却认为只要不是傻子,对技术有点追求的人,想达到这点不难,只是时间长短问题而已,除了技术,你跟那些真正的高级工程师还有其他方面的差距!
2、责任心
高级工程师责任心一定很强,责任心是体现一个人的态度问题,对于一个 bug ,他们永远都会重视,想尽一切办法找到原因并尽快解决,而有的人对于 bug 却是得过且过,解决 bug 的态度就是尝试,认为从表面上解决了就 ok 了。
我们 CTO 十几年的软件开发经验,有用户反馈 bug ,不管多忙,不管什么时间,一定停下手头上的事情,去找到原因并解决。我在薄荷的经历,曾不止一次跟着他为了解决一个 bug 搞到深夜,有几次深夜发现一个导致用户不能付款的 bug ,我都躺床上睡觉了,被 CTO 喊起来半夜赶往公司去修复的经历,当时还觉得不理解,时间长了,我才意识到这种责任心是职业素养,现在也深深的被感染,在任何时候、任何时间,我的手机、电脑都是不离身,出问题一定第一时间进行响应!
对比下你们,你们的责任心够强么?
3、学习
很多在刚进入到Android开发的程序员,在找到工作后基本就不知道还学什么了,没有给自己定一条属于自己的发展目标。而很多高级工程师就不一样,他们在每天完成工作之后,会思考高级工程师之后还能进阶到一个什么层级,是管理方向还是技术大牛,他们会拥有自己的选择方向。要知道,学习是有无止境的,当我们成功成为android初级工程师后,还有性能优化,Framework底层以及各自开源框架的知识点可以学习。给自己制定一个发展目标是非常有必要的。
4、跳出自己的舒适圈
初级工程师在拿到一个稍微复杂点的需求的时候第一印象就是好复杂,我实现不了,哪怕这个技术别家证明可以实现。而高级工程师则不会不做技术调研就说 no ,敢于接受挑战,除非在做过充分的技术调研之后,确信确实实现不了,否则都会付出 200% 的努力去实现它。
对于技术如此,同样的对于一些解决方案、架构设计、历史遗留问题的解决甚至项目负责人等的挑战都会勇于承担,你不逼下自己,给自己点压力,你永远不知道自己的潜力有多大,而就是在这一次次攻克难关的过程中,你的成长是飞速的!
所以,不妨试着让自己承担一些有挑战的工作!跳出自己的舒适圈
5、参与业务、产品
我见过太多的程序员,产品经理给出需求的时候,闷头就开始写代码,中途需求变动了,然后就开始在心里大骂产品经理傻×,简直就是所谓的「码农」,虽然我们都拿「码农」来自嘲,但是我相信我们都不希望成为真正的码农,我们要做的是工程师!
而工程师跟码农的区别就是,他们不只是闷头 Coding,他们会参与产品、参与业务,虽然我们的主要职责是开发,但是如果能在需求阶段跟产品经理一起讨论,也许在产品、业务上你不专业,但是可以从技术的角度来一起思考,一起参与进来,尽量帮忙把需求更完善些。
初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。
而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。
所以好的工程师是可以对产品有很大的帮助作用的,而且跟产品经理多进行沟通交流,除了技术外,对产品、对业务、对商业你也能学到不少东西,以后的路会更广。
所以,不要做闷头 Coding 的码农,做关心业务、产品的工程师!
以上是我总结的优秀的高级工程师的一些标准,别总说你跟那些人只是技术上的差距而已,除了技术,其他地方可能差的更远。技术可以靠时间来弥补,但是其他几个方面可是时间无法弥补的,希望大家自己对照下,不管是所谓的高级工程师也好,还是之后的小组 Leader,甚至再之后的架构师、CTO,这些特质是必须具备的,问问自己,你们的差距还有多远?
如何提升技术成为Android高级开发
技术提升,是一个复杂的问题,也是一个简单的问题。技术提升只有一条路,那就是大量的时间投入 + 良好的知识梳理能力。但凡一门技术,你都要投入大量时间,去全面系统的学习,并在学习的过程中自我梳理和总结,任何投机取巧的学习方式都是不可取的。
如果知识是一棵树,那么你需要建立一个树状的知识网,每个树干和树枝构成了这张网络,网络内部四通八达、互相连接。这个时候,每个知识点都位于一个个的网格之中,你还需要去熟悉大部分常用的网格,达到这种状态,这门技术才算理解的透彻。
这里我帮你准备了详细的进阶学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向可以查漏补缺,有针对性的系统提升。
这份成长路线每一个专题板块都是非常值得我们去深入了解其原理的,每块内容都配套有对应的文档资料,可以将Android核心知识点全部串联起来,实现系统性的学习。
有需要的朋友扫描下方二维码即可领取~
![](https://i-blog.csdnimg.cn/blog_migrate/df2dbe34069051f3d7b9dfdbf2000dbc.jpeg)
最后
焦虑是没有意义的,最好的办法就是付出行动,立刻,马上!