给自己Android开发经验谈

优化千千万万程序员,架构师无一人辞退!你是合格的架构师吗?如何成

2021-06-17  本文已影响0人  程序员面试秘籍

导语

之前很多人问过我这么个问题,说怎样才能成为一名高级工程师?我觉得这是一个很好的话题,技术人的职业规划不管如何发展,总归是一个从初级到高级的过程,不要妄想从初级一步跨越到架构师、CTO 之类的职位,所以高级工程师这个过渡阶段显得就很重要了,那么今天就来给大家说说你们还差在哪里!

什么是系统架构师?

所谓系统架构师就是负责制定项目的总体架构,并指导整个开发团队完成项目开发的关键人物。

如何成为一名架构师?

架构师从来都不是看书看来的,需要长久的实践与累积。最好的方式就是在工作中累积。

首先, 你得明确,你是在做产品,不是做项目。
其次, 架构的前期需求分析与建模非常重要,多思考未来可能的扩展。
最后, 最好有一定的代码规范甚至是洁癖。

要用严格的标准来要求自己,是否当上架构师其实没差,无非就是希望自己成为团队核心得到更多的认可而已。如觉得自己目前的工作没什么挑战性,也可以自己来设计一款产品,从需求到架构到实现。碰到那种常见的需求,可以参考一些成熟的第三方开源项目,另外在看第三方项目时,要明白what how why。

what 这个项目是为了解决什么问题而生的,提供了什么样的API?
how 它是如何实现的?有哪些小的功能模块组成?它们是怎样解耦的?如果我有扩展需求,我该如何改?why 为什么会这样来实现?有没有更好的方案?

一般来说,我们看代码,基本顺序是what how why,能去翻源码理解how的不多,真正做到why的少的可怜。如果你想提升技术成为主力,那至少,你得多去理解how,试图去解释why。


成为一名优秀的系统架构师需要哪些知识储备?

1、架构师胚胎(程序员) 学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。

2、架构师萌芽(高级程序员) 学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)

3、架构师幼苗(设计师)应该在掌握上述基础之上, 结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE架构、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。

4、软件架构师的正式成型在于机遇、个人努力和天赋, 软件架构师其实是一种职位,但一个程序员在充分掌握软架构师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理架构、如何不断的抽象和归纳自己的架构模式、如何深入行业成为能够胜任分析、架构为一体的精英人才这可不是每个人都能够遇上的馅饼……

注意:程序员是一个有时间年限的工作,一般30岁之前就要规划好未来的职业道路。

先上图:

一般的面试,会被问到JVM原理、职业规划、数据结构和算法、性能优化、设计模式等内容,这都是一名普通Android开发人员的知识结构,那么阿里P8肯定是需要具备更多的知识树,需要掌握更全面的知识体系,所以就需要对知识进行一个系统的梳理了。

对标P8,我梳理的知识体系如下:

内容包含

如何学习

每个程序员朋友都有自己的架构师梦,可往往梦想是美好的,现实又是残酷至极的。不努力不奋斗,可能就会在基层一辈子止步不前。也许有很多朋友还会说,程序员也是干的年轻饭,年纪大了也就爬不上了,脑子跟身体都跟不上了。那既如此,又为何不趁着自己还年轻,好好把握机会,努力一把,美好的未来才有机会和你招手!当然咯,这也仅仅代表我个人的观点,毕竟一百个人有一百个不同的脑子,就会有成千上万种不同的想法。

不过,只一句,如果你还在做这一行,还是一名程序猿(媛),想走上坡路的你,也许我这到手的学习进阶笔记 可能会对你有所帮助。

如何逆袭

(点赞后可免费获取)

学习方向给你们看一下精简版本了,需要完整版的可以找我分享 。由于简书限制网盘链接,需要相关学习笔记的可以复制我的GitHub地址,

下载获取你需要的学习笔记:复制下面GitHub链接即可
https://github.com/274942954/ByteDance-Android-Architect-learning-note/tree/master

或者复制打开链接,群文件夹自己下载:https://jq.qq.com/?_wv=1027&k=Nf77fQ97

查看我主页简介,加我vx我免费分享给你!保无偿分享!

Framework可能涉及到的知识点包括:

Android 系统架构、Zygote进程启动过程、SystemServer进程启动过程、Launcher启动过程、WindowManager体系、WindowManager体系、Binder、Handler等。 从每个话题可以多角度切入到不同的领域,全面了解候选人对进程通信机制、常用组件、插件化方案的理解程度。此外高级UI、第三方框架源码理解也是必备的知识技能等。

framwork 精编源码解析


在这里插入图片描述

我整理了面试遇到的一些知识点,并画成了思维导图的形式。方便大家复习。


学习方向给你们看一下精简版本了,需要完整版的可以找我分享 。由于简书限制网盘链接,需要相关学习笔记的可以复制我的GitHub地址,

下载获取你需要的学习笔记:复制下面GitHub链接即可
https://github.com/274942954/ByteDance-Android-Architect-learning-note/tree/master

或者复制打开链接,群文件夹自己下载:https://jq.qq.com/?_wv=1027&k=Nf77fQ97

查看我主页简介,加我vx我免费分享给你!保无偿分享!
上一篇 下一篇

猜你喜欢

热点阅读