[干货]2020金三银四最全面试总结——这些大厂Android-“108”-问面试题你一定需要

14 篇文章 0 订阅
14 篇文章 0 订阅

算法,是现今使用频率最高的词之一。算法或许在二十年前算个新概念,但现在应该人尽皆知,尤其在《人物》发布了《外卖骑手,困在系统里》一文后,“算法”在舆论场中多了一层操控的意味。

在这个想象未来愈发困难的时代,看理想主讲人李如一为女儿写了“三十封信”,既是家书,也是明日生存指南。其中一封,就谈到了渗透在我们生活中的“推荐算法”。

不过,本文要讨论的“推荐算法”与外卖平台用来指挥骑手的算法有所不同,相对地,与内容挂钩的“推荐算法”影响到的用户群更广大。简单来说,“推荐算法”就是利用电脑运算,通过特定的步骤来向网络服务的用户推荐内容的机制。

但首先我们要问: 为什么要有这样一种机制?为什么我们需要被推荐内容?

在年轻一代人看来,很可能是这样的:打开YouTube或抖音,就有听不完的歌和看不完的视频。这些内容好像自上古时代以来就存在在那里,只等着你点一下手机。

假如有上了年纪的中年人看到这里,请不要觉得荒诞。在我们看来,歌要有人写,词要有人填,然后还要有人编曲,唱歌,录音,做成唱片,宣推,然后卖到人们手中。这些人当然还存在,没有他们我们还是听不到歌,但是新一代在音乐流媒体听歌与我们当年用唱片或录音磁带听歌的感受还是很不一样的。

就好比拧开水龙头就有水出来。虽然理性上,你知道自己有在付水费,有污水处理厂等一系列基础设施,我们才能享用自来水,但你同时会把自来水视为一种理所当然的事。

我们称之为内容的东西,正在渐渐变成自来水。

(文章编辑自看理想节目《明日世界生存指南:给女儿的三十封信》,这是主讲人李如一以家书的形式给女儿的献礼。)

一、算法如何推荐内容?

老互联网时代和今天的一大区别是,以前上了网不知道该干什么。

在现在这样一个一打开软件不怕没东西听和看的时代,很多人可能会觉得,为什么还要别人推荐内容?假如你也这么想过,我认为你已经着了推荐系统的道。

几乎所有视频网站和社交平台首页都充斥着推荐系统。用户每天都被推荐系统引导着去看和听不同的影像和音乐,但却很可能几乎意识不到它的存在。可以说,这有点像广告想要达到的最高境界了。

推荐算法早已遍布全网。它有一个更口语化的说法或许更加准确,那就是“ 猜你喜欢 ”。

在当当、亚马逊等网站的购书页面你往往会看到“你可能还想看这本”;在B站会有推荐视频;大名鼎鼎的奈飞 (Netflix) 首页里的一排排影片列表,也是根据复杂的推荐算法所排出的;在iPhone从上往下拉,Siri会猜你想用哪个软件,这也是一种推荐系统。

图源Unsplash

推荐系统的结果看上去可以很简单直白。例如,我现在打开YouTube,最顶置的两排里,有好几个都是我近期常看的频道的新内容,其中包括一个育儿节目、一个九十年代电视剧片段、一个现场音乐会、两个正在直播的新闻节目等等。但这些结果背后都有复杂的计算。

奈飞在自己的网站上大致描述了推荐算法背后包含哪些因素。他们会看用户之前看了哪些影片,给它们打了多少分,这些影片的类型、年份、演员等具体信息,和用户口味类似的人的使用状况,用户在一天的什么时候看奈飞,用什么设备,通常看多久等等。

还有两个有趣的地方,一是,奈飞明确说用户的性别和年龄不会用作推荐系统的参考,二是,最近的观看历史的权重高于之前的观看历史,也就是说奈飞的算法更看重用户最近看了什么,认为从那里更容易推演出用户接下来更想看什么。

推荐算法是奈飞的制胜法宝,所以他们不会告诉别人收集了上述复杂的信息之后具体的推理过程,但我们可以根据常识做一些猜测。

例如,用什么设备看视频,这件事为什么重要?一种理解方法是,用户用手机看视频时,由于屏幕小,流量有限,并且有可能在通勤途中,因此更容易选择短平快的内容,如综艺节目,或是较为轻松的电视剧。

或许奈飞的产品经理不是这么想的,但这里的关键是,各种和内容本身不直接相关的因素都被纳入了推荐系统的考虑范畴。这一点并没有什么异常,因为一向如此,在前互联网时代同样如此。

二、人肉算法时代

发现内容的渠道千千万万,但有一些核心原则和现在这复杂而高级的推荐算法并无本质区别。

比如,在大量音乐青年主要的精神食粮是打口唱片的年代,我曾无数次感受到唱片店老板貌似漫不经心的目光。我在一盒盒唱片中翻翻拣拣的动作都被他暗自看在眼里。有时我刚选出了两张唱片,他就一言不发面无表情地从另一个箱子里掏出几张别的递给我。

《后来的我们》

老板就是一套人肉推荐算法。

和如今的音乐App比,这套算法很不周全,不过颇有些特别之处。例如,有时他会通过某种无伤大雅的羞辱来达到让人消费的目的。具体表现为“这你都没听过!”之类的话术。还有的时候他也会诉诸于社交性,比如说哪个哪个资深乐迷都买了之类。

总之,我们都了解他的伎俩,也都比较能以平常心对待他,因为在那个年代还有一个重要的推荐系统,那就是乐评。

是的,从今天的角度看,这简直原始得难以想像,一个由许多活人组成的推荐系统,效率何其低下,人工成本又多么高昂?

那个时候的乐评 (也包括影评、电视评论、书评等) 首先当然是刊载于杂志,但在售卖或租赁唱片、影碟的店里也会有一种乐评,那就是店员的个人心水推荐。

有的店会专门辟出一块空间,用来摆放各店员本期推荐的音乐或电影,用卡片纸写上几十一百字的推荐放在旁边。久而久之,顾客和店员的口味会自然形成匹配,产生专门买某店员的推荐的习惯。

九十年代的美剧《宋飞正传》有一集的设定,就是Elaine由于喜欢一位店员的推荐,在想象中爱上了他,由此展开故事。而在日本的许多唱片店,这种做法至今得以保留。

在这里我们可以看到,人们还有读乐评习惯的年代和如今这个年代的重要区别。那就是活人在整个推荐过程中的能见度。

应该说,在读乐评影评的时代,导购并不是它们唯一的功能。不可否认,它是很重要的功能,因为文化产品在那个时候已经过剩,消费者已经需要专业意见来帮助自己做出选择了。 但我们并不是只读自己可能会买的唱片的评论,也不一定只读自己喜爱的乐评人的评论。

那么,读评论是在求推荐吗?肯定有这方面的考虑,但它更是一种 参与公共话语的过程 ,用英文的说法,是一种“making sense of the world (搞清世界是怎么回事) ”的过程。

在这个过程中,你可能会发现一些自己喜欢的音乐和电影,但从本质上说,那并不是目的。真的目的还是在于“making sense”,搞清楚。

而当今我们批判推荐算法时所提出的罪名,诸如推荐算法让人懒惰、让人陷入虚无的循环,都忽略了硬币的另一面,那便是“人”本身没有求知欲。

《监视资本主义》

三、算法面前,没有人是一张“白纸”

作为一个中年人,或许是因为推荐算法出现的时候,我已经形成了自己的认知和审美系统,知道自己想听什么、想看什么,所以算法最初的原始和简陋绝不可能令我满足,相反会令我鄙视。

对更年轻的一代人可能并非如此。 大部分95、00后可能不会经历通过细读杂志或乐评网站来塑造音乐口味的过程,而是一开始就接受了推荐算法的洗礼。

不过也必须指出, 并没有什么人真的是一张白纸。

以音乐而言,一个生长在音乐家庭的小孩必定从小听过不同的乐器演奏,在幼儿园也许玩过与节奏相关的游戏,上小学后再上音乐课等等。在这种情况下,当他第一次和推荐算法相遇时,是做好了准备的。

《京城之王》

电影和电视剧也是如此。虽然拍电影作为一种课外活动不如学习乐器普遍,但讲故事是伴随每一个人童年的活动。如今智能手机的普及,也令拍视频变得不再困难。事实上,用视频讲故事、说明问题,已经是许多小学生的作业形态之一。

只要有人引导孩子去从视听语言、电影艺术的角度认真思考这其中的每一个步骤,他们在人生第一次自主使用视频网站之前,就已经对于电影有了老一代人没有的心得。

在推荐内容一事上,我们也不能忽视实体世界社交的作用。设计推荐算法的人都明白, 用户的朋友的推荐,在很多时候比任何聪明的算法都更有效。

一位乐迷朋友经常和我抱怨说,无论他如何给女儿介绍六零、七零年代的音乐,上小学的女儿依然只听她的同学和朋友听的东西。在今天基本就是嘻哈,而且排除了八零、九零年代的嘻哈。如果我们带着善意去思考推荐算法,这里倒是它可以发挥正面效用的地方。

中国有家酒店,在客房内对于自己提供的宽带上网服务写了一份免责声明,说 “网络是一个巨大且可能令人产生困惑的地方”,如果客人因为上网受到了伤害,本酒店不负责任。

在我看来,推荐算法要是能把巨大的互联网上那些可能令人产生困惑的东西适时地推送过来,倒也是功德一件。只不过,上面那位朋友的经历告诉我们,或许有比推荐算法更大的力量在左右着人们的内容消费。

四、与算法共存

说了这么多,我并不抗拒推荐算法。

当然,我不同意它目前的某些基本假设,例如“根据听众此刻的心情推送歌曲”,就是假设艺术应该配合人的情绪。我认为艺术应该提升或超越人的情绪。

但是在很多情况下,我也受益于推荐算法。最直接的例子,就是当我要了解一个陌生领域的知识时,亚马逊的“你还可能对这些书感兴趣”往往能够提供快速入门的方法。

另一方面,在深不见底的YouTube上听未正式发行的古典音乐录音,也往往能训练它的推荐算法在日后推一些令人惊喜的录音给我。

我想, 和推荐算法共处时最重要的一点就是要意识到它的存在, 并且自己去挖掘算法意识到的相关性背后的故事。 这是因为推荐算法是软件,它需要用精确的语言定义所有问题。

《模仿游戏》

在这个过程中,人类一切行为必然带有的混乱和非理性因子会被抹除。为什么你看了电影甲之后奈飞会推荐电影乙给你?或许是因为题材近似、风格近似、或是一万个看过电影甲的人里有九千个都去看了电影乙。这些是容易描述和定义的因子。

但或许,只要通过简单的调研,就会发现电影乙的导演长期做过电影甲的导演的副导演,或者电影甲和电影乙的名字都是直接借用自七十年代著名的流行歌曲,又或者电影乙最初是出于纯粹的商业考虑对电影甲进行了抄袭模仿,但是在几十年后由于观众口味的变化被翻案重新评价,地位甚至超乎电影甲之上。

如此,你就可以开始画自己的知识谱系,深挖作品之间、作者之间、作者与时代氛围之间的关系。

最后

按照国际惯例,给大家分享一套十分好用的Android进阶资料:《全网最全Android开发笔记》。

整个笔记一共8大模块、729个知识点,3382页,66万字,可以说覆盖了当下Android开发最前沿的技术点,和阿里、腾讯、字节等等大厂面试看重的技术。

图片

图片

因为所包含的内容足够多,所以,这份笔记不仅仅可以用来当学习资料,还可以当工具书用。

如果你需要了解某个知识点,不管是Shift+F 搜索,还是按目录进行检索,都能用最快的速度找到你要的内容。

相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照整个知识体系编排的。

详细文档可以点我下载,记得点赞哦~

(一)架构师必备Java基础

1、深入理解Java泛型

2、注解深入浅出

3、并发编程

4、数据传输与序列化

5、Java虚拟机原理

6、高效IO

……

图片

(二)设计思想解读开源框架

1、热修复设计

2、插件化框架设计

3、组件化框架设计

4、图片加载框架

5、网络访问框架设计

6、RXJava响应式编程框架设计

……

图片

(三)360°全方位性能优化

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

……

图片

(四)Android框架体系架构

1、高级UI晋升

2、Android内核组件

3、大型项目必备IPC

4、数据持久与序列化

5、Framework内核解析

……

图片

(五)NDK模块开发

1、NDK开发之C/C++入门

2、JNI模块开发

3、Linux编程

4、底层图片处理

5、音视频开发

6、机器学习

……

图片

(六)Flutter学习进阶

1、Flutter跨平台开发概述

2、Windows中Flutter开发环境搭建

3、编写你的第一个Flutter APP

4、Flutter Dart语言系统入门

……

图片

(七)微信小程序开发

1、小程序概述及入门

2、小程序UI开发

3、API操作

4、购物商场项目实战

……

图片

(八)kotlin从入门到精通

1、准备开始

2、基础

3、类和对象

4、函数和lambda表达式

5、其他

……

图片

好啦,这份资料就给大家介绍到这了,*有需要详细文档的小伙伴可以点我下载~~~~*

API操作

4、购物商场项目实战

……

[外链图片转存中…(img-URGGHax7-1624353517485)]

(八)kotlin从入门到精通

1、准备开始

2、基础

3、类和对象

4、函数和lambda表达式

5、其他

……

[外链图片转存中…(img-fGLXAweE-1624353517486)]

好啦,这份资料就给大家介绍到这了,*有需要详细文档的小伙伴可以点我下载~~~~*

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值