架构师对标阿里p7,可能是市面上岗位相对较多的一个级别。并且个人理解从p7开始。就代表的”架构师“这级别了。
在这个级别一定会遇到架构方面的内容。所以整体还是围绕架构这个话题进行展开。
阿里也不是行业标准,但是架构一定是软件的一个通用称呼。所以如何成为和一个架构师需要具备的能力有哪些就是这个系列介绍的。
我一直认为,面试是一个很好的自我认知的一个手段。市场会最终给你反馈,如果没有架构师的offer,那很有可能就是我们的能力和经验没有达到架构师的要求。
反过来说也一样,要自信,要清晰的完成自我认知。在阿里,很多同学没有获得晋升,并且非常看重。我往往说不要看重晋升,并不是pua说级别不重要。
而是想说,不要让一家公司的职级代表你。如果一个p5同学没有晋升p6。那就直接去字节面试一个2-1的offer。拿到了,就说明你能力到了。
没拿到,也可以反过来总结自己会哪些,不会哪些。获得成长的机会。
所以我想先讲能力部分,在我看来,能拿到架构师的offer,一定说明你具备架构师的能力。不存在投机取巧的可能。如果不具备,也可以知道在哪些部分得到成长。或者针对性的工作。
在我的认知里(哈哈,这句话也说明了这个标题的重要性),所谓能力,就是不同的认知能力。
所谓成长,就是认知升级的一个过程。
我想先用一个例子,来说明这个事情。
我在面试中经常被问到一个问题,我也喜欢问别人:java当中如何处理多线程,如何处理并发。
高级工程师的回答:
使用Thread对象的方式来开启线程,传递Runnable,在多线程里面处理业务代码,这样就是并行处理了。此外在jdk1.5里面,增加了Executors类,可以方便的使用一些ThreadPool来处理多线程的线层复用部分。并发安全部分,如果多线程访问共享资源,那么就会有线程安全问题。我们可以使用sync关键字来同步代码。jdk1.5之后是Lock可以处理。
这里可以扩展出很多的问题,比如Lock的实现原理,sync基于对象头,局部变量没有线程安全问题(线程栈)等等的扩展问题。
但是这样回答有问题吗?没有问题,不过没回答完。
我的回答:
不用多线程。
这是我真实的回答,同时我99%以上的场景都拿到了正反馈。
即:面试官非常认可我的回答。非常多的公司都会问我这个问题,东方财富,得物,小红书,字节跳动。
具体这个问题我怎么回答,我接来下讲,什么是架构师的认知就会说到。
这里,我想通过这个例子说明的就是:
能力的不同,对于这个问题的认识就不同。反过来说也一样,对这个问题的认识的不同,也代表的能力的不同。
而这,就是为什么我觉得成长,是认知的升级。
所谓认:就是我们对事务的认识,理解,归因和定义。
所谓知:就是我们要做的事情的方法,方案,选择和决策。
仍然用上面这个例子:java当中怎么处理线程安全问题。
首先直接回答java对于sync和lock的使用是完全可以的。
但是我们可以多问一个:为什么会有线程安全问题?这进一步我们的回答就不一样了,比如一定用了多线程才有线程安全问题,并且是多线程写,如果只是读就不会有问题。
我们可以继续提问,为什么要用多线程,如果不用多线程,就不会有线程安全问题。
这种回答仿佛是脑筋急转弯,但是这是一种5w分析方法。通过这个例子就是想让大家明白
对于问题的看法不同,解决方案不同,就是能力的体现
架构师所具备的认知是什么,还有一些典型的成长方法和思考方法我会在接下来的文章里面继续给大家更新。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8