这些问题我之前从来都是不回答的,因为我那个时候也不太知道标准答案是什么。也只能说因人而异吧!
前几天,写了一篇《没想到,我都来阿里5年了》,总结了一下自己这五年的经历与成长。
在这过去的5年里,真的经历了太多太多,我也从一个刚刚毕业的懵懂少年,成长成一个独当一面的技术专家了。也回过头思考了很多很多。
刚好现在自己在阿里待了5年了,前4年里经历了两次晋升,从P5到P7,算是大概了解了一些阿里对于人才的要求。
所以,今天斗胆来谈一谈我认为的阿里的人才观,试着回答一下这几个问题。
注:本文所有内容都是我的个人观点,所有言论仅代表我个人,不代表我供职的公司!!!
阿里的Android高级开发人才画像
其实最近两年自己一直在做面试官,也面试过很多优秀的人,心里才大概有一个标准,知道什么样的人才是我们想要的人。
但是这个标准我一直都没有仔细的去思考过,刚好最近有时间,我好好的思考了一下,根据我的理解,谈一谈我认为的阿里的人才画像是怎样的。
我觉得阿里需要的Android高级开发大概需要具备这几方面的能力:
-
软件开发能力
-
架构设计能力
-
项目管理能力
-
线上运维能力
-
业务理解能力
-
学习能力
-
影响力
-
目标导向
这些岗位描述和要求里面的内容,基本都能和以上几个能力对应的上:
1、负责平台核心功能、公共模块的规划及架构设计,包括系统架构设计、接口规范制定、技术文档、单元测试的编写等; -----> 架构设计能力
2、业务模型理解和抽象能力突出,参与科学决策、数字兴业、数字治理等相关系统的架构设计,承担核心模块的代码编写 。 -----> 架构设计能力
3、业务理解和建模能力突出,能独立完成系统(或核心模块)的设计、开发和系统维护;-----> 业务理解能力
4、扎实的Java编程基础,理解io、反射、多线程、集合等,清楚JVM的原理;-----> 软件开发能力①
5、扎实的Android基础,熟悉Android常用开发框架,有良好的架构思维。掌握常用的第三方库(Glide、RxJava、eventbus、okhttp)、参与移动APP的开发,具有独立的模块开发经验,能够不断优化产品的性能;-----> 软件开发能力②
6、具有比较强的问题分析和处理能力,有比较优秀的动手能力,热衷技术,精益求精; -----> 线上运维能力
7、有强烈的责任心,抗压能力强; -----> 目标导向
以上的岗位描述中,对于一些能力的描述都是使用了一些形容词或者程度副词,如突出的、扎实的、比较优秀的、熟悉、熟练掌握、比较强的、有强烈的、强、善于、很好的等。
那么,到底什么样算是优秀?做到什么程度又酸是扎实、熟练能?又要怎么做才能达到突出呢?
接下来我分别说说对于阿里的P6这个层级,以上这些能力大概需要达到什么样的标准。
对于一个程序员来说,软件开发能力当然是一个最最基础的能力了,很多面试主要考察的也都是软件开发能力。
那么,到底需要掌握哪些知识,才能达到阿里的P6的标准呢?
在回答这个问题之前,我看了很多大厂的招聘要求,并且回顾了一下以往面试时自己对于候选人的要求,总结了一些我认为比较重要的知识点,被我整理成PDF(高清版),一共832页,希望可以给想来阿里的小伙伴,可以做一个参考;
免费领取链接我放右方,需要的朋友可以————(此处加入免费打包领取)
可以说,如果以下这些知识点,候选人不能完全掌握的话,面试挂掉的概率很大。所以说,想去阿里,这些Android重要的知识点是必须要掌握的!
Java基础:JVM、String、内部类、多态、抽象和接口、集合框架(Hashmap、Arraylist)、单例、线程、Synchronized、Look锁、动态代理、引用
Android基础:四大组件、View、进程、Bitmap、屏幕适配、消息机制、线程异步、WebView。
Android扩展:ART、Apk优化、Hook、Proguard、架构(MVC/MVP/MVVM)、Jetpack、NDK开发。
Android源码:Leakcanary、Eventbus
设计模式:面向对象六大原则、工厂模式、单例模式、建造者模式、观察者模式、适配器模式、策略模式、代理模式
算法:排序、二叉树、链表、栈和队列、二分、hash表、堆、数组/双指针、字符串处理、动态规划
网络知识:Http(缓存、Https、Http2.0)、TCP(三次握手四次挥手、socket)、类加载器!
那么,具体如何衡量自己的知识面和深度是否足够呢,有一个简单的办法,就是从头翻阅Android知识点列表如果你能满足以下要求,那么说明你已经基本达到了:
基础篇。掌握70% 底层篇。掌握60% 进阶篇。掌握50% 高级篇。掌握30%
那么,你的知识面的广度以及深度的话,我认为算是达到了一个相对符合标准的程度。
总结
其实,说了很多很多我对Alibaba面试的一些理解。相信很多人会有不同的意见,这也是正常的,每个人的人才观都不太一样。
至少我面试的时候,招人的一个标准,就是和他聊下来之后,我觉得我可以和他很好的合作,可以把我认为重要的事情交给他的,那么他就可以通过我的面试了。
那么,如何在面试中给到我这种信任感?
那就是让我觉得他技术能力不错,有一定的架构思维、有线上问题排查的能力、了解自己的业务、可以负责一个项目的管理、也能快速的学习一些新的知识。另外,如果可以让我感受到他是一个目标导向的人,并且有一定的影响力的话,那么我会更加愿意接受他。
以上,这7点,不仅仅是对P6这个层级的要求,其实不同的层级都适用,只是针对具体某一项,不同层级的要求不同而已。
当然,其实我并不觉得这只是阿里的要求,因为我只是在阿里当过面试官,所以我只能表达下我认为的阿里需要的人才是什么样的。
如果以后我去到其他公司了,或者自己创业了,那么我相信我招人的标准也一定还是这个。因为我始终认为,Android高级开发工程师,一定不仅仅是写代码的。
最后,希望我今天的文章可以让你找到一点方向。愿所有读者:长风破浪会有时,直挂云帆济沧海。
注:需要免费获取832页阿里Android面试知识点汇总(高清PDF版)的朋友————(此处加入免费打包领取)
网友评论