行业成长

如何准备面试

May 4, 2020
行业成长

我现在想换个工作,所以要准备面试,但是如何准备还没有完全想好。这里记录一下我想到的面试可能包含的内容。 面试应该分几个部分。首先是「基础知识点」的考察,这一步是必须的,来验验这个人是能否完成基本的编码工作,这步表现的可以的话应该能拿最低薪水。然后会「聊项目」,这步需要了解在项目中承担了哪些工作,在团队协作中扮演什么角色12,如果发现你的能力比较工资会多一些。最后是些人事相关的「非技术问题」,比如期望薪资、福利待遇、为什么离职等等。这几部分又该如何准备呢? 基础知识 # 基础知识可以分为几个部分:语言、框架/库、算法。这些网上都有很多资料,需要筛选出高质量的内容。 我打算现在 Github 上找到那个 最著名的前端面试题库,写一个博客记录我的回答。基础搞定以后要复习 React/Vue 原理,主要是「虚拟DOM」「Diff算法」「异步渲染」「Hook原理」,还有一些常用的 API 。另外有些浏览器相关的,比如重绘、缓存、CORS等。准备算法我要继续看《算法》这本书,掌握几个常用常考的算法。 这个过程中遇到的所有知识,把不会的记录到博客中,会的也要重新整理博客。这些博客像「错题本」一样用来巩固知识。 聊项目 # 这里需要仔细回想你在团队协作中扮演的角色。只是现实功能的话,就要对相关的技术熟一些。如果做了些代码设计工作,可能需要聊一下思路,遇到的问题等等。如果除了完成功能开发外还有其他贡献。比如发现A问题,你开发了B工具解决它,提高了工作效率/代码质量。发现了C问题,重新设计了D代码,将C问题重构/优化。或者为团队/公司解决了什么难题、帮助同事解决了什么问题。 这些工作都能体现你能力的高低,要「仔细」地想出来,并组织语言准备讲给面试官听。 拿我来说。我开发过工具提高工作效率,规范 Git 的使用方式。为项目补充文档,优化旧代码降低复杂度,设计组件优化代码,设计新的架构替换旧架构降低复杂度。帮助同事设计组件。为团队解决若干技术难题。制定并代码规范提高代码可读性,降低复杂度。 非技术问题 # 最重要的是薪资,如果前面聊的顺利,这里可以多说一点,因为公司一般都会还价。其他福利也很重要,有没有年终奖/项目奖金,会写在合同里吗,公积金交多少。 角色大概可以分为「初中高级」。承担的工作如果都是「实现xx功能」之类的,大概是初级的水平;如果功能、模块、组件这些能自己设计,大概能算中级水平;再高级点的工作,指导别人工作,搞一些工具、组件、方法提高工作效率,解决难题,这就算是高级了。 https://twitter.com/haoel/status/1253910100668022784?s=20 ↩︎ 初级:在给出指导和具体实施细节后,能独立按时按量(数量和质量)完成工作。 中级:不用指导和具体实施细节,能独立的按时按量(数量和质量)完成工作。 高级:解难题(能解决业务或技术难题),传帮带(能指导培养初中级人员),标准化(能沉淀出可复制或可复用的方法论或工作方式,提高生产效率) ↩︎

应该知道的

April 18, 2020
行业成长

Bad architecture causes more problems than bad code. You will spend more time thinking than coding. The best programmers are always building things. There’s always a better way. Code reviews by your peers will make all of you better. Fewer features for better code is always the right answer in the end. Don’t reinvent the wheel, library code is there to help. If it’s not tested, it doesn’t work. Code that’s hard to understand is hard to maintain. ...