标签: 面试

  • 应用创意:AI 求职助手

    应用创意:AI 求职助手

    好久没发应用创意。我之前想做一个 AI 简历工具,琢磨来琢磨去,我觉得只关注简历是不对的,太狭隘。简历本身价值很有限,作用也不太大,用户关注简历的时间很短,做简历很难做成一个长期项目,用户大概率会用完就走,也不太容易会付费。

    所以必须升级成 AI 求职助手,才有做的必要。这里把我的想法放出来跟大家交流一下。

    首先,我们来想一想,在求职中,目前通行的各环节作用是什么?我的观点是:

    1. 简历,证明我适合这个岗位。
    2. 面试,证明我的简历所言非虚。
    3. 上家公司的薪资,证明我值得这份钱。

    具体的分析可以参见 从招聘方的角度理解求职,本文不再详叙。

    有些同学不会写简历,我认为一方面因为不理解简历的作用,另一方面,现阶段各种写简历的工具过分关注于简历本身,而缺少对于写好简历的教育。

    另外,写好简历只是第一步,后面还有面试和入职,现在也缺少相应的工具来帮助用户。其实“刷题”这个需求已经被满足得很好了,但是“模拟面试”的工具,感觉还不太够。

    再及,因为我自己是远程工作,所以我比较关注这个领域。我发现很多自由职业者、独立开发者,其实也有做简历的需要。未来可能会有很多开发者不仅仅面向一份全职全时工作,而是同时在多个领域多个方向做开发,那么同时维护多份简历也很常见。

    所以我想创建这样一款工具:

    1. 不要求用户一次性完成一份简历,而是鼓励用户不断添加自己的工作履历和项目经验。
    2. 根据一些既定规则,判断一段工作履历和项目经验的描述是否合格、有何改进空间,提升每段经历的表达质量。
    3. 当我决定投递简历的时候,AI 求职助手会根据招聘目标、JD,帮我自动生成一份高质量的简历。
    4. 如果我的经历经验跟目标岗位要求不符,它会提醒我,还会告诉我应该补足哪些的知识。
    5. 它还可以针对目标岗位,给出模拟面试题,我做完面试题之后,它会给我打分。
    6. 面试之后,我们可以反馈面试结果,让 AI 求职助手帮我们判断面试表现,复盘整体表现,提升下次面试的表现。
    7. 它还可以主动出击,去全网搜集适合我的 JD,主动帮我们生成、投递简历,帮我们准备面试,帮我们复盘,等等。

    短期内这样的面试助手只会针对 Web 前端、全栈这样我最熟悉的岗位,未来可以的话,再慢慢扩展到更多的岗位(需要其它岗位上经验丰富的同学来充当内容编辑)。

    我希望这样的产品是订阅制的,按月计费。考虑到可能需要使用 GPT-4,我觉得定价太低也不行,估计得在 100~200 这个区间吧。不知道各位读者有什么意见、建议,欢迎在评论里告诉我。

    希望大家都能找到满意的工作。

  • 【视频】肉山的模拟面试系列(三):在校生杨秋实同学

    【视频】肉山的模拟面试系列(三):在校生杨秋实同学

    模拟面试系列继续,进入第三周,这次请到的是杨秋实(化名)同学。(这周参加一场 Hackathon,基本上一周都在忙,所以忘记上周的视频还没写到博客里,下周补吧。)

    他还是在校学生,但是很早就开始实践,加入校内师兄师姐成立的一个公司,做前端开发。我觉得他在学生里也算各种翘楚,对他也比较是期待。不过仔细看,他的简历槽点略多。

    想知道他的具体表现么?那就看视频吧。

    视频内容:

    • 这次我结合上次视频的复盘,先分享了应对紧张状态的一些知识。
    • 然后点评了秋实同学的简历。他的简历存在一些细节问题,大家共勉。
    • 接下来面试前端基础。
    • 然后是结对编程。
    • 最后是点评。

    有任何问题、意见、建议,欢迎留言弹幕私信与我交流。想参加模拟面试的同学,也请跟我联系。目前下周还是空缺,欢迎投稿。

  • 【视频】肉山的模拟面试系列:初中级前端,欢迎奥利奥同学

    【视频】肉山的模拟面试系列:初中级前端,欢迎奥利奥同学

    某天群里,奥利奥同学突然提问:想参加模拟面试,不知道能不能搞。我一想,可以呀。我工作 16+ 年,面试过很多新人,也带过不少新人;给自己的公司招过人,也帮朋友招过人;有面试过新人,也跟资深老鸟聊过。感觉有蛮多能分享的内容。从客观需求来说:近期有朋友委托我帮忙做前端面试;我很久以前分享过的前端面试题也该更新一波了。

    于是就答应下来,准备每周做一期。开门第一单,就邀请奥利奥同学来做吧。于是就有了下面的视频:

    也欢迎大家移步 B 站帮我三连分享:肉山的模拟面试系列:初中级前端,欢迎奥利奥同学

    这位奥利奥同学,他毕业后就加入一家偏传统的公司,待了一年半。现在感觉有点被天花板挤压,想试试看新的挑战。于是我结合我的经验,对他的简历进行评价,然后简单过了一轮面试。以下是视频内容大纲:

    1. 如何准备简历
    2. 奥利奥同学的简历分析
    3. 初中级别前端面试
    4. 结对编程测试
    5. 面试点评
    6. 问题解答+交流

    希望以上内容对近期求职面试的同学有帮助。如果你对求职面试入职过试用期等有问题,欢迎在留言、弹幕里提出,与我讨论交流。如果你也想参加模拟面试,可以跟我联系,预约时间。

    感谢奥利奥同学帮我想到这个方向。

  • 从招聘方的角度理解求职

    从招聘方的角度理解求职

    0. 起因

    前些日子,有位同学找我咨询求职问题。他本科专业其实不错,但是第一份工作没找好,所以只好报了家培训班,想社招之路走得更稳一些。结业之前,他担心培训班就业辅导不够,也找了几位外部导师帮忙。其中就包括我。

    熟悉我的人都知道,我比较反对报培训班,因为:

    1. 性价比太低。
    2. 培训班里真正有实战经验的很少,大部分都是纸上谈兵。

    这次咨询也基本印证了我的观点。所以我想再分享一下,到底招聘方的情况是怎样的,他们有哪些需求,准备简历的时候应该注意什么,面试的时候又应该注意什么。

    1. 企业要招人

    1.0 产生需求

    某天,老板想做个产品。我们假设公司里已经有靠谱的技术团队和技术管理,那么,技术主管很快就会梳理需求,落实到岗位和个人,如果他发现,目前的人力无法应对满足需求,就会启动招聘。

    1.1 产生岗位描述(JD)

    岗位描述(简称 JD),即这个岗位职责是什么、需要哪些职业技能、工作地点和福利待遇等,是招聘前必须准备好的物料。

    产品确定、需求确定,所以岗位需求和岗位职责基本也是确定的。此时技术主管一般会找来以前的 JD,改一改职责和需求,完成新的 JD。然后 ta 会把 JD 发给招聘负责人(多半是 HR),上传到招聘网站、开发者社区、公司招聘库等等。

    比如 OpenResty Inc. 招聘前端工程师 就是一份很典型的 JD。

    1.2 筛简历

    一段时间后,HR、技术主管会从各种渠道获得一大批简历。于是他们就要从这一大堆简历快速筛选出能满足岗位需要的候选人。

    怎么筛呢?一般是关键词。拿我某项工作来举例,我当时负责开发的 Showman 产品,是浏览器插件,界面部分采用 Vue,需要兼容 Puppeteer API。那么在我招聘的时候,就会很重视候选人这几方面的经历。因为匹配度越高,他能顺利接手工作、快速度过适应期的可能性就越大。

    找到关键词之后,HR 可能会接受简历,转发给岗位负责人,即初筛。而岗位负责人则会结合候选人的教育经历、职业经历、项目经验等,判断这些关键词的可靠性与含金量,最终再筛选出其中最合适的一些人进入面试环节。

    1.3 面试

    招聘方从成百上千的简历中筛选出了若干的“看起来”比较合适的候选人,接下来,就要约过来面试聊聊,看看哪些人真正合适。

    面试的过程,其实是验证简历的过程。张三简历里说,他开发过浏览器插件,但是这个插件有多少用户、运营过多久,在开发过程中解决过多少问题,并没有写得非常详细;即使写得很细,也未必跟他有关系。所以作为面试官,我就需要再面试中弄清楚,这项职业经历对他来说,是加分还是减分,甚至是一票否决。

    除了验证简历,面试还可以让招聘方初步了解候选人的非职业特性,比如沟通能力、语言概括能力、接人待物能力,等等。这些东西在招聘中占比不大,不过在诸多候选人的技术能力拉不开差距的时候,也会是必要的判断依据。

    1.4 多轮面试

    单场面试时间有限,通常做不到面面俱到。所以面试通常不止一轮。每个面试官关注的点不一样,比如 A 关注项目经验、B 关注代码实现能力、C 关注职业规划等。最终 ABC 的观点会汇总到一起,给每个候选人一个总评。

    接下来,面试进行到一定阶段,总评过关的人数积累到一定数目,公司就会给其中比较出色的几位发 offer,然后就是入职试用转正,略过不谈。

    2. 我们应该怎么做

    2.1 简历要有针对性

    正如前文所说,企业收到的简历量很大,筛简历的压力也很大。通常来说,招聘方负责人会花在每个简历上的时间很短,基本上就扫一遍,有必要的关键词就再看仔细一点,没有就直接扔掉。

    很多同学只做一套简历,投所有企业所有岗位。在这种情况下希望渺茫:A 公司招数据可视化,B 公司招小程序开发,C 公司主做移动端,三家公司的岗位要求差异很大,一套简历很难覆盖不同公司的不同需求。

    有同学说那我简历里把所有技术关键词都写上可以么?很遗憾,招聘方也不是傻子,你的工作年限和项目经验、技术专长不符,也难逃直接扔掉的命运。或者简历太长,重点不突出,要费力查找关键词,招聘方多半也会直接扔掉。

    当然,为每家公司单独准备一份简历成本太高,也不现实。所以,推荐的做法是:

    1. 准备一份比较通用的简历,不要太长,写上自己最擅长的东西,最能凸显自己特长的经历,用来海投,碰运气。
    2. 对自己比较中意、比较重视的公司,单独准备简历,突出该公司招聘岗位需要的知识、技能、项目经验等,专门投递。
    3. 同时精投的公司不宜过多,避免面试扎堆,影响准备时间。

    2.1.1 特殊技巧

    (我再想想要不要写……)

    2.2 简历要尽可能真实,面试前也要做好准备

    前文也提过,面试是验证简历的过程。能够走到面试这一步,说明招聘方认为候选人的履历可以满足岗位需求,接下来就是要对简历验真,以及判断候选人的发展潜力和综合排名。

    所以简历里的内容可以适度美化,但一定不要做假。为什么呢?面试时间有限,面试官不会针对简历中的每一项进行审查,而是对自己关注的、擅长的领域盘问,也就是大概抽查 20% 的内容,给整份简历打分。

    如果候选人简历有做假,面试时被面试官发现,ta 可不会只扣这一条的分,而是整份简历都显得不可靠,都要扣分。即使剩下的部分都是真实的,但是没有被抽检到,就不会改变面试官的判断。甚至,如果连问两条都不符合预期,可能就会直接中止面试。

    面试前的准备也要尽量做好。比如你参考上一条建议,优化了简历内容,突出以前的某段项目经历以匹配特定关键词。那么这个时候最好回顾一下,审视一下当时的技术方案有何得失,哪里值得改进,自己的工作有何值得称道的地方,等等。然后搜搜看该领域目前的发展状况。不要面试官问起来,这个想不起那个不知道,好好的加分项直接被干成减分项。

    2.3 项目经验要择优表现

    通常来说,简历不要太长,因为筛简历的人不会有那么多时间认真仔细的读。有人说不要超过一页,我觉得不用这么极端,但是三页绝对是极限了。短简历更容易突出重点、突出优势。

    所以通常来说,我们要对项目经验进行取舍,不要把每个项目都罗列出来,即使是海投简历,也要选择会增加自己竞争优势的项目,写到简历里。

    比如,某位培训班同学的简历里,介绍 ta 做过的某个全栈项目,混用 MySQL + MangoDB,koa2 + express。这就很奇怪,这两组技术产品定位冲突,在实际生产中,几乎不会混用。所以这样的项目经验就只能减分。还有,在一些同学的简历里看到,他们这两年都还在用 easyui、jquery 做项目,我当然不否认这些传统框架也能完成产品需求,但是写到简历里,就不要指望它们还能帮你加分。

    如果,极端情况,你的项目经验都很差,那我建议你抓紧时间参与一些能给自己加分的项目,不管是开源的、商用的、独立项目都可以,别憨憨的写一堆没价值的项目,然后抱怨拿不到面试机会。

    2.4 职业经历/项目经历要能让面试官感知到你的优势

    很多同学写简历写到职业经历和项目经历时会写的特别平铺直叙、没有重点、缺少关键信息。比如,做过 OA 系统,就把自己负责的模块都列举一下,或者把流程叙述一遍。这样的信息对面试官来说毫无意义:OA 系统大部分人都用过或了解,公司内的工作流程基本也大同小异。这样的简历基本难逃扫一眼直接丢掉的命运。

    提升面试官感知有三个方法:

    1. 列数字。比如:“我使用了xx方法,使得首页打开速度提升了 40%”,或者“我们把测试覆盖率做到 100%”,等等,让面试官一下就能形成具体认知
    2. 举方案。有一些成型的优秀方案,但不是套个库就行,实施起来有一些难度,就很适合写到这里。比如:应用设计模式、分布式多线程、灰度增量,等等。如果能配合上面的“列数字”方法,效果更佳
    3. 引用其他人的评价。有时候我们想写数字,但是无奈不负责统计,拿不到数字,乱写又担心被面试官挑战,也可以写别人的评价,比如:“产品总监评价此功能至少带来 5% 的总访问量提升”

    提醒大家,如果你要用这个方法吸引招聘方注意,那就要做好相应的准备,避免偷鸡不成蚀把米。比如,你要写数字,就要知道数字是怎么统计出来的;你要写方案,就要写有说服力的方案。

    2.5 面试时找机会突出自己的优势

    目前来看,招聘方占据优势,是买方市场。招聘方会在众多候选人当中选择最好的几个发出 offer。所以我们在面试时,不仅要证明简历上写的都是真实可靠的,还要抓住机会,展现自己的优势。不然,平平淡淡拿到一个中等分数,可能在招聘方的眼里,只是一块“鸡肋”。

    别的岗位就不说了,只说技术开发岗。

    通常来说,技术研发,简历外,通常需要在面试中展现的能力主要有:

    1. 沟通能力
    2. 业务理解能力
    3. 主动学习的习惯和能力
    4. 积极思考的习惯
    5. 解决问题的韧性和积极性

    这些条件可能不足以形成一票通过/否决,但会影响你在同一批候选人里的排名,也要尽量好好表现。另外,不同的公司、职级、岗位,可能也有不同的权重,我就不详细解说了。

    (更多…)
  • 希望大家记住,求职面试也是双向选择

    希望大家记住,求职面试也是双向选择

    前几天在思否上答题,看到这个问题:

    面试被问到:let不能在相同作用域重复声明的底层原理是什么?

    简单总结一下:题主去参加面试,面试官问他 letconst 不能在同一作用域里重复声明的底层原理是什么。题主答不出来,面试官得意地教训他:“做一个合格的 JavaScript 开发者一定要掌握编程语言的基础原理。”

    看得我狠从心头起,恶从胆边生。怒答道:

    这个问题不好。

    let、const 不能在相同作用域重复声明变量是规定,规范就是这么制定的,开发 JS 引擎的程序员就这么执行了。就像公司规定 9 点上班,员工 9 点之前就要到办公室打卡一样。没什么底层原理,我想怎么实现就怎么实现,想坐公交就坐公交、想开车就开车、想走路就走路。

    也许某个实现方案会好一些,有些会差一些,但对于 JS 程序员而言,都是毫不相关的领域。如果想问,可以先问一下,候选人答不出来,面试官就应该把实现原理说出来,请候选人分析其中的道理。

    这个面试官多半就是偶然看到篇讲解这方面知识的文章,奉为瑰宝,到处拿来卡人,跟孔乙己一样的。所以,没过是好事。题主收拾心情,再去面别家就是。

    谁都年轻过,我当年也喜欢在工作中积攒一些很偏门的小知识小技巧,面试的时候拿来问别人,一旦候选人不知道,就沾沾自喜。随着后面知识渐广、经验渐丰,发现这种做法真的是愚蠢至极。开发领域的知识技能浩如烟海,谁都不敢说自己全知全能。关键问题在于,面对一个未知领域,一个没遇到过的问题,我们怎么能解决它,多快能解决它。

    对应到面试,我们要确认的是:

    1. 候选人是否具备这个岗位的基本能力
    2. 候选人面对陌生问题时,能提出什么样可行有效的解决方案

    如果面试官不理解这一点,做了蠢事还沾沾自喜,那么这个岗位的未来也岌岌可危,所以不去也罢。


    我还在 V2 上看到这个帖子:

    当招聘信息上的薪资与他的要求明显不符合时,通常如何提出自己的薪资要求

    我猜楼主是个小朋友,一副天真烂漫的样子。看到一些企业的招聘启示,岗位要求和岗位薪资不太对的上,就想去面试,期望在面试的时候纠正对方,即拿到更多的 offer,还得到理想的薪资。

    这里的核心问题在于,楼主假设所有公司都是靠谱的,他们只是一时糊涂,标错了薪资,而已。

    企业招人,都有很明确的想法和定位。企业当然可能对市场、对招聘环境理解有误,导致落到招聘启事的纸面上,让行内人觉得奇怪。但这正说明这家企业有问题。他们或者对技术人员的价值理解有误、或者根本不清楚自己的需求应该怎么满足。这些问题都不是一场简单的面试能掰扯清楚的,更何况我们只是个陌生的候选人。

    所以最简单也是最好的选择就是放弃这家公司。


    简单总结一下,面试求职,是双向选择。不仅公司在我们几个候选人之间挑选,我们也要在几家候选公司之间挑选。要选择最靠谱、最有价值的公司,给自己的履历加分,让自己越走越好。

    至于那些不靠谱的公司、不靠谱的团队、不靠谱的领导,早点认出来,跟他们说再见,别让他们耽误了自己的美好前程。

  • 尬聊会:第二期实录

    尬聊会:第二期实录

    视频地址

    时间锚点:

    1. [00:33] 创业那点事儿
      1. 股权
      2. 期权
      3. 融资
      4. 估值 200w / 20% = 1000w
      5. 市盈率
    2. [10:00] 如何制作简历
      1. 两个不好的简历
      2. [47:55] 一个好的简历
    3. [37:50] 面试时算法和计算机基础怎么准备?
    4. [39:00] 校招和社招的差别

    5. [43:00] 学了 H5 和 CSS,怎么巩固?

    6. [47:55] 一份好的简历

    7. [52:35] 实习工资

      1. 北京 10K
      2. 杭州 4.5K
    8. [1:00:33]怎么选择合适的公司
      1. 在各个方面给予提升
      2. 看老板,看业务
      3. 慎重选择每一份工作
    9. [1:08:15] 对于转行自学就业,找工作,这方面能不能发表下你个人看法
    10. [1:13:33] 我今年31在一家大公司的地方站做前端工作 4年工作经验 今年想去北京工作

    11. [1:16:55] 前端接口测试通常要怎么做呢?有没有考虑做个课程出来聊聊?

    12. [1:18:55] 老师,对原生JS使用熟练, 目前项目多是混合app开发,没有react, angular,vue 框架的经验,对目前面试有影响吗

    13. [1:21:25] 框架学到怎样的程度合适呢

    14. [1:22:00] 老师,最近想换实习公司,如果在上班的时候,面试的HR打电话过来

    15. [1:24:22] 会写小程序优势大吗?

    16. [1:27:19] 与今天有关的课程广告

    (更多…)

  • 看看前端技术的发展动态,我们似乎应该重新规划学习方向

    看看前端技术的发展动态,我们似乎应该重新规划学习方向

    这个标题是仿照好奇心日报起的。

    近期在帮朋友招聘,目标是找到一个可以独立工作,能够应对大多数问题的前端。初筛简历的时候我比较偏爱之前经历大多是 JS 开发的候选人,比如专门写插件的,或者写过游戏的,对接的同学就问我:前端是不是做过游戏有加分?其实也不完全如此,只是由于环境的变化,JavaScript 开发在前端的整体工作中占据着越来越为大的比重。以前那种先考察切页面能力的做法已经完全不适用了。也导致,我们在前端学习上,需要重新调整侧重点。

    创造 HTML 的目的,是为了阅读文献,从 HTML 标签当中我们就能看到很多来自于印刷时代的痕迹,比如:

    1. 各种语义化的标签 <p> <h1> <h2> <blockquote>
    2. 以竖排版为主的格式
    3. 丰富的字体选项

    浏览器也是朝着这个目标去实现的。于是,早期浏览器在界面布局上做的并不好。伴随着互联网发展,越来越多的用户涌入,他们要求互联网以网页为载体,提供更多满足他们需要的产品。此时最早一代 HTML 和 CSS 就不那么适用了。在我开始做前端的那个年代,经常会碰到各种各样奇奇怪怪的问题,写出来的代码,很难达到自己的预期。于是,做前端,最重要的积累,就是各种浏 Hack,什么清浮动啊、IE6 啊,差不多就是这些。

    这些东西往往并无逻辑可言,所以,老前端比新前端的优势,就在于记住了多少这方面的经验,解决过多少这方面的问题。我们招聘的时候,也倾向于选择有丰富页面制作经验的,毕竟,编程问题很多时候归属于后端。

    然而时过境迁,我们现在再去看前端技术,它的现状和趋势已经都变了。首先,越来越多的浏览器,都在遵守 W3C 规范,我们现在已经不需要再拿那么多时间去做 Hack。浏览器之间的差异,已经从实现的差异(比如 addEventListenerattachEvent),变成了功能化的差异(比如是否支持 Grid 布局)。所以在这个时候,知道多少浏览器 Hack ,也不再是优势。

    另一方面,越来越多的工具涌现出来,我们大部分时间都在使用脚手架、预处理工具、模板引擎,已经很少直接手写最终的 HTML、CSS 代码了。再加上 MVVM 框架对整体工作流的影响,如今,使用命令行,已经是前端必修课。所以,扎实的编程基础,丰富的,在各种环境下进行调试的经验,都是高级前端工程师真正的竞争力所在。

    总结一下,现在切页面变得相对容易,大多数览器的表现都会和预期一致。所以哪怕相关经验差一些,现学也很快。但是开发经验,如果没有积累,想在短时间内快速提升到能够独立应对大多数需求的水准,就比较困难。所以前端应该尽早关注 JavaScript,尽量多的尝试各类基于命令行的工具,甚至主动跨出舒适区,自己动手实现一些工具。这些会对将来的工作,对将来应聘,带来很多好处。


    参考资料:

    1. wiki HTML