今日头条pr岗位。和 阿里巴巴国际站 高级客户经理助理工作内容 哪个更值得一去。同时拿到offer了

今日头条和 Facebook 危机之后,我们必须理解这十二条科技行业的基本原则今日头条和 Facebook 危机之后,我们必须理解这十二条科技行业的基本原则极客公园百家号科技到底是什么?科技并非一个行业,它是一种转变今天已有系统和体系内文化和经济的方法。但如果你认为科技不过是你掏钱买的那些消费级产品,那么前面的这句话的确很难理解。科技绝不仅仅是手机行业,想要在科技公司改变我们生活的问题上做出正确的选择,我们就必须理解它给我们的社会带来的一些基础性的改变——尤其当你想要影响到那些真正发明科技的人的时候。就算是那些深度参与科技世界的人们,也有可能会忽略那些塑造其影响的驱动力。所以在这里,我们将提出一些关键的原则,这些原则将帮助我们更好地理解科技在文化中的地位。一、科技不是中性的Tech is not neutral.科技创新者的价值观深埋在我们能看到的每一个按键、链接和图标上,要想理解应用和服务,这一点尤为重要。软件开发者在设计、技术架构或者商业模式上做出的选择能够对用户的隐私、安全乃至公民权益产生非常深远的影响。当那些应用鼓励我们拍摄方形而非三角形的照片时,当它们把一个永远开启的麦克风放置在我们的客厅里时,又或者,当它们让我们的老板能够随时随地联系到我们时,它实际上改变了我们的行为,也改变了我们的生活。图源:葛宇路作品《对视》那些技术创造者将偏见和喜好注入那些影响着我们生活的新技术,而当我们每一次使用这些最新的技术时,改变都如期发生。二、科技并非必然Tech is not inevitable.图源:chinaz流行文化让人们误以为科技消费品在不断进步,它似乎有着一个不断向上的进步过程。但在现实中,新的科技产品常常会引发一系列的负面影响。功能的改进可能会导致用户隐私和安全上的问题,新技术也许对某些人来说意义非凡,但对其他人而言却并非如此。这里需要注意的是,仅仅因为一项技术在某些方面是「好的」,并不意味着所有人都能够接受,同时,它也未必能够促进其他技术的发展。现实中的技术进步与生物世界里的进化有几分相似:这个过程中会出现各种各样的死胡同,甚至倒退、不平衡的现象,即使从长期来看有着更广泛的进步,但这些「进步」的弊端仍然存在。三、科技从业者大多满怀善意Most people in tech sincerely want to do good.我们可以对现代的科技产品和公司保有怀疑和批判的态度,而非笃信大多数科技从业者都是「坏的」。在认识了软硬件领域成千上万的从业者之后,我可以证明,他们想要改变世界的陈词滥调是真实可信的。技术发明者是真的想要带来一些积极的影响。但同时,这些一心向善的科技公司也需要明白一点:积极的出发点并不能保证他们的工作不会带来消极的后果,也不能免除他们需要为消极后果承担的责任。科技从业者有着积极的出发点,清楚这点颇为重要,因为它会让我们保有善意,从而削弱那些恶意者带来的影响。同时,还需要保证我们对科技从业者们思想肤浅的刻板印象不会影响到大多数充满思想、一心向善的人们。同时很重要的一点,我们要相信,如果我们希望大多数科技从业者对他们所创造的科技产品负责,那么我们就必须相信他们在创造这些技术产品时怀有积极的目的。四、我们对科技历史的记录和理解还不够Tech history is poorly documented and poorly understood.科技从业者很容易就能在他们最爱的计算机语言和设备上发现一些有趣的细节,但他们几乎无法弄清楚为什么这些技术成为了主流,另一些则渐渐销声匿迹。我们仍处在计算机革命的早期,很多计算机革命的先锋仍然在世,仍在不断探索新的技术,但即便如此,我们也常常能发现,有些科技的历史——近至几年前——已经被抹除,无处可寻。你最喜欢的 app 为什么能够成功?为什么其他的 app 不能?在创造这些 app 之前,有过多少失败?创造这些 app 的过程中遇到了多少麻烦,又引发了那些问题?在我们记录如今世界最大的科技巨头们的历史时,哪些创作者和创新者的名字被不幸地抹除了?在科技的历史中,这些问题或轻描淡写,或销声匿迹,甚至有时,人们有意记录下错误的答案,只为了在科技世界里构建出一个更加流畅、无暇、看似必然的故事。当然,这并不是科技行业独有的问题,其他行业也出现过类似的现象,但在科技行业,对前人错误的不尊重,往往会给今天乃至以后的科技从业者们带来非常严重的后果。五、道德教育在科技行业的缺失Most tech education doesn't include ethical training.在法律和医学这样的成熟学科中,我们常常能看到专业课程中融入了几个世纪的学习内容,同时带有着非常明确的道德教育要求。即便如此,我们仍然难以阻止许多不道德的行为。然而,从业人员对道德问题的基本了解,会使得这些领域在职业道德等方面有着广泛的共识,这样他们就可以进行有着预设背景的沟通。更重要的是,道德教育能够让那些希望做正确的事、用道德的方法做事的人们拥有一个坚实的思想基础。但直到最近,科技世界里出现了一些严重的越界行为,可我们在将道德伦理教育纳入科技教育的方面,依然没有大的进展。目前针对科技工作者道德知识的教育项目非常少,继续教育也大多集中在学习型的技术技能,而非社会技能。这个问题还没有最好的解决办法,那些认为让计算机专家与人文学科的专家们紧密合作就能解决这一问题的想法未免太过肤浅。但显而易见的是,要想让科技从业者们继续得到他们目前享有的公众支持,就必须让他们更加流利地表达伦理方面的问题。六、科技产品常常建立在对其用户的无知之上Tech is often built with surprising ignorance about its users.在过去的几十年里,社会对科技行业的尊重有了显著的提高,但这常常会导致人们误将技术发明者看作绝对可靠的人。技术的发明者如今常常被认为是相关专业领域的专家,比如媒体、劳务、交通、基础设施乃至政治政策,然而他们并没有这些领域的背景。知道怎么做一款 iPhone 的应用并不意味着你理解一个从未从事过的行业。最优秀、最有思想的科技从业者会与他们想要帮助的社区进行深入且真诚的接触,以确保他们能够解决这些社区的实际需求,而非不加选择地「扰乱」他们现有系统的工作方式。有时,新技术会对他们的目标用户群体产生不良的影响,而大多数科技产品的创造者拥有足够的资金来资助他们继续开发,以至于他们注意不到其产品设计中的缺陷带来的负面影响,尤其在他们接触不到那些受到影响的人们的时候。让这一切更糟糕的是,这些问题存在于科技行业内部,意味着那些在这一情境下,最为脆弱的目标用户群体在那些技术团队中几乎没有代表,这让他们无法意识到这些边缘人群的特别需求。七、从来就没有一个独立的天才创始人There is never just one single genius creator of technology.在流行文化的认知中,普遍为大家所接受的技术创新往往发生在宿舍或者车库之中,在一个充满戏剧性的时刻,创始人发明了一切。这样的场景为史蒂夫·乔布斯等人创造了神话背景,一个人包揽了「发明 iPhone」这样千千万万人共同努力下产出成果的功劳。事实上,技术永远来源于发明者对所在社区的观察和价值取向,并且,几乎所有突破性的时刻都有着数年乃至数十年人们不断努力创造类似产品的背景。有时候可能会有两个;图源:CNBC这种「孤独的创始人」的传说尤其具有破坏性,它加剧了困扰着整个科技行业的排斥问题。那些被媒体描绘出的孤独天才很少有着真实社区中人们形形色色的背景。虽然媒体能够给个人带来奖励和认知度,或者教育机构能够激发人们去打造个人传奇,以享受其背后的荣耀,但真实的故事其实非常复杂,并且有着更多的人参与其中。我们应该对除此以外的故事报以强烈的怀疑态度。八、大多数技术并非来源于创业公司Most tech isn't from startups or by startups.大概只有 15% 的程序员在创业公司工作,而在很多科技大公司内部,大多数员工都不是程序员。所以,用大名鼎鼎的科技创业公司里的程序员文化和喜好来定义科技,严重扭曲了社会中普通人应该看待科技的方式。我们应该了解的是,大多数创造技术的人,并不在所谓的科技公司中工作,他们往往来自于一些在我们眼里一点也不「科技」的组织和机构。除此以外,还有很多独立的科技公司,小型的工作室或者家庭经营的网站、app 以及定制软件,很多最具天赋的程序员更喜欢这些组织里的文化和挑战,而非那些更为出名的科技公司。我们应该注意到,创业公司只是技术中很小的一个组成部分,尤其,我们不该让那些创业公司内部极端的文化扭曲了我们理解技术的方式。九、大多数科技巨头通过以下三种方式挣钱Most big tech companies make money in just one of three ways.如果你想要了解科技行业的运行方式,科技公司怎么赚钱是个非常重要的知识点。广告:Google 和 Facebook 几乎所有的收入都来源于将你的信息贩卖给广告商们。几乎每一款他们打造的产品都在竭尽所能地收集你的信息,只有这样他们才能根据你的行为和偏好建立起一个更加详尽的个人资料,随后广告商购买的搜索结果和社交网站信息流就能够向你推送与你相关度最高的广告。这是一种围绕着监控建立的商业模式,因为它是大多数 C 端互联网企业依赖的商业模式,所以尤其引人注目。大型商业:一些更大,或者说更「无聊」的科技公司,比如微软、甲骨文和 Salesforce 通过向其他企业出售商业管理的软件盈利,这些产品使用起来并不是很有趣,尤其因为购买这些产品的老板们大多喜欢控制、监控自己的员工。不过,售卖这些产品的公司往往是科技行业里最赚钱的。个人消费品:像苹果和亚马逊这样的公司希望你直接付钱购买他们的产品,或者是其他商家在他们商店里售卖的产品(亚马逊的 AWS 云服务属于上面第二条)。这是最直接的商业模式。在购买 iPhone 和 Kindle,或者订阅音乐平台 Spotify 的会员服务时,你很清楚自己得到了什么。因为它并不依赖广告的模式,也不会将你的控制权转交给你的雇主,所以这些公司的顾客拥有最多的个人权利。几乎所有的科技公司都通过以上三种商业模式之一赚钱,看他们如何连接这三种模式,我们能发现他们做出选择的原因。十、大公司的经济模式扭曲了科技行业The economic model of big companies skews all of tech.今天,世界最大的科技公司们大多有着类似的发展套路:1、 创造出能够改变一个巨大市场的产品2、 从风险投资人那里获取大量资金3、 烧钱,在短时间内获取大量用户4、 找出能够将海量用户转化为利润的商业模式,给投资人以巨大的资金回报5、 开始在市场上同竞争对手进行激烈的争斗(或者收购)这一模式与传统公司的增长模式大相径庭。传统的公司大多起步于小型企业,主要通过吸引顾客购买其商品和服务来实现增长。遵循上述的这种新模式,创业公司能够在短时间内快速成长,远远快于依靠消费者盈利的传统公司。但这些新公司对进入市场的责任感也相对较低,因为他们服务于投资人的短期回报,而非其用户和社区的长远利益。这种商业计划的普遍存在,使得没有拿到风险投资的公司几乎没有参与竞争的机会,那些依靠顾客赚钱的普通公司,无法承受长时间的亏损。这并非一个公平的竞争环境,它意味着创业公司要么体量小而无所作为,要么成长为骇人的庞然大物,留给两者间的选择并不多。从最终的结果看,这与电影行业非常相似:除了小型的独立制作和超级英雄大片以外,其他电影的生存空间越来越少。那么这些科技大公司们最大的成本在哪里?招聘程序员。他们将拿到的绝大部分投资投入到招聘和留住那些构建新的技术平台的程序员身上。这些资金中,只有很少一部分会被用来为社区服务。创造一家市值极高的公司,同时为形形色色的人们提供工作机会,这样的想法并不存在。十一、 对科技来说,时尚和功能同样重要Tech is as much about fashion as function.在外行看来,制作 app 或者硬件设备是一个「超理性」的过程,工程师会选用最先进并且最适合的技术。但事实上,选择编程语言或者工具包往往会受到程序员和产品经理的偏好影响,或者会受到潮流的影响。通常情况下,科技产品创造的过程或者方法会追随潮流和趋势,影响着从产品讨论到开发的方方面面。有时,产品的开发者会热衷于新鲜感,有时他们又会选择复古的方式,但这些选择除了技术的客观价值以外,往往还会受到社会因素的影响。一个更加复杂的技术并不总能创造出一个更加有价值的终端产品,所以尽管许多公司喜欢吹嘘他们的新技术多么有野心,多么尖端,但这并不能保证他们为普通用户提供了更多的价值,尤其需要点明的是,新技术几乎不可避免地会带来许多 bug 和意想不到的副作用。十二、 没有哪个组织能够阻止技术被滥用No institution has the power to rein in tech's abuses.在大多数行业,如果企业开始做错事或者剥削消费者,就会有媒体记者对他们进行调查和批评,如果这些侵权行为愈演愈烈,他们就会受到法律的制裁。今天,大多数科技媒体都在集中报道新产品的发布以及已有产品的更新,那些真正关注科技带来重要社会影响的科技报道往往得不到足够的关注,它们与新手机测评发布在同一板块,而非商业或者文化版面显眼的位置。虽然随着科技公司变得越来越强大、富有,但在媒体公司内部的文化中,这些报道仍然不被重视。传统的商业记者通常在媒体活动中更有资历,但他们对基本的科技概念却一无所知,这对于那些报道财经或者法律的记者来说简直不可想象。与此同时,那些对于科技给文化带来的影响有着更深刻理解的专业记者通常被指派去报道产品的发布,而非更广泛的公民和社会问题。这些问题在监管者身上更为严重,他们常常吹嘘自己对技术的无知。政治领导人连在手机上下载一个应用都学不会,想让他们合理地监管科技行业,或者在科技从业者违反法律时分配法律责任,就似乎更加不可能。虽然科技为社会带来了全新的挑战,但立法者在制定相关法律时,却远远地落后于技术的发展。没有足够的新闻和立法的力量矫正其错误,科技公司常在没有监管的环境中运行,而这一境况带来的后果往往由科技行业以外的人们承担。更糟糕的是,社会活动家们往往依赖传统的方法进行抵制和抗议,但这一套在商业模式相对间接的科技公司身上行不通,他们依靠广告和监视用户数据盈利,同时能通过从风险投资那里获取投资来维持运营。缺乏问责制是如今科技行业面临的最大挑战之一。只有充分理解里以上这些,我们才能更有效地改善科技行业。一旦我们了解了塑造科技的力量,我们就可以开始推动改变。我们知道科技巨头最大的成本投入是吸引和雇佣程序员,那么我们就可以鼓励程序员积极地向他们的雇主倡导道德伦理和社会进步;我们知道哪些大公司的投资人会对市场上的潜在风险较为敏感,那么我们就可以关注他们投资的公司对社会产生了哪些不良的影响,这将带来怎样的风险。如果我们能够理解大多数科技从业者都满怀善意,但他们缺乏相关历史和文化的教育背景,那么我们就可以确保他们受到足够的教育,以保证不可控的负面影响不再发生。那些创造了科技产品的人们,享受着科技产品给我们的生活带来的改变的人们,他们都在与这些技术给社会的带来的负面影响斗争着。但如果我们从一些能够帮助我们理解科技行业的基本原则出发,解决科技行业带来的那些宏大的社会问题就或许并非遥不可及。本文编译自 Medium,原文标题为《12 Things Everyone Should Understand About Tech》,作者 Anil Dash,有删减。责任编辑:克里斯题图来源:Themocracy本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。极客公园百家号最近更新:简介:关注互联网科技创新相关文章&figure&&img src=&https://pic3.zhimg.com/v2-a04ccc0f4fb2e95c9b07fd9_b.jpg& data-rawwidth=&3408& data-rawheight=&2091& class=&origin_image zh-lightbox-thumb& width=&3408& data-original=&https://pic3.zhimg.com/v2-a04ccc0f4fb2e95c9b07fd9_r.jpg&&&/figure&&blockquote&作者简介 Daniel 蚂蚁金服·数据体验技术团队&/blockquote&&p&&br&&/p&&p&目前网上有很多「XX源码分析」这样的文章,不过这些文章分析源码的范围有限,有时候讲的内容不是读者最关心的。同时我也注意到,源码是在不断更新的,文章里写的源码往往已经过时了。因为这些问题,很多同学都喜欢自己看源码,自己动手,丰衣足食。&/p&&p&这篇文章主要讲的是阅读大型的前端开源项目比如 React、Vue、Webpack、Babel 的源码时的一些技巧。目的是让大家在遇到需要阅读源码才能解决的问题时,可以更快的定位到自己想看的代码。授人以鱼不如授人以渔,希望大家可以通过这篇博客,了解到阅读大型前端项目源码时的切入点。在之后遇到好奇的问题时,可以自己去探索。&/p&&p&&br&&/p&&h2&问题驱动——不要为了看源码而看源码&/h2&&p&首先我们要明确一点,看源码的目的是什么?&/p&&p&我个人的意见是,看源码是为了解决问题。开源项目的源代码并没有什么非常特殊的地方,也都是普通的代码。这些代码的数量级一般都挺大,如果想是从源码中学到东西,直接浏览整个 Codebase 无疑是大海捞针。&/p&&p&但如果是带着问题去看源码,比如想了解一下 React 的合成事件系统的原理,想了解 React 的 setState 前后发生了什么,或者想了解 Webpack 插件系统的原理。也有可能是遇到了一个 bug,怀疑是框架/工具的问题。在这样的情况下,带着一个具体的目标去看源码,就会有的放矢。&/p&&p&&br&&/p&&h2&看最新版的源码&/h2&&p&之前看到一种说法,看源码要从项目的第一个 commit 开始看。如果是为了解决前文中对框架/工具产生的困惑,那自然要看当前项目中用到的框架/工具的版本。&/p&&p&如果是为了学习源码,我也建议看最新的源码。因为一个项目是在不断迭代和重构的。不同版本之间可能是一次完全的重写。比如 Vue 2.x 和 React 16。重构导致了代码架构上的一些变化,Vue 2.x 引入了 Vritual DOM,Pull + Push 的数据变化检测方式让整个代码的结构变的更清晰了,所以 2.x 的代码其实比 1.x 的更容易阅读。React 16 重写了 Reconciler,引入了 fiber 这个概念,整个代码仓库结构也更清晰,所以更推荐阅读。&/p&&p&&br&&/p&&h2&前置条件&/h2&&p&看源码怎么看,当然不能一把梭了。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ffa5caaf03_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&395& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-ffa5caaf03_r.jpg&&&/figure&&p&&br&&/p&&p&看源码之前需要对项目的&b&原理&/b&有一个基本的了解。所谓原理就是,这个项目有哪些组成部分,为了达到最终的产出,要经过哪几步流程。这些流程里,业界主流的方案有哪几种。&/p&&p&比如前端 View 层框架,要渲染出 UI,组件要经过 mount、 render 等等步骤。数据驱动的前端框架,在 mounted 之后,就会进入一个循环,当用户交互触发组件数据变化时,会更新 UI。其中数据的检测方式又有分 Push 和 Pull 两种方案。渲染 UI 可以是全量的字符串模板替换,也可以是基于 Virtual DOM 的差量 DOM 更新。&/p&&p&又比如前端的一些工具,Webpack 和 Babel 这些工具都是基于插件的。基本的工作流程就是读取文件,解析代码成 AST,调用插件去转换 AST,最后生成代码。要了解 Webpack 的原理,就要知道 Webpack 基于一个叫 &a href=&https://link.zhihu.com/?target=https%3A//github.com/webpack/tapable& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tapable&/a& 的模块系统。&/p&&p&那我们要如何了解这些呢?要了解这些,可以去各大网站和博客上的《XXX源码解析》系列。通过这些文章,我们可以对我们要看的框架/工具的原理有一个大致的了解。&/p&&p&&br&&/p&&h2&本地build&/h2&&p&不过最终我们还是要直接看源码。笔者真正看源码的第一步就是把项目的代码仓库 clone 到本地。然后按项目 README 上的构建指南,在本地 build 一下。&/p&&p&如果是前端框架,我们可以在 HTML 中里直接引入本地 build 出的 umd bundle(记得用 development build,不然会把代码压缩,可读性差),然后写一个简单的 demo,demo 里引入本地的 build。如果是基于 Nodejs 的工具,我们可以用 npm link 把这个工具的命令 link 到本地。也可以直接看项目的 package.json 的入口文件,直接用 node 运行那个文件。&/p&&p&这里要强调一下,大型的开源项目一般都会有一个 &b&Contribution Guide&/b&,目的是让想贡献代码的开发者更快上手。里面就有讲怎么在本地构建代码。&/p&&p&以 React 为例,React 的 &a href=&https://link.zhihu.com/?target=https%3A//reactjs.org/docs/how-to-contribute.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Contributing Guide&/a& 里就 Development Workflow 这一节。里面有这么一段话:&/p&&blockquote&The easiest way to try your changes is to run yarn build core,dom --type=UMD and then open fixtures/packaging/babel-standalone/dev.html. This file already uses react.development.js from the build folder so it will pick up your changes.&/blockquote&&p&所以 React 仓库中的 fixtures/packaging/babel-standalone/dev.html 就是一个方便的 demo 页。我们可以在这个页面快速查看我们在本地对代码的改动。&/p&&p&你可以尝试着在项目的入口文件中加入一句 log,看看是不是可以在控制台/终端看到这句 log。如果可以的话,恭喜你,你现在可以随便把玩这个项目了!&/p&&p&&br&&/p&&h2&理清目录结构&/h2&&p&在看具体的代码之前,我们需要理清项目的目录结构,这样我们才能更快的知道在哪里地方找相关功能的代码。&/p&&p&我们看看 React 的目录结构。React 是一个 monorepo。也就是一个仓库里包含了多个子仓库。我们在 packages 目录下可以看到很多单独的 package:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3d96b2e64fac17dd2a58c9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1024& data-rawheight=&596& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic1.zhimg.com/v2-3d96b2e64fac17dd2a58c9_r.jpg&&&/figure&&p&&br&&/p&&p&在 React 16 之后,React 的代码分为 React Core,Renderer 和 Reconciler 三部分。这是因为 React 的设计让我们可以把负责映射数据到 UI 的 Reconciler 以及负责渲染 Vritual DOM 到各个终端的 Renderer 和 React Core 分开。React Core 包含了 React 的类定义和一些顶级 API。大部分的渲染和 View 层 diff 的逻辑都在 Reconciler 和 Renderer 中。&/p&&p&Babel 也是一个 monorepo。Babel 的核心代码是 babel-core 这个 package,Babel 开放了接口,让我们可以自定义 Visitor,在AST转换时被调用。所以 Babel 的仓库中还包括了很多插件,真正实现语法转换的其实是这些插件,而不是 babel-core 本身。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-996fae65593b0dde7cb666aff97f8ba8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2002& data-rawheight=&1460& class=&origin_image zh-lightbox-thumb& width=&2002& data-original=&https://pic1.zhimg.com/v2-996fae65593b0dde7cb666aff97f8ba8_r.jpg&&&/figure&&p&&br&&/p&&p&Vuejs 的代码比较典型,核心代码在 src 目录下,按功能模块划分。因为 Vue 也支持多平台渲染,所以把平台相关的代码都放到了 platform 文件夹下,core 文件夹中是 Vue 的核心代码,compiler 是 Vue 的模板编译器,把 HTML 风格的模板编译为 render function。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-7ab48e5ee59efc5e4eb8ab_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1024& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&https://pic1.zhimg.com/v2-7ab48e5ee59efc5e4eb8ab_r.jpg&&&/figure&&p&&br&&/p&&p&Webpack 和 Babel 一样,可以说都是基于插件的系统。Webpack 的主要源码在 lib 目录下,里面的 webpack.js 就是入口文件。&/p&&p&上面说了四个项目的目录结构,那我们遇到一个新的开源项目,应该怎么了解它的目录结构呢?&/p&&p&如果这个项目是一个 monorepo,首先我们要找到核心的那个 package,然后看里面的代码。&/p&&p&不是 monorepo 的话,一般来说,如果这个项目是一个 CLI 的工具,那 bin 目录下放的就是命令行界面相关的入口文件,lib 或者 src 下面就是工具的核心代码。如果这个项目是一个前端 View 层框架,那目录结构就和 Vue 类似。&/p&&p&作为验证,大家可以看一下打包工具 &a href=&https://link.zhihu.com/?target=https%3A//github.com/parcel-bundler/parcel& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&parcel&/a& 和前端 View 层库 &a href=&https://link.zhihu.com/?target=https%3A//github.com/kbrsh/moon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&moon&/a& 的目录结构。目录结构这个东西往往是大同小异,多看几个项目就熟悉了。&/p&&p&&br&&/p&&h2&debugger && 全局搜索大法&/h2&&p&运行了本地的 build,了解了目录结构,接下来我们就可以开始看源码了!之前说了,我们要以问题驱动,下面我就以 React 调用 setState 前后发生了什么这个问题作为例子。&/p&&p&我们可以在 setState 的地方打一个断点。首先我们要找到 setState 在什么地方。这个时候之前的准备工作就派上用处了。我们知道 React 的共有 API 在 react 这个 package 下面。我们就在那个 package 里面全局搜索。我们发现这个 API 定义在 src/ReactBaseClasses.js 这个文件里。&/p&&p&于是我们就在这里打一个断点:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Component.prototype.setState = function(partialState, callback) {
invariant(
typeof partialState === 'object' ||
typeof partialState === 'function' ||
partialState == null,
'setState(...): takes an object of state variables to update or a ' +
'function which returns an object of state variables.',
this.updater.enqueueSetState(this, partialState, callback, 'setState');
&/code&&/pre&&/div&&p&然后运行本地 React build 的 demo 页面,让组件触发 setState,我们就可以在 Devtool 里看到断点了。&/p&&p&我们走进 this.updater.enqueueSetState 这个调用,就来到了 ReactFiberClassComponent 这个函数中的 enqueueSetState,这里调用了 enqueueUpdate 和 scheduleWork 两个函数,如果要深入 setState 之后的流程,我们只需要再点击&/p&&figure&&img src=&https://pic1.zhimg.com/v2-75be3e8ca221eac68bf6c3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&18& data-rawheight=&26& class=&content_image& width=&18&&&/figure&&p&走进这两个函数里看具体的代码就可以了。&/p&&p&&br&&/p&&p&如果想看 setState 之前发生了什么,我们只需要看 Devtool 右边的调用栈:&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d6dd814a861c4bc45f7905295bdf4ec6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&438& data-rawheight=&1100& class=&origin_image zh-lightbox-thumb& width=&438& data-original=&https://pic1.zhimg.com/v2-d6dd814a861c4bc45f7905295bdf4ec6_r.jpg&&&/figure&&p&&br&&/p&&p&点击每一个 frame 就可以跳到对应的函数中,并且恢复当时的上下文。&/p&&p&结合一步一步的代码调试,我们可以看到框架的函数调用栈。对于每个重要的函数,我们可以在仓库里搜索到源码,进一步研究。&/p&&p&Node 工具的调试方法也是相似的,我们可以在运行 node 命令时加上 --inspect 参数。具体可以看a href=&&a href=&https://link.zhihu.com/?target=https%3A//medium.com/%40paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&medium.com/@paul_irish/&/span&&span class=&invisible&&debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27&/span&&span class=&ellipsis&&&/span&&/a&&& Debugging Node.js with Chrome DevTools 这篇博客。&/p&&p&其实大家都知道单步调试这种办法,但在哪里打断点才是最关键的。我们在熟悉框架的原理之后,就可以在框架的&b&关键链路&/b&上打断点,比如前端 View 层框架的声明周期钩子和 render 方法,Node 工具的插件函数,这些代码都是框架运行的必经之地,是不错的切入点。&/p&&p&如果是为了了解一个特定的问题,大家可以直接在自己觉得有问题的地方打断点。然后把源码运行起来,想办法让代码运行到那个地方。我们在断点可以看到局部变量等等信息,有助于定位问题。&/p&&p&&br&&/p&&h2&来自开发团队的资源&/h2&&p&其实开源项目的开发团队也都致力于让更多的人参与到项目中来,降低项目的门槛。所以我们在线上其实可以找到很多来自开发团队的资源。这些资源可以帮助我们去理解项目的原理。&/p&&p&&br&&/p&&h2&关注核心开发者&/h2&&p&每个项目都有一些核心开发者,比如 React 的 &a href=&https://link.zhihu.com/?target=https%3A//twitter.com/dan_abramov& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Dan Abramov&/a&, &a href=&https://link.zhihu.com/?target=https%3A//twitter.com/acdlite& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Andrew Clark&/a& 和 &a href=&https://link.zhihu.com/?target=https%3A//twitter.com/sebmarkbage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sebastian Markb?ge&/a&。Webpack 的 &a href=&https://link.zhihu.com/?target=https%3A//twitter.com/wSokra& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tobias Koppers&/a& 和 &a href=&https://link.zhihu.com/?target=https%3A//twitter.com/TheLarkInn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sean Larkin&/a&。Vue 的 &a href=&https://link.zhihu.com/?target=https%3A//juejin.im/editor/drafts/5afe6539afce& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Evan You&/a&。我们可以在 Twitter 上关注他们,了解项目的动态。&/p&&p&&br&&/p&&h2&关注官方博客和演讲视频&/h2&&p&如果我们关注了上面的核心开发者,就会发现他们时常会发布一些和源码/项目原理有关的博客或者视频。&/p&&p&React 的官方博客最近就有很多和项目开发有关的博客。&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=https%3A//reactjs.org/blog//improving-the-repository-infrastructure.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Behind the Scenes: Improving the Repository Infrastructure&/a& 这篇介绍的是 React 项目仓库的基础设施。&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//reactjs.org/blog//sneak-peek-beyond-react-16.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sneak Peek: Beyond React 16&/a&&/li&&/ul&&p&Andrew Clark 一开始就写了一篇介绍 fiber 架构的&a href=&https://link.zhihu.com/?target=https%3A//github.com/acdlite/react-fiber-architecture& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&文档&/a&。 Dan Abramov 最近在 JSConf 上对 React 未来的一些新特性的介绍 - &a href=&https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3Dv6iR3Zk4oDY& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Beyond React 16&/a&。React 博客中的 &i&Sneak Peek: Beyond React 16&/i& 也是对这次 Talk 的介绍。&/p&&p&Evan You &a href=&https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3Dr4pNEdIt_l4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&介绍前端框架数据变化侦测原理的 Talk&/a&。Vue 文档中也有 &a href=&https://link.zhihu.com/?target=https%3A//vuejs.org/v2/guide/reactivity.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Reactivity in Depth&/a& 这样的介绍原理的章节。&/p&&p&Sean Larkin 的 &a href=&https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3D4tQiJaFzuJ8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Everything is a plugin! Mastering webpack from the inside out&/a& 介绍了 Webpack 的核心组件 Tapable。&/p&&p&James Kyle 的 &a href=&https://link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3DTar4WgAfMr4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How to Build a Compiler&/a& 可以让我们了解 Babel 转译代码的基本流程。&/p&&p&&br&&/p&&h2&写在最后&/h2&&p&本文最核心的观点就是,看源码的目的是为了解决问题。我们鼓励大家在本地把大型项目的源码跑起来,自己随意把玩,研究。因为源码也是普通的代码,并没有太多门槛。唯一的门槛可能就来源于开源项目作者和普通开发者之间的信息不对称,普通开发者对项目的原理和目录结构不够了解。&/p&&p&我们可以从开发者那里获取资源,同时也可以多阅读社区里的源码分析文章,这些都有助于我们理解项目的原理,为后续的源码分析打下基础。&/p&&blockquote&对我们团队感兴趣的可以关注专栏,关注&a href=&https://link.zhihu.com/?target=https%3A//github.com/ProtoTeam/blog& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&github&/a&或者发送简历至'tao.qit####alibaba-inc.com'.replace('####', '@'),欢迎有志之士加入~&/blockquote&&p&原文地址:&a href=&https://link.zhihu.com/?target=https%3A//github.com/ProtoTeam/blog/blob/master/.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&https://github.com/ProtoTeam/blog/blob/master/.md&/a&&/p&
作者简介 Daniel 蚂蚁金服·数据体验技术团队 目前网上有很多「XX源码分析」这样的文章,不过这些文章分析源码的范围有限,有时候讲的内容不是读者最关心的。同时我也注意到,源码是在不断更新的,文章里写的源码往往已经过时了。因为这些问题,很多同学都…
&p&谢邀,我说一些真实比较有用,而且能够有效提高你的效率的源码好了。&/p&&p&&br&&/p&&h2&工程化能力提升&/h2&&p&如果你的工程化能力稍弱,我建议直接拿到 Create-react-app 的 &a href=&//link.zhihu.com/?target=https%3A//www.npmjs.com/package/react-dev-utils& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&react-dev-utils&/a& 进行源码阅读,代码实际上很简单,&b&而且注释非常的多,阅读起来完全是没有压力的&/b&。&/p&&p&&br&&/p&&p&通过阅读这个项目的源码,你基本就能够知道一个&b&工程脚手架是如何进行搭建&/b&的,以后碰上什么 webpack 问题都能迎刃而解。&/p&&p&&br&&/p&&p&看完了以后,就可以自己做一些工具来练手。&/p&&p&&br&&/p&&h2&&b&库理解提升&/b&&/h2&&ul&&li&&b&Redux&/b&&/li&&/ul&&p&Redux 的思想非常的简单也有效,虽然说繁杂,但是这种形式对前端的影响是巨大的,如果你熟悉的话可以很快写出一个简单版本的 Redux,就像我一样:&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-04b3f964b7a944a98dfab_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&720& data-rawheight=&793& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic4.zhimg.com/50/v2-04b3f964b7a944a98dfab_r.jpg&&&/figure&&ul&&li&&b&Mobx&/b&&/li&&/ul&&p&Mobx 的实现其实已经脱离了 React ,虽然他成名的地方在 React,但是实际上他本身就是一个简单的 MVVM 框架,这就是为什么大家觉得在使用 Mobx 的时候感觉很像在搞 Vue.&/p&&p&&br&&/p&&h2&&b&前端需要了解的编译原理&/b&&/h2&&a href=&https://www.zhihu.com/question//answer/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&前端对AST(抽象语法树)的应用越来越多,应该看什么书籍才能补充这方面的知识点?&/a&&p&在这个回答中,我已经说了很多的内容,大家可以去看看,有源码,有解析,有折腾过程。&/p&&p&&br&&/p&&h2&&b&框架理解提升&/b&&/h2&&p&&b&最近我发现一个好项目叫做:&/b&&/p&&a href=&//link.zhihu.com/?target=https%3A//github.com/danistefanovic/build-your-own-x& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic4.zhimg.com/v2-873f25d14bb_ipico.jpg& data-image-width=&300& data-image-height=&300& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&danistefanovic/build-your-own-x&/a&&p&这是一个 「教你制作你的自己的xxx系列」,里面有无数的轮子可以参考,而且有教程有视频,算是对造轮子者的一个福音。&/p&&p&&br&&/p&&p&&br&&/p&&h2&UI框架理解提升&/h2&&p&大家也猜到了,那就是 Ant design 和 RC 库,Rc 是 Ant design 的底层。我目前看过的 UI 框架中,这个组件库的质量算是非常上乘了。&/p&&p&&/p&&p&&/p&&p&&/p&
谢邀,我说一些真实比较有用,而且能够有效提高你的效率的源码好了。 工程化能力提升如果你的工程化能力稍弱,我建议直接拿到 Create-react-app 的
进行源码阅读,代码实际上很简单,而且注释非常的多,阅读起来完全是没有压力的。 通过阅…
&figure&&img src=&https://pic4.zhimg.com/v2-16fc25a2c88f110ee8af24a_b.jpg& data-rawwidth=&4032& data-rawheight=&3016& class=&origin_image zh-lightbox-thumb& width=&4032& data-original=&https://pic4.zhimg.com/v2-16fc25a2c88f110ee8af24a_r.jpg&&&/figure&&p&4月19日,本人拿到了网易的口头offer。已经决定去网易-杭研院实习。精神紧绷了一个半月,现在可以好好放松了~&/p&&p&接下来与大家分享一下本人找实习的经验。虽说是找实习,相关经验在秋招时也应该是适用的。&/p&&p&以下经验主要偏向技术岗,且更多地侧重于前端。&/p&&hr&&h2&简历&/h2&&p&分享两个简历模板:&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=https%3A//www.wondercv.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&超级简历&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//github.com/geekcompany/ResumeSample& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&程序猿简历通用模板&/a&(请自学Markdown语法)&/li&&/ul&&p&关于怎么写简历,知乎上有许多宝贵经验,我就强调以下几点:&/p&&ul&&li&实事求是,不怎么了解的东西别往简历上写。&/li&&li&项目经历、学生工作、兴趣爱好等最好有详实的数据和论据支撑,如“该项目后期经过XX方面的性能优化,效率提升22.7%”、“举办XX活动,参加人数XX人,持续XX天”、“爱好唱歌,校园十佳歌手三等奖”。而且一定要体现你起了哪些作用。&/li&&/ul&&hr&&h2&网申和内推&/h2&&p&简历写好后就进入这个阶段啦。建议大家关注以下几个微信公众号:&/p&&ul&&li&校招导师&/li&&li&内推军&/li&&li&互联伴&/li&&/ul&&p&和这几个网站:&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=https%3A//www.shixiseng.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&实习僧&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/5779293& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛客网&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//ssdut.dlut.edu.cn/bkspy/bksgl/zsjy/sxjy/jyzd.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&软院官网-招生就业&/a&&/li&&/ul&&p&注意,部分公众号和网站提供收费服务,我觉得&b&毫无必要&/b&。不要在这方面浪费钱,网上免费的资源已经多到眼花缭乱,像我这样善良的主动分享经验的网友也挺多。&/p&&p&这个阶段我犯了一个大错误。内推找得太早,导致复习得还不够充分就接到了阿里和腾讯的电话,头几次电话面试缺乏经验发挥失常,浪费了这两家公司的内推机会。现在想起来都捶胸顿足……可以考虑在各大公司内推/网申截止日期前几天再投递。&/p&&p&邮箱最好用163、gmail等邮箱,但京东、美团、腾讯等公司建议使用QQ邮箱。每天都要注意有没有收到新邮件,注意要翻一翻垃圾邮件,可能被误识别。&/p&&p&除非有很明确的目标,我建议大多数同学还是海投。我自己就投了三十多家,叫得上名字的公司几乎都投了。笔试、面试也是很宝贵的经验,哪怕倒贴钱我也要多尝试,何况投简历、笔试和远程面试根本就不要钱呢?&/p&&hr&&h2&笔试&/h2&&p&非技术岗的笔试喜欢考智力题,这点类似公务员考试。牛客网上可以刷题,或者买公务员考试的资料也行。至于具体的产品经理、策划等还考些别的什么,我不太了解。&/p&&p&大多数公司技术岗笔试的套路差不多,选择题+编程题,有时候还会有问答题。选择题的考点,除了根据你选择的岗位有所侧重,更多地还是考察基础知识。C/C++/Java基础、数据结构、操作系统、计算机网络一定要重点复习(用学校的教材即可),如果有多余时间,最好再看看编译原理。牛客网上也可以做对应的专项练习。&/p&&p&至于编程题……这也是我心中的痛啊……羡慕学ACM的同学,在这方面优势就很大了。LeetCode、&a href=&https://link.zhihu.com/?target=http%3A//www.lintcode.com/problem/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LintCode&/a&都可以刷刷。书籍推荐《剑指offer》,图书馆有旧版的。LintCode的阶梯训练-书籍里也有《剑指offer》的全套练习题,&a href=&https://link.zhihu.com/?target=https%3A//www.jiuzhang.com/solution/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&九章算法&/a&上也可以搜每道题的题解。刷通了《剑指offer》,除去头条笔试以外的编程题,做出一半还是比较轻松的。&/p&&p&大多数公司的编程题支持多门语言。你可以挑选自己喜欢的语言,熟悉相关的API,免得到时候要自己实现一些原本就有的函数。但最好还是练一练C/C++,面试的时候面试官不一定会你掌握的语言,但多少懂点C/C++。&/p&&p&如果是在牛客网笔试,“校招小管家”微信公众号会在笔试前提醒你。吐槽一下赛码网,没有牛客网好用。&/p&&hr&&h2&面试&/h2&&p&面试有电话面试、视频面试、现场面试。电话面试更多地会考察你的知识点、谈谈你过去做过的项目,很少会问你复杂的算法题,即使问了也是让你讲讲思路。视频面试和现场面试就会让你写比较细致的代码了,到时候要仔细考虑边界情况和特别用例。不过我很少见到要求你一定要把代码跑起来的面试官。&/p&&p&面试会有自我介绍环节,稍微准备一下就好。我的自我介绍通常就半分钟。&/p&&p&面试的时候一定要放松,语速尽可能平缓。遇到不会的知识点请大方地说你不会(或者像我这样说:“这个知识点我不了解,以下是我的一些猜测……”或者“您能给一些提示吗?”)。硬着头皮回答只是在浪费双方的时间。&/p&&p&面试通常有好几轮,一般是若干轮技术面加上最后一轮的HR面。阿里的HR面很玄学,其他公司还好。但我至今也想不通为啥链家的HR面把我刷掉了……&/p&&p&去大公司面试就像追女孩子,如果面完试很久都没回你消息,你也别多问,免得两边都不愉快。如果是小公司可以冒险尝试一下,因为小公司的流程不那么正规,有周旋的余地。&/p&&p&以下是我有印象的各大公司的&b&前端&/b&面试题。括号内为答案和吐槽。&/p&&h2&阿里&/h2&&p&阿里内推和网申都开始得比较早,但如前文所说,大家可以不急着投,等准备充分了再去试试运气。&/p&&p&可以在网站的个人中心里查看自己的面试进度。希望大家不会看到“已回绝”三个字。&/p&&p&简历面,电话(太紧张+没睡醒的缘故,我在这里挂了)&/p&&ul&&li&简述 Vue 的生存周期(创建,挂载,更新,销毁)&/li&&li&你用过 Bootstrap 写过库吗?让你用 Bootstrap 设计一个系统,怎么设计?(这问题我现在都不知道怎么答)&/li&&li&Express 和 Koa 框架的区别、优缺点(&a href=&https://www.zhihu.com/question/& class=&internal&&参见知乎&/a&)&/li&&li&Node.js 的优缺点(擅长I/O密集、不擅长计算密集……)&/li&&/ul&&hr&&h2&腾讯&/h2&&p&腾讯和阿里都喜欢电话突然袭击,这一点很不友好……&/p&&p&腾讯的面试进度可以在微信公众号里查看。&/p&&p&一面,电话&/p&&ul&&li&ES6 里 let 和 var 的区别(前者块作用域,后者函数作用域;感谢 &a class=&member_mention& href=&https://www.zhihu.com/people/524ed0a2a193beb5eb65& data-hash=&524ed0a2a193beb5eb65& data-hovercard=&p$b$524ed0a2a193beb5eb65&&@邱小白&/a& 的更正,关于变量提升的问题,可以参考此文:&a href=&https://link.zhihu.com/?target=https%3A//www.jianshu.com/p/0f49c88cf169& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&let深入理解---let存在变量提升吗?&/a&)&/li&&li&系统优化方案?简述一下 CDN 加速服务?(&a href=&https://www.zhihu.com/question/& class=&internal&&知乎-CDN服务&/a&)&/li&&li&简述事件委托机制(事件捕获、冒泡,父元素监听)&/li&&li&HTTP 里的304状态码了解吗?(&a href=&https://link.zhihu.com/?target=http%3A//hpoenixf.com/%25E9%259D%25A2%25E8%25AF%%25BF%%E4%25B9%258Bhttp%25E7%258A%25B6%25E6%E7%25A0%%259C%%2593%25AA%25E4%25BA%259B.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&面试-状态码&/a&)&/li&&li&简述 ES2017 里的 async 和 await (&a href=&https://link.zhihu.com/?target=https%3A//github.com/JoeHetfield/You-Dont-Know-JS/blob/master/es6%0beyond/ch8.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&你不知道的JS&/a&)&/li&&li&谈谈你印象最深的一个项目(照实说)&/li&&/ul&&p&二面,电话(挂了)&/p&&ul&&li&你觉得要怎样成为一名优秀的前端工程师?(快速学习、善于沟通)&/li&&li&HTTP 、 HTTPS 、 HTTP2 的区别?(&a href=&https://link.zhihu.com/?target=http%3A//www.alloyteam.com/2016/07/httphttp2-0spdyhttps-reading-this-is-enough/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&关于HTTP你该知道的&/a&)&/li&&li&简述一下用户访问网站的过程(缓存,DNS查询,建立链接,请求,响应,收到页面,解析DOM树,显示内容,首屏加载完成,可交互)&/li&&li&你有什么要问我的吗?(见后文小结里的HR相关文章)&/li&&/ul&&p&笔试后北京一面。体验极差!不能一次面完嘛!复试还是改电话吧……&/p&&ul&&li&问项目(照实说)&/li&&li&列举数组的用法(建议分类列举,栈、队列、映射、删除等)&/li&&li&数组去重(直接倒进集合再倒出来)&/li&&li&跨域(图像ping, JSONP , CORS , webSocket 等)&/li&&li&本地存储( cookie , localStorage , sessionStorage 等)&/li&&li&HTTP , TCP , UDP , IP (参看计算机网络教材)&/li&&li&进程通信,有名和匿名管道(&a href=&https://link.zhihu.com/?target=https%3A//blog.csdn.net/zm1_1zm/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有名管道和无名管道&/a&)&/li&&li&你有什么要问我的吗?(见后文小结里的HR相关文章)&/li&&/ul&&p&一面过了后公众号显示进入复试状态,但二面一直没消息。成备胎了?&/p&&hr&&h2&头条&/h2&&p&头条面试问的算法题比起笔试题简单多了。&/p&&p&面试前会有小姐姐和你约时间。&/p&&p&一般是在牛客网上视频面试,会让你在在线编译器里写代码。顺利的话一次三面。头条回绝人倒是干脆,面完试十五分钟内就会给你打电话。像我这样被挂起来的倒是挺少见……&/p&&p&一面,视频&/p&&ul&&li&简述 CSRF (跨站请求伪造)的攻击和防御措施(&a href=&https://link.zhihu.com/?target=https%3A//blog.csdn.net/stpeace/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CSDN博客-CSRF&/a&)&/li&&li&在线写代码,给定一个数组和一个正整数N,求一个和小于N的最长连续子数组(我两层for循环暴力解了,在面试官引导下做出了一定的优化)&/li&&li&在线写代码, CSS 的单行和多行截断?( overflow , text-overflow )&/li&&li&Vue 的双向绑定原理(事件监听, getter 和 setter )&/li&&/ul&&p&别的记不清了……当时网不好&/p&&p&二面,视频(三面还没给我消息,估计凉了)&/p&&ul&&li&在线写代码,给定一个二叉树,求根节点到叶子节点的路径上所有节点值之和(DFS,先序遍历,递归)&/li&&li&在线写代码,给定两个有序数组,合并为一个有序数组。不许使用 js 的 concat 和 sort 方法(两个指针)&/li&&li&在线写代码,两栏布局,左边定宽右边自适应,等高( flex , grid , float , position ,方法很多随便说几个)&/li&&li&简述自定义事件实现方法(参看红宝书)&/li&&li&简述 getter 和 setter 写法(参看红宝书)&/li&&li&TCP 三次握手和四次挥手,拥塞控制(参看计算机网络教材)&/li&&li&你有什么要问我的吗?(见后文小结里的HR相关文章)&/li&&/ul&&hr&&h2&链家&/h2&&p&我也不知道我为啥挂了……&/p&&p&当时面试地点在凯伦饭店。环境舒适,面试官也挺温和。&/p&&p&技术面难度不大,但问得比较细。我印象不深,一二面合起来写吧。&/p&&p&技术面&/p&&ul&&li&跨域方式( JSONP ,
webSocket 等,但原理要搞懂)&/li&&li&Web 本地存储( Cookie , localStorage , sessionStorage 等)&/li&&li&Cookie 相关的头字段和格式( Set-Cookie:name1=value1, expires='...',expires='...' )&/li&&li&document.cookie 的格式,写一个封装后的函数(格式同上,函数就是花式处理字符串)&/li&&li&session 原理(基于 Cookie ,或查询字符串,或 ETag )&/li&&li&手写代码,不产生新数组,删除数组里的重复元素(排序, splice() )&/li&&li&项目细节(问了我一堆后端,还好当年项目搭档的源码我还有印象)&/li&&li&你有什么要问我的吗?(见后文小结里的HR相关文章)&/li&&/ul&&p&二面面试官对我的评价:动手能力强,能解决问题,但所学知识杂而不精,不过学生都这样。&/p&&p&HR面&/p&&p&基本是天南海北地侃大山,家庭住址、经济条件、寝室关系、参加过的竞赛、做过的项目、职业规划等都会关联到……我可能在这个环节说错话了。言多必失,不要太实诚,也不要撒谎。&/p&&hr&&h2&网易&/h2&&p&网易的面试体验挺不错。它的微信公众号会给你叫号,前台小姐姐也会提醒你,每一面结束后都可以找前台小姐姐查询面试结果。而且食堂超级好吃!还可以边吃饭边吸猫!&/p&&p&面试地点在杭州研究院一楼大厅。环境舒适,就是座位有点不够用。&/p&&p&一面&/p&&ul&&li&6道基本技术问题,居中、闭包、块级元素和行内元素等(答案略)&/li&&li&某个项目的页面布局方式,缓存的设计和优化方式(本地存储和协议相关的)&/li&&li&ajax 的原生写法(创建 XHR 对象, open() , setRequestHeader() , send() , onreadystatechange )&/li&&li&vue-router 的原理( hash , HTML5 新增的 pushState )&/li&&/ul&&p&关于 ajax ,我再强调以下方面。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&//open()接受3个参数:请求类型、 URL 和是否异步的布尔值
//GET方式通常这样发:
xhr.open(&get&, &example.php?name1=value1&name2=value2&, true)
//可以设定请求头,包括自定义请求头,比方说这样:
xhr.setRequestHeader(&MyHeader&, &MyValue&);
//可以这样取得一个包含所有头部信息的长字符串:
var myHeader = xhr.getResponseHeader(&MyHeader&);
var allHeaders = xhr.getAllResponseHeaders();
//POST方式有这几个地方要改:
//请求头要重设,数据会以key1=value1&key2=value2的方式发送到服务器
xhr.setRequestHeader(&Content-Type&, &application/x-www-form-urlencoded&);
//获取表单
var form = document.getElementById(&user-info&);
//序列化表单,发送的内容传入send()
xhr.send(serialize(form));
//也可以这样传值:
var data = new FormData(form);
//再传一点别的
data.append(&name&, &Nicholas&)
xhr.send(data);
&/code&&/pre&&/div&&p&别的不记得了……&/p&&p&二面&/p&&p&面试官:“你觉得你擅长CSS还是JS?”&br&我:“JS。”&br&面试官:“好,那我问你一道CSS的问题。”&br&我:“???”&/p&&ul&&li&CSS 三栏布局,左右定宽,中间自适应( flex , grid 等)&/li&&li&解释构造函数、对象、原型链之间的关系(看红宝书)&/li&&li&手写代码,实现原型式继承(看红宝书)&/li&&li&手写代码,实现借用构造函数(看红宝书)&/li&&li&Vue 双向绑定原理(事件监听, getter 和 setter )&/li&&li&Virtual DOM 和 diff 算法( DOM 树,分层比较, key , DocumentFragment )&/li&&li&jQuery 链式调用的原理(&a href=&https://www.zhihu.com/question/& class=&internal&&知乎-jQuery链式调用&/a&)&/li&&li&最近碰到的技术难题,不一定是前端(我答了B站的爬虫与反爬虫)&/li&&/ul&&p&关于反爬虫,请求头中的这两个字段要修改。&/p&&ul&&li&Host :发出请求的页面所在的域。&/li&&li&Referer :发出请求的页面的 URI 。注意, HTTP 规范将这个头部字段拼写错了,而为保证与规范一致,也只能将错就错了(这个英文单词的正确拼法应该是
referrer )。&/li&&/ul&&p&HR面&/p&&p&HR小姐姐似乎对我们学校挺熟悉的,但好像不是校友……&/p&&ul&&li&谈一谈过去做过的项目、面对的难题(和UI的沟通问题,顺便引出我后来自学了平面设计。又提了提爬虫)&/li&&li&家在哪里(照实回答就行)&/li&&li&未来职业规划(表示出你想在公司长久待下去,继续进步就行)&/li&&li&具体的技术发展方向(我答的是“能支持上亿用户使用的前端架构”)&/li&&li&为了往这个方向发展,你所做的努力(我答的是“在看《高性能网站建设》、自学后端,顺便提了一下‘东北Java第一人’姜国海老师”)&/li&&li&预测一下前端未来的发展趋势(我答的是“自动化”)&/li&&li&拿了哪家的offer?(……还是照实回答吧)&/li&&li&实习时间(我建议把时间段说得宽松一些,到时候真的冲突再商量)&/li&&/ul&&hr&&h2&京东&/h2&&p&京东的面试小哥哥有点逗。因为是临时改成电话面试,过程不太正规,题目直接用手机的摄像头传给我……&/p&&p&初面已过,复试原本显示待安排,后来估计是招满人直接给我挂了。&/p&&p&一面&/p&&ul&&li&列举块级元素和行内元素( div 等, span 等)&/li&&li&absolute 依据的定位元素是?(非 static 的祖先元素)&/li&&li&几道 js 基础题(多去牛客网刷题)&/li&&li&Vue 里 v-if 和 v-show 的区别?(&a href=&https://link.zhihu.com/?target=https%3A//cn.vuejs.org/v2/guide/conditional.html%23v-if-vs-v-show& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&文档&/a&)&/li&&li&parseInt() 和 array 的 map 方法的参数?(看红宝书)&/li&&/ul&&p&面试官对我的评价:基础还可以,做项目的能力是有的,但缺乏深度,要多关注一些细节&/p&&hr&&h2&去哪儿网&/h2&&p&距离去哪儿网笔试快一个月了,我都以为我凉了,结果在北京面腾讯的当天下午连续接到三个电话……只有一轮技术面+一轮HR面,然后就给我发了口头offer,相当地干脆利落……&/p&&p&去哪儿网好像更注重考察你对框架、工具的应用,对于基础考得反而不多。而且还考了我 jQuery ,别的公司都不怎么考的……&/p&&p&一面&/p&&ul&&li&webpack 用过吗?如何处理图片、 CSS 文件?(各种 loader )&/li&&li&使用 flex 布局写移动端布局(注意 flex-direction 要改)&/li&&li&jQuery 的 delegate 原理(事件冒泡与捕获)&/li&&/ul&&p&不止这些,但别的忘了……&/p&&p&HR面&/p&&ul&&li&薪资&/li&&li&可实习时间(我说了7~9月)&/li&&li&职业发展规划(有节制地胡说八道)&/li&&/ul&&p&别的不记得了……因为整个过程速度太快,来不及记忆……&/p&&hr&&h2&搜狐&/h2&&p&我投了三份简历给搜狐,结果三份全被刷了……但4月18日早上搜狐面试官突然加我微信好友!于是当天晚上十点视频面试。&/p&&p&一面&/p&&ul&&li&HTML5 的语义化标签( header , footer , main 等)&/li&&li&position 的取值和含义(&a href=&https://link.zhihu.com/?target=http%3A//www.w3school.com.cn/cssref/pr_class_position.asp& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&W3Cschool-position属性&/a&)&/li&&li&z-index 的蜜汁用法(这是一个“拼爹”的属性)&/li&&li&CORS 跨域文件共享的请求头(询问允许的方法和域)&/li&&li&获取页面滚动高度( window.pageYOffset )&/li&&li&函数节流和去抖,写滚动监听函数(&a href=&https://link.zhihu.com/?target=https%3A//www.cnblogs.com/caizhenbo/p/6378202.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&函数节流和去抖&/a&)&/li&&li&你有什么要问我的吗?(见后文小结里的HR相关文章)&/li&&/ul&&hr&&h2&百度&/h2&&p&虽然百度这几年发展势头落后于AT,甚至快被京东赶上了,毕竟瘦死的骆驼比马大,面试还是相当有难度和水准的。本人很遗憾地挂在了二面。看来只能投奔网易的怀抱了~&/p&&p&百度也是在牛客网上进行远程视频,流程和头条差不多。&/p&&p&一面&/p&&ul&&li&询问你的项目经验、学习经历、主修语言(照实答)&/li&&li&解释ES6的暂时性死区( let 和 var 的区别)&/li&&li&箭头函数、闭包、异步(老生常谈,参见上文)&/li&&li&高阶函数(呃……我真不太清楚这是啥,听起来挺像闭包的)&/li&&li&求N的阶乘末尾有多少个0,在线码代码或讲思路(求因数,统计2、5、10的个数)&/li&&li&给一个小于一百万的数,求和它最接近的 Fibo 数(我的思路是简单地求数列然后求差,面试官说 Fibo 数超过34个以后就超过一百万,可以把34个数都求出来然后研究状态转换……)&/li&&/ul&&p&一面面试官给我的评价:“基础扎实,逻辑还可以,但代码风格不太好(ES5和ES6混用,封装不好),未来发展方向不明确。可以进入第二轮面试。”&/p&&p&二面&/p&&p&二面面试官说话不太清晰且声音太小,对面环境也比较嘈杂(好像也在面试?),这点不如头条。头条是在独立的小隔间里。&/p&&ul&&li&CSS布局( Grid 和 flex 都考且考察细致)&/li&&li&数组的随机排序(我蒙了个答案,好像还算对。&a href=&https://link.zhihu.com/?target=http%3A//www.jb51.net/article/81363.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&打乱数组&/a&)&/li&&li&JSON 对象的深度克隆(遍历递归,或者序列化和反序列化)&/li&&li&简述动画写法( setTimeout , requestAnimationFrame , CSS3 ……)&/li&&li&列举“传统”的异步(……这题啥意思?不会)&/li&&li&Node 的多线程,高并发,安全(我都不会……问后端大佬吧)&/li&&li&听说过 PWA 吗?(没听说过,不会……)&/li&&li&解释 event loop (听过,不太会)&/li&&li&服务端渲染,计算首屏和白屏时间(不太会……&a href=&https://link.zhihu.com/?target=http%3A//www.bubuko.com/infodetail-2265464.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&首屏白屏&/a&&/li&&li&服务器如何强制更新后的文件替代客户端缓存的文件(不太会……好像和MD5有关?)&/li&&/ul&&p&还有很多不太记得了,反正我都不会…………&/p&&p&二面面试官给我的评价:“二面failed。学习能力不错,反应快,知识的广度有,但缺乏深度,不够系统。建议研读V8引擎源码,Node源码,花半年时间。”原来我已经进步到可以看源码的程度啦?虽然挂了,但听面试官这么说还有点开心~&/p&&h2&小结&/h2&&p&看到这里,相信读者也已经感觉到,许多面试题是有套路和重点难点的。我分享几篇总结这些套路的文章。&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//hpoenixf.com/%25E5%25A4%25A7%25E5%258E%%E7%25AB%25AF%25E9%259D%25A2%25E8%25AF%%E4%25BB%%25B9%2588.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&大厂前端面试考什么?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//hpoenixf.com/%25E5%E7%25AB%25AF%25E8%25BF%259B%25E9%%25E7%25B3%25BB%25E5%-%25E7%259B%25AE%25E5%25BD%2595.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端进阶系列&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/29890%3Ftype%3D2%26order%3D0%26pos%3D16%26page%3D7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这可能不只是一篇面经&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//www.infoq.com/cn/articles/react-dom-diff& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&diff算法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//www.cnblogs.com/syfwhu/p/4431143.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&最后一面-HR面&/a&&/li&&/ul&&p&都是前辈们留下的宝贵经验,值得好好吸收。&/p&&p&我的找实习总结就写到这里,感谢大家阅读。祝愿大家能找到满意的实习。&/p&&p&推荐自己的另一篇文章~&/p&&a href=&https://zhuanlan.zhihu.com/p/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&凤鸣于岐:前端学习建议 | 书籍和资料推荐&/a&&p&&/p&
4月19日,本人拿到了网易的口头offer。已经决定去网易-杭研院实习。精神紧绷了一个半月,现在可以好好放松了~接下来与大家分享一下本人找实习的经验。虽说是找实习,相关经验在秋招时也应该是适用的。以下经验主要偏向技术岗,且更多地侧重于前端。简历分享…
&p&2018春招进行中,牛妹帮助大家整理了一些&b&前端岗&/b&面经,希望对求职的同学以及有志于从事前端工作的同学有所帮助,后续还会持续更新哦~&/p&&p&&br&&/p&&p&【1】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/75093%3Ftype%3D2%26order%3D3%26pos%3D39%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端实习生处女面一面,已凉!_笔经面经_牛客网&/a&&/p&&p&【2】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74968%3Ftype%3D2%26order%3D3%26pos%3D54%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯面试前端面经_笔经面经_牛客网&/a&&/p&&p&【3】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74956%3Ftype%3D2%26order%3D3%26pos%3D57%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端 依图科技 已拿offer 回馈牛客&/a&&/p&&p&【4】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74936%3Ftype%3D2%26order%3D3%26pos%3D60%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 今日头条 美团(已拿到) CVTE 前端面经&/a&&/p&&p&【5】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74929%3Ftype%3D2%26order%3D3%26pos%3D62%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东前端面经(123面详细)_笔经面经_牛客网&/a&&/p&&p&【6】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74890%3Ftype%3D2%26order%3D3%26pos%3D67%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里19届前端实习面经(更新至交叉面)_笔经面经_牛客网&/a&&/p&&p&【7】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74844%3Ftype%3D2%26order%3D3%26pos%3D73%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&4.15网易音乐事业部前端实习面试_笔经面经_牛客网&/a&&/p&&p&【8】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74838%3Ftype%3D2%26order%3D3%26pos%3D75%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里前端实习4轮技术面+hr面面经总结,求offer!_笔经面经_牛客网&/a&&/p&&p&【9】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74836%3Ftype%3D2%26order%3D3%26pos%3D76%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&暂时告别牛客,回馈社区。百度、美团、搜狐等前端面经集合_笔经面经_牛客网&/a&&/p&&p&【10】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74778%3Ftype%3D2%26order%3D3%26pos%3D88%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东前端面试经验,为明天攒人品_笔经面经_牛客网&/a&&/p&&p&【11】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74752%3Ftype%3D2%26order%3D3%26pos%3D94%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东二面(前端)已凉~_笔经面经_牛客网&/a&&/p&&p&【12】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74646%3Ftype%3D2%26order%3D3%26pos%3D106%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东二面面经 前端 上海_笔经面经_牛客网&/a&&/p&&p&【13】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74626%3Ftype%3D2%26order%3D3%26pos%3D110%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&本弱鸡的2018找春招实习经历(前端)_笔经面经_牛客网&/a&&/p&&p&【14】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74412%3Ftype%3D2%26order%3D3%26pos%3D133%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东前端一面_笔经面经_牛客网&/a&&/p&&p&【15】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74398%3Ftype%3D2%26order%3D3%26pos%3D137%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&京东前端面经(一面)_笔经面经_牛客网&/a&&/p&&p&【16】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74112%3Ftype%3D2%26order%3D3%26pos%3D177%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯HR面,前端_笔经面经_牛客网&/a&&/p&&p&【17】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74084%3Ftype%3D2%26order%3D3%26pos%3D183%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&回馈牛客,小米前端一二面_笔经面经_牛客网&/a&&/p&&p&【18】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/74001%3Ftype%3D2%26order%3D3%26pos%3D195%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 前端 一面二面面筋_笔经面经_牛客网&/a&&/p&&p&【19】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73903%3Ftype%3D2%26order%3D3%26pos%3D199%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&依图移动端实习生一面面经_笔经面经_牛客网&/a&&/p&&p&【20】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73795%3Ftype%3D2%26order%3D3%26pos%3D210%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里前端一面面经_笔经面经_牛客网&/a&&/p&&p&【21】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73725%3Ftype%3D2%26order%3D3%26pos%3D215%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小米电话面,前端_笔经面经_牛客网&/a&&/p&&p&【22】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73652%3Ftype%3D2%26order%3D3%26pos%3D220%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&唯品会前端春招面经_笔经面经_牛客网&/a&&/p&&p&【23】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73342%3Ftype%3D2%26order%3D3%26pos%3D243%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端现场面(广州)_笔经面经_牛客网&/a&&/p&&p&【24】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73668%3Ftype%3D2%26order%3D3%26pos%3D219%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端复面面经_笔经面经_牛客网&/a&&/p&&p&【25】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73496%3Ftype%3D2%26order%3D3%26pos%3D237%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&成都腾讯前端实习现场面_笔经面经_牛客网&/a&&/p&&p&【26】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73322%3Ftype%3D2%26order%3D3%26pos%3D245%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&可能没什么用的腾讯前端面经_笔经面经_牛客网&/a&&/p&&p&【27】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72969%3Ftype%3D2%26order%3D3%26pos%3D269%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易互联网前端一面_笔经面经_牛客网&/a&&/p&&p&【28】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/73148%3Ftype%3D2%26order%3D3%26pos%3D258%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小米前端笔试编程题_笔经面经_牛客网&/a&&/p&&p&【29】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72763%3Ftype%3D2%26order%3D3%26pos%3D283%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里3面和腾讯1面(前端实习)_笔经面经_牛客网&/a&&/p&&p&【30】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72658%3Ftype%3D2%26order%3D3%26pos%3D287%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JS刷题总结_笔经面经_牛客网&/a&&/p&&p&【31】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72601%3Ftype%3D2%26order%3D3%26pos%3D295%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&链家2018春招笔试题解(前端)_笔经面经_牛客网&/a&&/p&&p&【32】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72462%3Ftype%3D2%26order%3D3%26pos%3D301%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&360前端面试面经_笔经面经_牛客网&/a&&/p&&p&【33】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72579%3Ftype%3D2%26order%3D3%26pos%3D297%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&4.5 腾讯前端笔试编程题_笔经面经_牛客网&/a&&/p&&p&【34】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/72524%3Ftype%3D2%26order%3D3%26pos%3D300%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&今日头条前端实习一面 感觉凉了_笔经面经_牛客网&/a&&/p&&p&【35】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71967%3Ftype%3D2%26order%3D3%26pos%3D337%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&快手前端一面_笔经面经_牛客网&/a&&/p&&p&【36】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71899%3Ftype%3D2%26order%3D3%26pos%3D346%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&今日头条前端实习生面经_笔经面经_牛客网&/a&&/p&&p&【37】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71752%3Ftype%3D2%26order%3D3%26pos%3D366%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网易前端一面_笔经面经_牛客网&/a&&/p&&p&【38】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71322%3Ftype%3D2%26order%3D3%26pos%3D410%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端一面_笔经面经_牛客网&/a&&/p&&p&【39】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71435%3Ftype%3D2%26order%3D3%26pos%3D397%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&依图科技前端面经_笔经面经_牛客网&/a&&/p&&p&【40】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71367%3Ftype%3D2%26order%3D3%26pos%3D403%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里 蚂蚁金服 【前端实习】 三面+四面 面经&/a&&/p&&p&【41】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70350%3Ftype%3D2%26order%3D3%26pos%3D511%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&美团前端笔试总结_笔经面经_牛客网&/a&&/p&&p&【42】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71170%3Ftype%3D2%26order%3D3%26pos%3D423%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&携程2018秋招笔试题解(前端)_笔经面经_牛客网&/a&&/p&&p&【43】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/71178%3Ftype%3D2%26order%3D3%26pos%3D422%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&携程前端笔试编程题解()_笔经面经_牛客网&/a&&/p&&p&【44】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70919%3Ftype%3D2%26order%3D3%26pos%3D458%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&好未来前端岗视频面_笔经面经_牛客网&/a&&/p&&p&【45】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70665%3Ftype%3D2%26order%3D3%26pos%3D485%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&酷家乐前端实习一面_笔经面经_牛客网&/a&&/p&&p&【46】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70933%3Ftype%3D2%26order%3D3%26pos%3D455%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯面试(不知是一面还是二面,但是是第二次面)_笔经面经_牛客网&/a&&/p&&p&【47】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70583%3Ftype%3D2%26order%3D3%26pos%3D493%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CVTE前端问题总结,附依图一面_笔经面经_牛客网&/a&&/p&&p&【48】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70469%3Ftype%3D2%26order%3D3%26pos%3D503%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&美团点评的一次面试(前端工程师-实习)_笔经面经_牛客网&/a&&/p&&p&【49】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70265%3Ftype%3D2%26order%3D3%26pos%3D517%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端一面面经_笔经面经_牛客网&/a&&/p&&p&【50】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70536%3Ftype%3D2%26order%3D3%26pos%3D501%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&链家前端面试-3月24日_笔经面经_牛客网&/a&&/p&&p&【51】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70210%3Ftype%3D2%26order%3D3%26pos%3D522%26page%3D0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&阿里 蚂蚁金服【前端实习】二面面经&/a&&/p&&p&【52】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69856%3Ftype%3D2%26order%3D3%26pos%3D550%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯前端暑期实习一面面经3.22_笔经面经_牛客网&/a&&/p&&p&【53】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/70041%3Ftype%3D2%26order%3D3%26pos%3D535%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&美团2018春招前端笔试选择题_笔经面经_牛客网&/a&&/p&&p&【54】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69864%3Ftype%3D2%26order%3D3%26pos%3D549%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&今日头条前端实习面经(附实习微信群)_笔经面经_牛客网&/a&&/p&&p&【55】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69851%3Ftype%3D2%26order%3D3%26pos%3D552%26page%3D2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯暑期实习三面面经_笔经面经_牛客网&/a&&/p&&p&【56】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69834%3Ftype%3D2%26order%3D3%26pos%3D555%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&2018今日头条前端实习面经_笔经面经_牛客网&/a&&/p&&p&【57】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69850%3Ftype%3D2%26order%3D3%26pos%3D553%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&今日头条 19实习 前端面经_笔经面经_牛客网&/a&&/p&&p&【58】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69708%3Ftype%3D2%26order%3D3%26pos%3D572%26page%3D0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端 实习 阿里天猫内推部门 一面分享&/a&&/p&&p&【59】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69728%3Ftype%3D2%26order%3D3%26pos%3D571%26page%3D1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&酷家乐一面,前端岗_笔经面经_牛客网&/a&&/p&&p&【60】&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/69537%3Ftype%3D2%26order%3D3%26pos%3D595%26page%3D1& class=& wrap external& target=&_blank& rel=&

我要回帖

更多关于 阿里高级客户经理是p几 的文章

 

随机推荐