3、写不出算法?不用慌!面试不是考试!

hello大家好,我是达同学,一个在大厂工作三年的Java后端工程师。

这是我们6篇文章的第三篇:算法篇。

其实算法的资料网上也是非常多的,这一章我重点想分享的不是怎么复习算法,而是在算法面试中如何应对写不出算法的情况。

哈哈,听起来是不是有点糟糕?可能有同学已经开始想象场景有多尴尬了,脸上发烫、脚趾扣地、思路凌乱,说话磕巴。(别为什么我这么了解,因为我曾经就是这样的!

打住!不要再尴尬了,这样的想法是完全错误的!我们在面试中应该有的心态是:无论是八股文还是算法题还是其他,答不出来是很正常的!我们在面试里要做的是尽量展示自己的优点,为自己寻求面试通过的机会。

所以首先从心态上纠正自己的学生思维,面试并不是考试!通过了也只不过是找个地方打工罢了。

关于面试心态和技巧,我会在后续(应该是最后一篇)写一篇文章专门来说如何克服,这里就不再多展开了!(周五偷个懒

好了,有点偏题,我们回到算法面试上来,首先我们要想明白,面试官通过算法到底想考察什么?答案是:

  1. 第一,考察代码水平,这里指的是代码规范性和逻辑性,比如
  2. 变量、函数的命名是否随意,有没有考虑函数边界、有没有抽函数的意识等
  3. 常见的数据结构是不是了解,会不会用。
  4. 遇到问题有没有充分思考,写代码有没有逻辑性。千万不要一看到题就写,写到一半发现思路是错的,这是大忌!最好是先说一下自己的思路再写,这样哪怕写错了,也说明你是经过了思考的。
  5. 遇到困难会不会想办法解决。你可以不会写,但是可以从一些不同的角度说说你认为的可能的解法,这说明你不是遇到困难就退缩的人。
  6. 沟通能力,这里就很灵活了,如果你沟通能力很强,可以找机会多和面试官讨论,展示你的交流表达能力。
  7. 第二,才是能不能解出来这道题。

根据我过往面试的经验,很多时候写不出算法也能通过面试,这个过程中我会不断的和面试官聊我的思路和困惑,并且尝试根据我的想法来写代码,这本身就展示了我处理问题的方式和能力。

所以,在算法面试前,不要抱着"我一定要写出来!"的预期,而是"我写出来就血赚!"。尽量避免预期太高、落差太大导致紧张,反而影响口头表达和其他方面的发挥。题目写不出来就努力把上面说的第一点做到,同时多和面试官交流,说说你对这道题的分析和思路,把能够表达的都表达出来就好啦。

最后,分享一个我觉得不错的算法博主:labuladong,他整理的算法非常全,不过还是和前面那篇如何复习八股文(https://www.nowcoder.com/discuss/557350871567216640)里说的一样,不要关注边角料知识聚焦最高频的算法!

labuladong的博客大家可以自行百度,内容比较多,面试主要看下面四章就够了:

  1. 数组
  2. 链表
  3. 二叉树
  4. 动态规划(看第一、二、三小节就好)

我自己基于他的博客,也整理了相关的leetcode题目和解析,如果需要可以关注我后,后台私信问我~

(不关注我,私信也会发的,关注一个呗!)

楼主本硕北邮计算机,在BAT某大厂工作三年。后续会持续和大家分享Java技术和职场经验,欢迎关注我,有问题随时找我交流!

喜欢的同学欢迎关注我的专栏,11月底前会更新完:

6篇短文速通Java面试》https://www.nowcoder.com/creation/manager/columnDetail/j3Kwpj

#java##23届找工作求助阵地##24届软开秋招面试经验大赏##面试#
6篇短文速通Java面试 文章被收录于专栏

hello大家好,我是达同学,一个在大厂工作三年的Java后端工程师。结合我过往的面试经验以及作为面试官的经历,我发现Java技术体系的博客有很多,但却少有博主和大家分享如何系统性的准备面试大厂Java岗位。 这个专栏用我会用6篇短文讲完Java面试的大纲,相信看完文章的同学一定会对Java如何复习了然于胸,祝每位同学都能马到成功,拿下心仪offer! Java面试辅导加vx:hello_da1

全部评论
更新好累,本来说今天更新两篇,感觉来不及了,明天我补上!
点赞 回复 分享
发布于 2023-11-24 21:55 浙江
催一下场景题 学长
点赞 回复 分享
发布于 2023-11-25 10:24 香港

相关推荐

会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
评论
7
9
分享

创作者周榜

更多
牛客网
牛客企业服务