这两周在路上花了不少时间,事情呢做了一些,但都不怎么顺。
面试&笔试
回长沙考期中,顺便去腾讯面试。当天长沙下雨,立珊专线还堵了一下,迟了半小时到。面试官大致问了以下内容:
- KVO / KVC,问了下概念。
- 线程相关,问我平时用什么。我说 NSOperation 和 GCD,然后问我用过 NSThread 没,我说没怎么用过。
- 问 Atomic / Noatomic 的含义
- 让我写一个线程安全的 Singleton,我用 Dispatch_once 写的,不过貌似写的不全
- 让我乱序向一个 NSMutableArray 插入 0 - 99 这一百个数字。我问能不能用 NSSortDescriptor 然后在 Block 里面随机返回真假,面试官有些疑惑的样子,一直问我这个排序到底是怎么拍的,复杂度多少,我说这个就是苹果的内部实现,我也不敢打包票。
- 问项目经验,特别问了 RavenTech 的 EVA VR。听完项目后问我为什么要给 Unity 写 Native WebBroswer to Texutre2D 的 Plugin,我说 Unity 只 pack 了一个 Mono Runtime,至于打包 WebKit 这种事情不是 Unity 关心的,只能自己写。估计面试官以为 Unity 应该有 Universal 的那种浏览器 UI,所以问我这个问题。
- 问我挂过科没,回答上学期刚挂过。问我为什么有这么多项目经验,我说翘课,除了考试以外都在写项目。面试官说那是挺胆大的,我也不好揣摩意思回答,只能耸耸肩。
- 最后问我有什么想问的没,我很实诚地回答没有。后来听同学说应该回答有问题的以显示自己很有诚意。
面完当天晚上查,显示没有过。
至于阿里的笔试,Objective-C 的运行环境是用 GNUStep 搭建的,编译也很严格,有 Warning 就不能过。我在本地 Xcode 写好的代码在在线评测上不能用,因为总会有各种类型转换的警告,比如 id 到 NSNumber,最后索性放弃了。
至于感受,校招不关心你有多少 star,自己最好还是多看看算法和数据结构,还有就是面试这种东西,还是要准备下的,不是说仗着自己忙就不去看,很多东西就是在公司用不到忘掉,但临面试看下就又记得的。
Board For GitHub
这是一个去年十月份写的开源小项目,后来有意向把这个软件上架到 Mac App Store,就又加了些功能,例如 NSTouchBar,NSUserNotifcation。结果苹果的审核团队连续五次拒绝了上架请求,原因还是和写 ArtWall 的时候一样:用户体验和用 Safari 类似。不同的是 ArtWall 是货真价实的 Native Application,而 Board For GitHub 是真的 WebView 软件,就更难过审了。
最后决定在 MAS 外分发。原本想用 DevMate 做试用功能集成 + Stripe 付款,后来发现 Paddle 直接把这两个功能都合并在了一个 SDK 里,有 Cocoa 和 JS 的版本,就很方便。但 Paddle 不包括自动升级功能,于是又用了 HockeyApp 做了自动升级。目前的发布版本可见 https://justinfincher.github.io/BoardForGitHub-Landing/ 。
日常
和喵喵一起看了几部电影。周末窝在家里打 Gang Beasts 和 Broforce。学校管的越来越严了,我不在长沙后据说又加了脸部打卡什么的,但我已经没有精力去对付这些事情了。
回学校后发现其实还是暗流涌动,学院里同学平时都是一副不关心工作的样子,暗地里都在忙着找这个那个实习。
差不多两三年来我第一次对自己走的这个方向是不是对的有了怀疑。面试没过让我有点疑惑,在学校呆的一周发现学校有事情要对付,公司因为我回长沙也少发了些工资,和妹子有时候会有误解,让我在四月底有一种什么都不好了的感觉。
银河护卫队 2 的 Soundtrack 挺好听。