初级工程师在拿到一个稍微复杂点的需求的时候第一印象就是好复杂,我实现不了,哪怕这个技术别家证明可以实现。而高级工程师则不会不做技术调研就说 no ,敢于接受挑战,除非在做过充分的技术调研之后,确信确实实现不了,否则都会付出 200% 的努力去实现它。
对于技术如此,同样的对于一些解决方案、架构设计、历史遗留问题的解决甚至项目负责人等的挑战都会勇于承担,你不逼下自己,给自己点压力,你永远不知道自己的潜力有多大,而就是在这一次次攻克难关的过程中,你的成长是飞速的!
所以,不妨试着让自己承担一些有挑战的工作!
如今这个时代再也不是英雄主义时代了,团队才是一切,任你能力再出众,但是跟一个团队比起来,你还是寡不敌众。所以,优秀的高级工程师永远有团队合作精神,永远以团队利益为优先,任何时候,不要做拖团队后腿的那位!
富有凝聚力的团队是一个公司最具竞争力的核心武器,所以,请从思想上让自己有这个意识,团队永远大于个人!
我见过太多的程序员,产品经理给出需求的时候,闷头就开始写代码,中途需求变动了,然后就开始在心里大骂产品经理傻×,简直就是所谓的「码农」,虽然我们都拿「码农」来自嘲,但是我相信我们都不希望成为真正的码农,我们要做的是工程师!
而工程师跟码农的区别就是,他们不只是闷头 Coding,他们会参与产品、参与业务,虽然我们的主要职责是开发,但是如果能在需求阶段跟产品经理一起讨论,也许在产品、业务上你不专业,但是可以从技术的角度来一起思考,一起参与进来,尽量帮忙把需求更完善些。
初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。
而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。
所以好的工程师是可以对产品有很大的帮助作用的,而且跟产品经理多进行沟通交流,除了技术外,对产品、对业务、对商业你也能学到不少东西,以后的路会更广。
所以,不要做闷头 Coding 的码农,做关心业务、产品的工程师!
以上是我总结的优秀的高级工程师的一些标准,别总说你跟那些人只是技术上的差距而已,除了技术,其他地方可能差的更远。技术可以靠时间来弥补,但是其他几个方面可是时间无法弥补的,希望大家自己对照下,不管是所谓的高级工程师也好,还是之后的小组 Leader,甚至再之后的架构师、CTO,这些特质是必须具备的,问问自己,你们的差距还有多远?
如何构建完整的知识体系,深挖Android技术?
很多工作了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:
毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DWAhlnSW-1647441391012)(//upload-images.jianshu.io/upload_images/14735202-f81374d2d63eca83.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aAKAKqlV-1647441391012)(//upload-images.jianshu.io/upload_images/14735202-e14691bd84216c75.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
高级UI与自定义view;
自定义view,Android开发的基本功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWjBoODS-1647441391013)(//upload-images.jianshu.io/upload_images/14735202-e79b96e2d8d90f35.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2EYZ7fB-1647441391013)(//upload-images.jianshu.io/upload_images/14735202-df87ca9ee5cd4962.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
NDK开发;
未来的方向,高薪必会。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5jOPWLQV-1647441391014)(//upload-images.jianshu.io/upload_images/14735202-5c47f79e5bc4899f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
前沿技术;
组件化,热升级,热修复,框架设计
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0DblG2Wf-1647441391015)(//upload-images.jianshu.io/upload_images/14735202-9c7407418282416d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)]
我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
详细整理在石墨文档可以见;
Android学习PDF+架构视频+面试文档+源码笔记
【Android开发核心知识点笔记】
【Android思维脑图(技能树)】
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【Android高级架构视频学习资源】
心高级技术PDF文档,BAT大厂面试真题解析】**
[外链图片转存中…(img-PLsTmCIN-1647441391016)]
【Android高级架构视频学习资源】