没想到我在掘金发布的第一篇博客是一篇年度总结。有过好多次写博客的想法,不过还是拖到了年底才开始动工。
今年一年,大三升大四,还有半个学期就不算大学生了。因为在找工作上遇到了挫折,所以今年的年度总结要围绕求职路讲起。
大学期间一路懵懵懂懂混完了三年,意识到即将要面临秋招了,于是扒了一下别人的面经,对照问题点制定了一个宏大的暑期计划,还包括了一个自认为具有亮点的项目:一个基于安卓的pids,也就是部分公交车上配备的能显示线路图的信息显示系统。当时觉得这个项目之所以有亮点是因为计划要将很多城市不同风格的pids都加载到这个app中,其中涉及到了view的自定义和大量动画效果的使用,数据来源则由百度地图提供。
不过嘛,自己的计划执行能力和意志力都不太高,导致整个计划作废,暑假几乎都在玩,也导致了项目大幅精简,拖到了9月中旬才完成了广州公交的pids效果——项目完成了我才敢写简历求职。自己做事畏手畏脚地,投递的企业不太多,国庆后终于陆陆续续收到了面试邀请
第一家企业是一个中厂,面试前我确实有准备,但准备的方式是看笔记。面试的第一个问题是“抽象类和接口的区别”,当时心里就乱了,脑袋一片空白,想着的只有一句话“好多区别”,但是觉得整个问题无从下手,于是跟面试官说“对比起,我有点紧张”。下一个问题,嗯,“为什么要面向接口编程”,完了,我记得在Head First设计模式的书里看到过这个概念,但我什么都没想起来。
整场面试的表现都十分糟糕,因为后面有太多问题没能回答,比如“内存抖动是什么”,“handler为什么造成内存泄漏”,“对象的清理过程”。过了20分钟就挂视频了,一周后发现黄了。最奇怪的是当时面试完之后自己的自我感觉居然是良好的。
两天后就是一家小厂的面试了,面试问题都十分简单,基本没有深入问,比如两家企业都问到了哈希表,但是前者问的是键值对的插入原理,后者则是“如果要统计一句话中的字母数量,那么要用什么数据结构”这种问题。面试前期一直沾沾自喜,直到后来,面试官问了一句:有用过什么框架吗?OKHTTP?JETPACK?协程?太遗憾了,一个都没有。很快我跟面试官之间就没有什么话题能聊了,同样是二十多分钟就结束了聊天,一个月后收到了感谢信。
反思第一次失败,嗯,我面试前居然连八股文都没怎么看;其次是对所学过的知识没有进行对比、归纳。反思第二次失败,面试过程中我没有提到我自认为的亮点在于我对view的自定义的能力;其次是协程,这个字在笔试期间就作为附加题出现了,暗示着这是个拿分点,我没有get到;再者,我没有想到企业需求是什么样的,还在我自认为的亮点上花了时间。
万念俱灰之际,第一家中厂开始招实习了,于是我又投递了,草草地把不会的问题弄懂了,草草地看了OKHTTP和JETPACK的使用,笔试过了之后在11月开始了面试。
这次面试开始,自我介绍我就提到了自己比较熟悉view和动画,然后面试官听了之后赶紧问了我相关的问题,比如哪个方法触发的view绘制流程,view动画的缺点。不过这次面试还是回答不上或者回答错了一些小问题,比如我没怎么认真学的泛型(因为通配符没有在项目中遇到过)、服务的生命周期(面试后过了很久才察觉到自己说错了),还有http。这次面试时间持续了40分钟,看上去稳了的样子,不过两天后还是发现黄了。
也正因为这次面试失败,所以才开始重新审视自己的学习态度。自己接触安卓开发已经两年了,但是头一年更多地将重点放在页面怎么布置比较好看,经常围绕margin和padding数值的大小上下调动;其后一年意识到了问题,于是又一直试着通过看书的方式增加自己的竞争力,但是却很少将时间花在对知识的应用上。
第二个问题是,自己做开发的过程中总是畏手畏脚,不愿尝试未曾接触过的框架,也缺乏对框架带来效应的了解。自己觉得框架的使用都只需要看文档就知道怎么用了,所以不肯应用框架。比如viewmodel,如果不是头两次面试吃了灰,根本就不会去了解如何使用它。
想到了某厂的招聘要求上写的是“热爱技术”,所以,我把我第三次面试失败的原因总结为:我没有热爱技术。编程为我带来过信心,但是在大部分时间,我的大部分时间还是贡献给了原神,还有很多新闻、短视频。我只是自以为热爱编程而已。
我觉得2022年过得还好,是因为三次面试失败让我觉得我的大学生活很失败,今年只是分摊了1/3得失败感。面试失败之后很不开心,所以在课设中设想了很多自己没有接触过的技术点并写到了开题报告中,我希望我能走出自我满足自我舒适的圈子,更多地了解经常听到的框架、技术方向,包括前后端,而不是局限于安卓开发。原神还是戒了吧,所有虚拟世界游戏都拜拜了,毕竟主人翁的现实世界遇到了更大的危机了。
希望2023年从头再来。