0%

Thank you for using the S Calculator mobile application. This privacy policy aims to explain how we collect, use, and process your personal information and protect your privacy. Please read the following carefully.

1 Information Collection and Use

1.1 Personal Information Collection:

We do not directly collect your personal identifiable information, such as your name, address, email address, etc. However, we may collect some non-personal identifiable information generated when you use the S Calculator application, such as device information, usage habits, IP addresses, etc.

1.2 Firebase Data Collection:

To improve our application, we use Firebase to collect error information and user behavior data from the application. This data helps us identify and resolve issues within the application and provide a better user experience. We commit to using this data solely for analysis and improvement of the application and not for any other purpose.

1.3 AdMob Advertising Display:

The S Calculator application may display advertisements from AdMob. AdMob may collect some anonymous information to help provide tailored advertising content, but this information does not include personal identifiable information.

2 Information Sharing

We do not sell, trade, or otherwise transfer your personal information to third parties. We only share information with third parties as described in this privacy policy, such as Firebase and AdMob.

3 Security Measures

We take reasonable security measures to protect your personal information from unauthorized access, use, or disclosure. However, please be aware that no Internet transmission or electronic storage method is 100% secure.

4 Changes to Privacy Policy

We reserve the right to update this privacy policy at any time. The updated privacy policy will be posted on this page and notified to you before it takes effect.

5 Contact Us

If you have any questions or concerns about our privacy policy, please contact us at: lxzerolyj@gmail.com
Please note that by using the S Calculator application, you agree to the terms and conditions of this privacy policy. If you do not agree with this policy, please do not use or continue to use our application.

This privacy policy was last updated on April 9, 2024.

本软件尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本软件会按照本隐私权政策的规定使用和披露您的个人信息。但本软件将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本软件不会将这些信息对外披露或向第三方提供。本软件会不时更新本隐私权政策。您在同意本软件服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本软件服务使用协议不可分割的一部分。

1.适用范围

a)在您使用本软件网络服务,本软件自动接收并记录的您的手机上的信息,包括但不限于您的健康数据、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;

2.信息的使用

a)在获得您的数据之后,本软件会将其上传至服务器,以生成您的排行榜数据,以便您能够更好地使用服务。

3.信息披露

a)本软件不会将您的信息披露给不受信任的第三方。

b)根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;

c)如您出现违反中国有关法律、法规或者相关规则的情况,需要向第三方披露;

4.信息存储和交换

本软件收集的有关您的信息和资料将保存在本软件及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或本软件收集信息和资料所在地的境外并在境外被访问、存储和展示。

5.信息安全

a)在使用本软件网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,请您立即联络本软件客服,以便本软件采取相应措施。

自3月裸辞之后,在家休养半年,在8月中旬正式开始面试,直至9月中旬才最终找到合适的工作。这段经历让我感悟颇深,并特此总结,供有相似经历或正打算裸辞的同学们参考。

tips:该总结适用于的广大的普通程序员,业界知名的技术大牛不在此列。

1 裸辞的弊端

裸辞看似爽快,实则大大损害了自身的利益,不仅仅是裸辞后带来的经济损失,也失去了求职中的主动权。

个人总结的弊端如下:

  • 如果待业时间过长,将导致技术敏感度降低,对过往项目细节的记忆也将模糊

  • 如果待业时间过长,面试官也会质疑你的能力是否有所下降

  • 面试时,失去了主动权,跳槽和求职完全是两个概念(请细品)

  • 裸辞代表将有一段时间失去收入,往往程序员的收入占家庭收入比重的大头,那么带来的生活压力也会大增,从而影响求职的心态

  • 裸辞后处于无业状态,社会对于无业者总是抱有有色的眼光,因此也会带来无形的心理压力,影响求职心态

2 面试准备

面试该如何准备,经过这次大约8、9次的面试,我也总结出了一些十分有效的经验。

关于自我认知方面:

  • 正确认知自己的能力级别,一个优秀的面试官能够很轻易的通过问题判断出你真正的能力水平,不要存在侥幸心理
  • 找到自己的优势点,在面试过程中尽量凸显它
  • 明确自己的职业规划

关于过往项目经历方面:

  • 找到过往项目经历中的各自的亮点(至少每个项目找出2处)
  • 务必保证相应产品能够演示,哪怕下架产品也可以mock数据来演示
  • 多回忆自己在这个项目中所做的内容及细节,务必实事求是,须知人品也是考察的重点
  • 不要写自己完全不熟的项目,这是在坑自己,宁可不写

关于技术基础方面:

  • 毫无疑问,初级、中级、高级、资深这几个级别所应当掌握的技术基础的深度和广度是完全不同的,你想应聘相应级别的岗位就必须掌握对应的技术知识
  • 算法也是常考点,但一般的中小公司基本仅考察常见算法,而如字节跳动则对算法要求极高。你应当明确你目标公司的面试要求,针对性的学习算法知识

面试表现方面:

  • 不会就说不会,与其想很久也想不出正确答案(或只能猜测),还不如爽快的告知。长时间的冥思苦想只会让面试官看到你的窘迫,更会打击你的自信心。
  • 表述时要逻辑清晰并语句流畅,你可以先构思一小段时间再回答。如果匆忙回答但是逻辑混乱、磕磕碰碰,这不利于面试官理解你的思路。而且逻辑清晰也往往是面试考察的要点之一。
  • 主动深入回答。面试官问及的知识点,你如果有更深的理解,最好主动深入回答。从而让面试官了解你的技术深度。
  • 要有礼貌,尽量面带笑容。须知面试官对你的第一印象有时也能产生极大的作用,因为大多数中小公司的面试官往往就是你后面一起工作的同事或直属领导,他们也会考虑你是否能够和其他同事相处融洽。
  • 切忌紧张,紧张代表了不自信,也不利于流畅的回答问题。

3 面试总结

面试也是能够以战养战的,想要做到越面越好,最高效的做法就是在每次面试后总结一次。总结其中哪里答错了、哪里回答的不够好、哪些地方是完全不应该答错的、回答问题时是否有磕磕绊绊的地方、是否问及了自己的知识盲区等等。在下一次面试前,将这些问题点全部补足,那么你下一次的面试必然会比这一次表现得更好。

第一轮-笔试

笔试卷子共两张纸,包含内容:

  • OC内存管理
  • OC数据结构
  • block相关知识
  • 调试常用指令

无swift相关内容

第二轮-技术面

自我介绍不用说肯定有

问及内容包含:

  • assign和weak的区别
  • weak的实现方式
  • autorelease的原理
  • block的类型和区别
  • 消息发送机制,方法查询方式(方法缓存查询,方法列表查询。缓存查询系统是如何优化查找效率的,方法列表是按什么算法排序的)
  • 消息转发机制
  • 响应链
  • Runloop
  • flutter的热重载原理

第三轮-部门负责人+hr面

自我介绍不用说肯定有

问及内容包含:

  • 介绍简历中各个项目的亮点
  • 你的优势
  • 你的缺点
  • 如果由你来开始一个新项目,你会怎么做
  • 微信登录的具体业务流程介绍一下
  • 账号互踢机制的实现逻辑
  • 你的职业规划
  • 离职原因,期望薪资等

忘记有木有笔试了,就说面试的吧

第一轮-技术面

面试官共两人,自我介绍不用说肯定有

问及内容都会深挖,大致包含:

  • 修饰符类型
  • 内存管理的实现
  • block的类型和区别,解决循环引用的方法,__block能否解决循环引用,为什么
  • 消息发送及转发机制,介绍下方法签名
  • KVO和KVC的实现原理
  • 响应链
  • Runloop原理,用户进行操作的事件在Runloop中是在什么时机执行的,source0、source1里面分别对应的是什么事件
  • 性能优化方案(启动优化、卡顿优化、耗电优化、包体大小优化),包体大小优化里面还会问及每种方案的原理
  • 使用layer.cornerRadius和layer.maskToBounds设置圆角一定会触发离屏渲染吗,离屏渲染是什么
  • UIViewController的详细生命周期,如果想把UIViewController的地步View替换为UITableView,该在什么时机
  • 如果你的应用在一启动就黑屏了,该怎么排查解决问题(问题出自三方库,看不到源码)
  • 如果让你设计一个基于sqlite的数据存储组件,你怎么去构思设计
  • 分类相关,同名方法的最终调用结果以及为什么、分类能够添加成员变量吗
  • 关联对象的实现原理、存储在哪
  • 多线程相关
  • load和initlize的区别,分类、原类、子类对应的调用顺序等

第二轮-部门负责人面

自我介绍不用说肯定有

其他包含:

  • 你的职业规划
  • 如何架构一个项目
  • 简历项目所涉及的技术要点

第三轮-hr面

到这面,基本也没啥大问题了,就聊聊薪资待遇啥的

第一轮-技术面

  • 图片编解码

  • AVAudio 和 AVMedia

  • KVO和KVC

  • 修饰符相关

  • Block相关(修饰符、堆区、栈区)

  • 消息发送及消息转发机制

  • 如何设计异常捕获方案(如调用方法不存在)

  • 性能优化(启动优化、卡顿优化、电量优化、包体大小优化),会问及具体的原理

  • 动画

  • 绘图

  • load和initialize方法的调用时机、应用场景,以及在category下与原类的对应调用情况

  • 如果使用Method swizzing对viewDidload进行IMP交换,那么原类和其Category的viewDidload方法的调用情况

  • 堆区和栈区分别存储的数据类型

  • UIView和CALayer的关系

  • 什么是离屏渲染

  • flutter的了解

  • flutter的异步方式

  • 协程是什么

该岗位需求较为特殊,但jd并未特殊注明,需具备网络加速器相关知识

第一轮-技术面

  • 多线程类型,及各自的特点、应用场景

  • 修饰符

  • 为什么UI操作必须在主线程执行

  • 聊聊你最熟悉的三方库(看过源码的)

  • Block相关

  • Runloop的是什么,Runloop的具体循环流程

  • Runloop之间有什么关联

  • 网络的7层模型

  • 网络加速器是在那一层实现的

  • Categroy能添加成员变量吗?

  • 成员变量 和 关联对象添加的变量存储位置有什么区别

第一轮-笔试

  • 分类和拓展的区别

  • 多线程通信的方式

  • 对象的内存结构

  • 交换数组中的两个值,方法内部代码行数要求3行以内

  • 关于GCD多线程同步、异步和串行并发队列,共存情况下的执行顺序

最后一题是Swift题,具体忘记喽,struct相关

第二轮-技术面

共面了两次,识货面了后由于对swift不熟,推到了心心再面了一次

tips:识货对swift技能较为重视,心心对内存管理及数据结构问的很多

第三轮-部门负责人面

回归识货继续面,具体问的忘得差不多了,但基本都是架构问题,如:

  • MVP和MVVM的区别
  • 你的项目的架构设计思路

第一轮-电面

  • App启动流程,编译过程
  • JS和OC交互,状态同步如何实现等
  • 描述h5页面加载的过程
  • 模块化方式Cocoapods
  • Flutter的生命周期
  • KVO的原理,苹果为什么设计KVO
  • 如何自己实现KVO(不是添加willDidChangeValueForKey这种)
  • 说一下消息转发,苹果为什么要设计消息转发
  • 容灾方式
  • 如何通过技术推动业务
  • 说说多线程
  • 如何实现线程同步
  • 性能优化(说道某个项目时提及)
  • 说一下快速排序

深感遗憾,个人感觉是非常适合该岗位的,且完全具备岗位所在项目的类似项目经验。个人又是二次元用户,对米哈游十分喜欢。但由于面试经验的不足,导致本次面试失败,无缘加入(诶,错过了就再没机会了)。因此必须痛定思痛,深刻反思。

1 本次面试描述

面试结果:被判定为与岗位不符,但并没有问及岗位相关的技术问题

直接失败原因:

  • 面试话题被转移至非目标岗位相关内容并直至面试结束,本人没有及时醒悟并扭转话题

  • 问及两年前的项目时,没有迅速的回忆起来,准备不够充分

  • 面试官不善于寻找话题(问得少),本人没有主动深入介绍,导致面试长度过短,没能展现自己的优势

  • 准备依然不够充分,由于之前开发的产品已经下架并无法使用,我没有安装到本机,导致无法演示,备受质疑

事后反思:

  • 我主动提出最近开发的app无法演示,但并没有把握住重点(虽然没法演示,但我掌握所有的开发细节,这不影响面试官对该段工作经历的技术询问),而这时面试官直接pass掉这段经历时就应该强调自己详细了解技术实现细节,并可以接受询问
  • 面试官将话题偏移至与目标岗位无关的内容时,如果一直没有偏转回来(个人认为不应当超过5分钟),要主动提出疑问,这与目标岗位关系不大
  • 对于简历上的项目,没有全部复盘,并回忆细节及重点
  • 没有把握住最后一次扭转的机会,即面试官询问:你有什么想问的吗?(此时可以问,我来应聘的是XXX岗位,不知道为什么你并没有问到这部分相关的内容呢?)
  • 因为我离职后有一段较长时间的空窗期,虽然空窗期同样在进行开发,但开发的产品同样并未上线。面试官问及该app的情况时,并想看看时,不应当以产品未上线没有数据而拒绝。应当主动给他看演示(哪怕线上环境没有数据,至少证明你所言非虚,经历是真实的)
  • 同样的问题,上家公司的产品下架并停止服务,但依然可以安装演示(哪怕数据都是空白),证明经历的真实性。并且虽然产品下架,但百度依然能够搜到该产品的介绍(包括截图,虽然截图的版本不是最新),这些没有想到拿来演示

2 面试教训总结

2.1 要把控方向

  • 面试的大方向应当由自己把控,而不是完全由面试官把控;

  • 当你的工作经历较为丰富的时候,应当自主的把控面试的重点引导至投递岗位相关的内容。特别是出现话题过度偏移时,要及时扭转;

2.2 学会虚化弱势点,强调优势点

弱势点如:因为外部不可控原因(主要是前公司把app下架了,包括后端服务也停了)导致最近开发的app无法演示

优势点如:技术细节十分清楚,可以清楚的答出

此时应当强调优势点而对弱势点一句带过,如:虽然我最近的app没办法演示,但我可以描述app的功能,并主动介绍实现细节与难点

2.3 要勇于展示成果,哪怕不完美

不敢展示成果,那么理所当然会被怀疑,因此你可以先描述困难后再展示

3 面试准备总结

3.1 技术基础与算法

这是面试的基础,没有不问的,越深入越好

3.2 简历上的项目复盘

面试都是基于你过往的项目经历,你必须对你简历上的项目熟悉,并知道其中遇到的难点、值得一提的技术点

3.3 演示准备

有的面试官更喜欢看到实际的产品,因为凭空想象很难想出你的产品的样子和细节。因此能够真机演示那么必然能够加分

个人认为,如果真有困难无法演示,也可以截图展示

3.4 针对岗位的准备

了解岗位需求及技能要求,进行针对性复习