📜  One97 面试经历 |第 3 组(后端Node js 开发人员)(1)

📅  最后修改于: 2023-12-03 15:18:06.464000             🧑  作者: Mango

One97 面试经历 |第 3 组(后端Node js 开发人员)

本篇文章将分享 One97 公司面试经历,是第 3 组面试,岗位为后端 Node.js 开发人员。下面将详细描述整个面试流程,包括准备过程和面试问题。

面试前准备

在面试前,我先了解了 One97 公司的业务和技术栈,并针对职位的要求进行了复习和准备,包括以下知识点:

  • Node.js 基础知识:事件循环、异步编程、模块系统等
  • Web 开发:HTTP 协议、Cookie 和 Session、RESTful API 设计等
  • 数据库:MySQL、NoSQL 数据库的使用和设计
  • 计算机网络:TCP/IP 协议、网络安全等
  • 增删改查操作:业务需求中常见的增删改查操作实现
  • 面向对象编程:封装、继承、多态等
  • 算法与数据结构:链表、二叉树、排序算法等
面试流程

整个面试分为两轮,分别对应技术面和 HR 面。

技术面

面试官介绍

面试官先介绍了 One97 公司的业务和技术栈,然后根据我的简历和经验开始提问。

技术问题

  1. node.js 中的事件循环是什么?它有什么作用?

    • 回答:事件循环是 Node.js 的核心机制之一,在 Node.js 运行时中,Javascript 代码运行在一个单线程的事件循环中。它通过将事件推送到事件队列中,再逐个执行来实现异步非阻塞的效果。
  2. Node.js 异步编程的方式有哪些?请以 setTimeout 和 Promise 为例说明其原理。

    • 回答:异步编程的方式有 callback、Promise、async/await 等。以 setTimeout 为例,其原理是通过将回调函数添加到事件队列中,等待事件循环从事件队列中取出该回调函数执行。以 Promise 为例,其通过返回一个 Promise 对象,当异步操作完成时,Promise 对象状态会由 pending 变为 resolve 或 reject,在 then 或 catch 方法中可以获取到异步操作的结果。
  3. 如何设计一个满足 RESTful 风格的 API 接口?举例说明。

    • 回答:RESTful API 风格是一种统一的 API 设计风格,主要包括 API 路径设计、HTTP 请求方法、HTTP 状态码等。比如举例可以是一个电商网站的订单页,其中各个 API 的设计可能是:
      • 获取指定用户的订单列表: GET /api/users/:userId/orders
      • 创建新订单: POST /api/orders
      • 删除订单: DELETE /api/orders/:orderId
  4. 请给出一条 MySQL 语句,实现将某个表中字段加一操作的功能。

    • 回答:可以使用如下 SQL 语句:
      UPDATE table SET field=field+1 WHERE condition
      
  5. 一道算法题:如何设计一个算法,找出一个链表中的倒数第 k 个结点?请实现该算法。

    • 回答和代码实现:
    // 解题思路:使用快慢指针,让快指针先走 k 步,然后两个指针一起走,当快指针到达链表尾部时,慢指针指向的即为结果
    function findKthLastNode(head, k) {
        if (head === null || k <= 0) {
            return null;
        }
        let fast = head;
        let slow = head;
        for (let i = 1; i <= k; i++) {
            if (fast === null) {
                return null;
            }
            fast = fast.next;
        }
        while (fast !== null) {
            fast = fast.next;
            slow = slow.next;
        }
        return slow;
    }
    

总结反馈

面试官根据我的答案和表现进行了总结和反馈,提出了一些可以改进的地方,并对我的技术水平给予了肯定。

HR 面

HR 面主要是考察性格和沟通能力,包括个人的职业规划和公司文化的了解等。

面试问题

  1. 介绍一下自己的优点和缺点。
  2. 为什么想要加入 One97 公司?
  3. 请谈谈您个人的职业规划。
  4. 您是否了解 One97 公司的文化,有什么想法?

总结反馈

面试官根据我的回答和表现进行了总结和反馈,对我的职业规划给予了一些建议,并询问了我的可用时间和期望薪资等方面的信息。

总结

在整个面试过程中,我对自己的知识水平进行了全面的复习和准备,并在技术面中充分展示了自己的技术能力,充分证明了自己的背景和能力与职位的匹配度。同时,在 HR 面中,我思维开放、做事认真负责且能与人沟通协调的优秀品质也逐渐显露出来。最终,我通过了 One97 公司的面试,并加入了这个优秀的团队里。