前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你有提桶跑路的勇气吗?

你有提桶跑路的勇气吗?

作者头像
故里
发布2021-10-08 14:34:10
6150
发布2021-10-08 14:34:10
举报
文章被收录于专栏:故里学Java

又是一天夜深人静,老故里照常掏出电脑,给自己充一下电,刚好就看到了一个关于面试的课程,因为动了提桶的心思就看一下,感觉很有用,就结合自己的想法记录下来。

(图片来源:极客时间 每日一课《如何全面、高效地准备技术面试》)

接下来,分三部分:面试前、面试中、面试后。

面试前

1、编程能力

编程能力是最重要的,对于开发人员来说,这是核心竞争力,也是面试官最看重的部分之一。如何更快速的提高自己的编程能力?

每个人有各自的方式,比如:刷算法题,报训练营、自己看源码等等。先说说刷算法题,很多人喜欢刷力扣,保持着不错的刷题数量,如果站在更高的层面上思考,这个题想考什么知识点?我对这些知识点的掌握程度?这个知识点还可以怎么来考?相信在坚持刷题一段时间之后效果是很显著的。

专栏中作者自己的刷题经验,我们也可以借鉴,当没有头绪的时候,可以尝试二叉树相关的题目,二叉树也是面试中非常高频的考点,而二叉树题目中通常涉及递归和遍历,这些也是后面解决更复杂问题的基础。

举例:力扣226题“翻转二叉树”:

二叉树问题往往是通过递归方法解决的,而递归的要点就在于不需要关注整体完成了什么任务,只需要把任务细化为每次递归的子任务,剩下的交给递归就可以了。对于这个题来说,我们只要把二叉树每个节点的左右节点进行交换,自上而下完成这个子任务,整个二叉树就完成了翻转。可以先写出子任务:

代码语言:javascript
复制
def invertTree(root: TreeNode) -> TreeNode:
    # 将二叉树的左右子节点进行交换
    tmp_node = root.left
    root.left = root.right
    root.right = tmp_node
    return root

根据子任务代码可以看出,针对输入的一个根节点,我们已经可以把它的左右节点进行翻转,那怎么让这个任务递归进行呢?我们需要在完成当前任务的后边添加递归任务就可以:

代码语言:javascript
复制
def invertTree(root: TreeNode) -> TreeNode:
    # 将二叉树的左右子节点进行交换
    tmp_node = root.left
    root.left = root.right
    root.right = tmp_node
    # 添加递归任务
    invertTree(root.left)
    invertTree(root.right)
    return root

在添加了递归任务后,我们还容易忽略一个问题,就是整个递归任务的最简单情况是什么?根据题意应停止递归:

代码语言:javascript
复制
def invertTree(root: TreeNode) -> TreeNode:
    # 处理 basecase,遇到叶子节点停止
    if root == None:
            return None
    # 将二叉树的左右子节点进行交换
    tmp_node = root.left
    root.left = root.right
    root.right = tmp_node
    # 添加递归任务
    invertTree(root.left)
    invertTree(root.right)
    return root

在完成题目后,我们也应该对自己进行题问,明确自己是否掌握了这道题的知识点,即二叉树的遍历与递归思想的拆解,并且是否可以举一反三,如果觉得自己掌握的不够可以刷一些相似的题目。

以上这些是看到的别人的经验,我自己一般喜欢玩自己平时工作中的代码,闲的时候看看自己写的代码,很多时间就会有新的想法,可能当时写的时候想的比较狭隘,隔了一段时间,结合模块的整体情况重新设计,重构一下代码,这个过程也是很有趣的,也可以发现一些影响性能的点,不断优化,让自己的程序更加顺滑。自己写的代码自己是最了解的,结合平时自己学的系统设计、性能优化等方面的知识,现学现卖,这个实践的过程是我认为效率最高的。

2、专业领域知识

编程能力只是面试过程中的一部分,专业领域的知识也是非常重要的,比如你特别熟悉电商业务、供应链业务、全渠道业务等等,通常也是因人而异,因岗位而异。两方面准备:

  • 准备自己当前或者之前做过的另外的专业知识,这对于找同领域岗位是非常有帮助的,很多公司都希望招一个技术ok又懂业务的伙伴,可以更好的融入团队。
  • 针对性领域知识,针对想投的岗位,进行一些特殊准备,这样扩展投递岗位的范围,也可以提高面试的成功率。
3、建立相关内容

以上的准备可能需要提前准备,那么简历很多人就会忽略其重要性,在面试前匆匆准备。面试官在跟我们面对面之前,都是只能通过简历来了解我们的过往经历,来进行题问。

在准备面试简历的时候也有很多技巧,社招简历,一些长期、规模较大的、较为重要的项目经历可以详述,一些简单的项目就可以忽略不写。对写在简历上的内容充分准备,在面试的时候侃侃而谈,适当地延申,这些都可以是加分项。

面试中

状态

面试过程中与面试官交流的过程,转不停是一个非常重要的关键点。精神状态就是我们的精神面貌,可以从说话的声音、表情、举止等方面反映出来,好的精神状态可以提高面试管与你交流的意愿,也有助于你更好的展示自己,提升面试官的印象分。思维状态就是要保持思维敏捷,快速解决面试官抛出的问题,心理状态对于面试的影响可能是比较大的,很多人在面试的时候很容易因为过度紧张手脚冰凉大脑一片空白,在面试的时候适度紧张,然后再逐渐放松,让你感到些许躁动,思维活动迅速,这就是最好的心理状态。

态度

态度主要就诚实、诚恳。搞技术的人一般都比较简单,如果在面试过程中不诚实或不诚信的情况,印象分可能就直接没有了,面试官也不愿意招这样的人。诚恳是在面试过程中,与面试官出现意见不一致,可以态度诚恳的交流交换意见,不一定要争论个高下。

沟通

面试过程中的最后一个关键点就是沟通,主要是三个原则:沟通主动、回答明确、沉着应对。面试过程中,面试官也会根据面试沟通情况综合考量你在日常工作中的沟通能力,这些也是工作中非常重要的。举例,如果在面试中突然忘记了某个点,不要突然就安静下来,可以先从相关的内容说起,有助于快速回忆,哪怕真的想不起来,也可以展示出你真的了解这一块,只是偶尔忘记了。

面试后

面试结束,在收到offer之前都不能放松,还是要复盘、总结,一方面对自己的技术查漏补缺,也可以对面试过程中发挥不好的地方进行总结,下次面试过程中多注意。

面试结束后,也可以主动和面试官确认后续情况,也不能太着急,最好是在面试结束后3-5天后确认,这样也可以体现我们对于这个机会的看重,如果有后续的面试还可以提前着手准备。

最后

“金九银十”马上金九就要过去了,还有想法的兄弟们可以抓住后边的机会,近期没有跑路的兄弟,也可以思考一下,一些平时需要准备的东西,等面试的时候再去准备就有点迟了,日常中不断提高自己,让自己在未来有更多选择。

“参考了:https://time.geekbang.org/dailylesson/detail/100056887#previewimg ”

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 故里学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试前
    • 1、编程能力
      • 2、专业领域知识
        • 3、建立相关内容
        • 面试中
          • 状态
            • 态度
              • 沟通
              • 面试后
              • 最后
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档