前言
秋招即将到了,又到了一年一度的大型“程序猿就业典礼”。
从事IT行业那么多年,我自己也经历过,也见过很多求职路上的人生百态。
当初我也是从一个不知名的“打工人”,到如今成为了鹅厂的一员…
这其中经历了太多太多,有失败有泪水,也有想过放弃…最后在我的不懈努力下,我成功了!
今天就聊一聊秋招前需要的准备。
一、在深入代码之前,大多数面试官喜欢聊聊你的背景。
他们想知道:
- 你对编码认知。你是否知道如何编写好代码?
- 个人能力/领导力。你是否经历过整个工作流程?你是否修复过并不怎么正确的东西,即使你并不需要这么去做?
- 沟通。和你交流技术问题是有用的还是痛苦的?
你应该至少说明以下中的一个:
- 你曾解决的一个有趣的技术问题
- 你曾克服的一个人际冲突
- 显示领导力或个人能力的例子
- 你曾在以往项目中做出的贡献
- 最喜欢的语言的一些琐事,对这种语言你做了什么,以及你不喜欢它哪里
- 有关公司产品/业务的问题
- 关于该公司的工程策略(测试,Scrum,等等)
热爱技术。表达你对你所做的一切感到骄傲,你对自己的选择充满自信,你对语言和工作流有着自己的看法。
二、涉及到编码问题的时候,沟通是关键。
一个在工作时需要帮助却能和人正确沟通的求职者比那些能轻松解决问题的求职者甚至更好。
了解这是哪种问题。有两种类型的问题:
编码。面试官希望你能针对问题写出简洁高效的代码。 闲聊。面试官希望能和你聊一聊。
话题通常是: (1)高水平的系统设计(“如何克隆Twitter?”) (2)琐事(“Java中的hoisting是什么意思?”)。 有时候这些琐事中也会引入“实际”问题,例如,“如何迅速排序整数列?好的,如果不是整数,是其他类型的呢…… ”。
如果你开始编写代码,并且面试官并不想多说废话,只想尽快过渡到“实际”问题,那么如果你罗哩叭嗦太多的话,她可能会觉得厌烦。不妨直接问,“是不是为这个问题写代码?”
三、我们该给面试官什么样的映像
让人感觉你有团队精神。面试官想知道和你一起工作是什么感觉,会有什么问题,所以要让他们看到你的团队合作性。使用“我们”来代替“我”,例如,“如果那个时候我们做广度优先搜索的话,就能及时/准时得到解决方案。”如果让你选择在纸上还是在白板上编码的话,选白板。这样,你就可以接近面试官,直接面对他提出的问题(而不是和她在桌子两边遥遥相望)。
把自己的想法大声说出来。不是开玩笑,比如说:“我不知道这样做是否有效——但请让我试一试。”如果你不知道怎么办,不知道这个问题该如何解决,那么就说一说你现在的想法。说一说你认为怎么做可能会有效。说一说你认为哪些会有用,以及为什么没用的原因。这同样适用于琐碎的闲聊问题。当面试官要求你解释Java闭包的时候,“这与范围有关,不妨把它放到一个函数中”可能会让你得到90%的分数。
不知为不知。如果正在谈论的话题(例如,具体的语言事务,具体的琐事,运行时分析)的确是你不曾涉猎的内容,那么不要不懂装懂。相反,你可以直接说:“我不知道,但我猜$thing,因为……”,因为后面可以通过分析排除其他选项,还可以拿其他语言或问题做例子。
说话不要不经大脑。不要自信地将答案脱口而出。如果是正确的,那么你还是需要时间来考虑如何解释,如果是错的,那会显得你冲动鲁莽。你不是在和人比速度,而且你这么做更有可能因为打断她的话或者妄下结论而惹恼她。
讲讲自己的思路。讲一讲你知道什么。讲一讲你认为什么可能工作以及为什么无效的原因。你可能突然会意识到它实际上是可以工作的,或修改版本是有效的。也有可能,你会得到提示。
等待提示。不要用期待的眼光盯着面试官,但可以有短暂的“思考”时间——面试官或许已经决定给你个提示也说不定呢,等待她的提示以免打断她。
考虑空间和运行时的界限。如果你不知道你是否可以优化解决方案,那么就说出来。
调用帮助函数,继续前进。如果你不能或多或少地马上想出如何实现算法,那就跳过它。写一个命名合理的调用函数,例如:“this will do X”,然后继续下一步骤。如果帮助函数非常微不足道,你甚至可以将它忽略。
不要担心语法。不妨一笑而过。如果你非要考虑语法,那就还原到英语。只要向面试官说明稍后会回来整理即可。
预备足够的空间。你可能后面会想要在代码行之间添加代码或笔记。从白板的顶部开始写,并在每一行之间留一条空白。
最后写一个重头检查的标志。不要担心你写的for循环是否应该有“<”或“<=”。在代码的最后画个勾选提醒自己最后再检查一遍。先按自己的思路走。
使用描述性的变量名。想名字需要时间,但可以防止你忘记自己写某段代码的目的。使用names_to_phone_nums_map而不是nums。在名称中说明类型。返回布尔值的函数应该以“is_ *”,保存列表的Vars应该以“s”结尾。标准化很有意义。
总结
换工作很多时候是候选人对于自己职业生涯的规划后的结果,毕竟每个人对于工作都有自己的渴望。有人想要钱多的工作,有些迫切希望能够多学点东西。有人就更在意工作到底是否离家近!反正,每个人都有自己的诉求。但是,这些诉求的背后,也需要思考自己职业生涯发展的健康与否。
首先,跳槽不要太频繁,太频繁跳槽会形成习惯,以至于未来会给人感觉很不稳健,难堪大用。毕竟,什么事情刚想交给你,你就跑了,对于任何公司而言,都是难以忍受的。其次,互联网跳槽一定要选对公司和行业,不同的细分行业未来的发展空间不一样,而不同的 公司能够给你发展的空间也不一样。没有好的行业和公司,只有适合与不适合,有人找工作就盯着BAT,有人则发现BAT完全不适合自己。大公司有大公司的弊端,小公司也有小公司的难堪,反正找到合适的公司和领域,才是跳槽的关键。
看看自己的工作年限,想想自己的技术短板,看看到底你适合去做什么,然后定好一些目标公司和岗位,尝试的投递简历,或许才是真正的跳槽首选!新的一年,新的开始,不如先从制定一个小目标开始!
最后的最后分享一份2023年Android中高级最全面试真题答案解析希望对秋招的朋友有所帮助!
由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方卡片免费获取~
PS:(文末还有使用ChatGPT机器人小福利哦!!大家不要错过)
目录
第一章 Java方面
●Java基础部分
●Java集合
●Java多线程
●Java虚拟机
第二章 Android方面
●Android四大组件相关
●Android异步任务和消息机制
●Android UI绘制相关
●Android性能调优相关
●Android中的IPC
●Android系统SDK相关
●第三方框架分析
●综合技术
●数据结构方面
●设计模式
●计算机网络方面
●Kotlin方面
第三章 音视频开发高频面试题
●为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
●怎么做到直播秒开优化?
●直方图在图像处理里面最重要的作用是什么?
●数字图像滤波有哪些方法?
●图像可以提取的特征有哪些?
●衡量图像重建好坏的标准有哪些?怎样计算?
第四章 Flutter高频面试题
●Dart部分
●Flutter部分
第五章 算法高频面试题
●如何高效寻找素数
●如何运用二分查找算法
●如何高效解决雨水问题
●如何去除有序数组的重复元素
●如何高效进行模幂运算
●如何寻找最长回文子串
第六章 Andrio Framework方面
●系统启动流程面试题解析
●Binder面试题解析
●Handler面试题解析
●AMS面试题解析
第七章 企业常见174道面试题
●SD卡
●Android的数据存储方式
●Broadcast Receiver
●sp频繁操作会有什么后果?sp能存多少数据?
●dvm与jvm的区别
●ART
●Activity的生命周期
●Application能不能启动Activity
●…
搭建了一个基于chatGPT的微信群聊机器人,24小时为大家解答疑难技术问题, 需要的可以扫描二维码进群。