常见软性面试点准备维度

除了核心的coding skill,一些面试官常常问到的问题,准备一下,这里仅仅是拿我对某个公司的面试准备作例,回答的方向根据对公司的判断以及与员工的沟通得出。

  1. 新技术--学习经历,技术风向的理解,新特性

  2. 新行业--区块链,5G,flutter,kotlin

  3. 设计能力--性能优化、用户体验优化、兼容性设计、需求评估

  4. 细节把控--数据结构

  5. 职业价值观--职业规划,个人追求,对公司的期望

  6. 方法论--个人学习的方法、工作方法、业余所做的事情

  7. 深刻经历--处理过的难题

  8. 选择倾向--为什么选择这家公司,和之前offer的对比?

9、沟通能力


1、新技术--学习经历,技术风向的理解,新特性

技术风向的理解:新鲜血液开始纷纷涌向AI和区块链等技术,移动开发增量减少,存量厮杀,或者纷纷出海谋求新市场。产品质量和开发效率决定了能否继续生存下去。移动开发不再是风口,但是人们在移动设备上花的时间不会减少,各种新技术大部分也是由移动端作为载体发挥作用的。所以移动端不应该仅仅是APP开发,大部分新技术浪潮都能融入其中,大前端、开源库、IoT、音视频、边缘计算、VR/AR、区块链、AI等等。

移动开发者的未来更可能是跨终端,产品、运营、数据分析、后端,技多不压身。

为此,必然要选择一个未来有潜力的行业方向,即接触底层原理,也根据行业需求尽量多接触新技术。将新技术浪潮融入进移动端体系,即是大势所趋,也是自我成长必然要经历的。

技术新特性:

Android 10 新特性:

  • 隐私和安全改善:限制应用在后台访问用户位置、限制后台启动activity、移除了联系人的亲密程度信息、扫描网络时需要精确位置权限;安全方面,引入新加密模式 Adiantum、默认启用 TLS 1.3

  • 行为变更,限制非 SDK 接口

  • 新功能和api,可折叠设备、增强API支持5G平台、通知中的智能回复——提供基于上下围的操作建议、启用手势导航(vivo早就有了)

Android P/9 新特性:

  • 加入手势导航(非默认)、防沉迷管理机制、适配刘海屏、利用AI管理电量和亮度、通知能被再通知栏上就地回复,也能查看更多图片

Android O/8 新特性:

  • 通知渠道改善,程序通知会按类别分类至不同的组(“渠道”),用户还可暂时延后某则通知;画中画模式;优化开机启动,后台服务限制;增加 TensorFlow Lite;智能文本选择;账号密码自动填充机制

Android N/7 新特性

  • 多窗口模式、改进的Doze模式,只要息屏一段时间且未接电源,就会进入低功耗模式。

Jdk 5 特性

  • 自动装箱拆箱

  • 静态导入

  • 枚举

  • 可变参数(int... a )

  • 泛型

  • for each 循环

  • 注解

Jdk 6 特性

  • 对脚本语言的支持

  • 轻量级http server api

Jdk 7 特性

  • switch中可以用String

  • 支持二进制数字

  • 调用泛型类的构造方法时,可以省去泛型参数,编译器会自动判断。之前版本使用泛型类型时这样写 ArrayList userList= new ArrayList();,这个版本只需要这样写 ArrayList userList= new ArrayList<>();

  • 异常处理多个catch

Jdk 8 特性

  • Lambda表达式

  • 多重注解

  • 新的时间和日期 API

  • 静态链接 JNI 程序库

Jdk 9 特性

  • 集合工厂方法,通常,您希望在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它。 实例化集合,几个 “add” 调用,使得代码重复。 Java 9,添加了几种集合工厂方法:

Set ints = Set.of(1,2,3);

List strings = List.of("first","second");

  • HTTP/2 替代 HttpURLConnection

  • Java Shell 使用脚本写出简单的代码,省去建类的痛苦

Jdk 10 特性

  • var类型推断

  • 统一的GC接口

Jdk 11 特性

  • 在Lambda表达式中使用var

  • 标准化的HTTP Client API

2、新行业--区块链,5G,flutter,kotlin

3、设计能力--性能优化、兼容性设计

https://www.jianshu.com/writer#/notebooks/39713378/notes/53109880/preview

兼容性设计:

版本兼容维度:api一般就是新增、修改、废弃,不用太担心突然间删除的问题;

  • 代码中可能需要使用sdk运行时检查;

  • 如果版本差异大,考虑使用兼容库

屏幕适配维度:

  • 使用dp,或者svg图片,对需要拉伸的图片使用.9图

  • 使用百分比布局或者weight属性

  • 对于平板这样屏幕尺寸和比例和手机明显不同的,重新设计layout放在不同文件夹

其他维度:

  • app升级时候,考虑不同版本对接不同服务器,或者在服务器上实现兼容

  • 尽量不使用非sdk接口

4、细节考量--数据结构

5、职业价值观--职业规划,个人追求,对公司的期望

选择一个有潜力行业,有潜力额公司发展。个人方便以Android为基础,精华业务能力,并不断拓展知识面。

对公司的期望就是行业和产品本身符合我的预期,比较年轻有活力,没有严格的层级制度大家都比较上进,环境不要差。

6、方法论--个人学习的方法、工作方法、业余所做的事情

看博客,看demo和官网,然后自己记笔记、敲代码学习。

一般早上起来列一下今天做的事情,早上和下午3/4点之后做核心的任务,过几天自己总结下事情的进度和需要改进的地方

业余我就约朋友,爬山,没事就泡一个咖啡店看书

7、深刻经历--处理过的难题

摩托车模式中,关于进程意外被杀,欢迎界面处理

框架代码在9.0中更新了,8.0中没更新,但是app代码在8.0和9.0是一样的,判断SDKversion、反射都不是长久之计,只能使用mk动态加载不同java文件实现

动画导致内存泄露

CTS测试问题,MTK框架代码下有那个call函数参数不符合Google规范

8、选择倾向--为什么选择这家公司,和之前offer的对比?
你们更好。

9、沟通能力
大公司和小公司沟通上的区别:大公司流程多,环节繁琐,但是规范严谨;小公司扁平化、沟通高效、但是突变比较多。
公司目前的架构就是app开发端、区块链设计、大数据后台、量化交易模型维护和市场运营。核心就是需要有一个整体性团队思维,做好自己分内工作,并坚持自己的原则。
1、定位自我位置——基于需求设计做好APP产品,流畅,减少因为技术问题导致的差错和运营损失,我们不像亚马逊那样可以乱玩
2、处理问题原则——重大的问题包括严重的APP技术问题、市场变化或技术升级需要我们及时变更业务并调整APP设计、风控部门根据模型监控出比较严重的风险问题需要及时修补、用户反馈和投诉等,这些问题需要第一时间上升,并有过程记录和结果总结,反馈到所有参与的人中;如果其他问题、比如UI、技术细节、app性能,就在组内自行处理。
3、沟通方式原则——
典型流程中涉及的沟通

  • 设定排期时候先列出理想排期,然后乘以1.5
  • 在开发初期,先做出一个模糊版本,或者PPT,在会议上和利益相关者展示自己的思路和产品形态,双方及时纠正
  • 遇到冲突,在爆发之前让对方解释ta为什么这么想,同理心就能起作用;同时你也做同样的事情并列出底线,站在公司的角度思考问题,处理不了就上升。
  • 如何表达问题:先想好,比喻+图文并茂

比如:
7号的交易板块USD列表有几个币种本来是上升的变成绿色图标了,不知道是服务器的问题还是APP的问题,数据先过你们这边的能不能先帮看下。
7号的交易板块USD列表出现了百分之7的数据异常下跌,经过分析,APP端没有异常,请帮忙检查服务器端7号的某段数据记录并核对APP上的记录。

  • 如何接受问题
    及时回复是一种美德,当然要列出自己专心开发的时间,如果是能快速处理的问题,就快速处理,如果是一时处理不了的问题,就先回复,下午帮你看,下午就一定要分配时间帮别人看。

  • 其他的tip:
    1、富足心态:分享
    2、会议目的要清晰
    3、对事不对人
    4、保持透明度
    5、尊重差异,了解对方优势劣势;
    6、保持沟通,面对面+白板

待补充:简历上关于沟通的点,间隔时间
例子~ 主题适配,和产品妹妹沟通,陈春浩的坦白

你可能感兴趣的:(常见软性面试点准备维度)