Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端架构师亲述:前端工程师成长之路的 N 问 及 回答 #33

Open
biaochenxuying opened this issue Jun 21, 2019 · 2 comments
Assignees
Labels
JavaScript JavaScript 相关知识点 vue.js vue 相关知识点

Comments

@biaochenxuying
Copy link
Owner

biaochenxuying commented Jun 21, 2019

问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度,毕业于北京科技大学。

1. 前端开发

问题

大佬,能分享下学习路径么,感觉天天忙着开发业务,但是能力好像没有太大提升,不知道该怎么充实自己 ?

解答

  • 业务开发有没有痛点,能不能通过技术的手段解决 ?�
  • 平时开发业务用到了哪些技术栈和周边的生态链,我是否对他们熟练掌握了,对他们的实现原理呢 ?
  • 平时开发遇到了 bug,调试了很久,能不能提升自己快速定位 bug,解决问题的能力 ?
  • 如果上面分配了一个需求,没有现成的轮子可以用,我是否可以快速造一个出来 ?
  • 如果使用第三方轮子出现问题,我能否能找到合适的解决方案,甚至参与共建 ?
  • 以上提到了这些问题,不妨问问自己,如果没有做的足够好,都是你可以提升的方向。

问题

我想知道你为什么对前端这个职业(行业),总是保持一颗好奇心,每天都不停探索,每天保持学习进步,你是怎样坚持下来的呢 ?

就像医院里的医生(教授/专家),在这个行业刻苦钻研了大半辈子,怎样保持每天学习的这种精神 ?探索精神 ?并且长久坚持下去 ?为社会做出了非常多的贡献。

我知道你是以怎样的决心和毅力保持每天学习,不停探索前进 ?

解答

  • 主要是兴趣驱动吧,对技术保持热情和好奇。
  • 另外就是成就感,当我 get 到某个新技能,解决了某个复杂的问题的时候会非常有成就感。
  • 工作前几年的时间是非常关键的,是成长空间大且精力最旺盛的阶段,一定要在这个阶段多学知识。
  • 学习是无止境的,尤大说过一句话我印象非常深刻 ”做脑力工作的人,往往钻研得越深,越发现自己的渺小和无知“ ,与君共勉。

问题

最近拿到了滴滴出行的实习生 offer,我想问一下您对实习生 (或者说初步踏入 IT 行业的学生) 在融入部门和提升上有什么建议 ?

解答

  • 实习生一定要多做业务,工作要积极主动,争取转正机会。
  • 另外,非常推荐去我之前的团队,现在是苗老板负责,你可以私下联系他喔~

问题

感觉自己的 js 基础很薄弱啊,我想问如果想进大厂你指的基础具体一点到底指啥啊,我是一个非科班出身的求解呀 ?

解答

  • 如果是应届生,大厂关注的是你的基础和潜力。
  • 如果是社招,大厂会关注你的经验和能力,以及潜力。
  • 如果你有心仪的大厂,不妨去看一下他们的招聘要求,以及关注一下他们对外输出的东西。
  • 非科班是一个劣势,那么你就务必要花时间去补一些计算机相关的理论知识,简历有需要亮点,最好能有一些技术输出,比如很多人会做博客、写系列文章、做有趣的项目等等。
  • 另外,最好的时机是等大厂缺人,招人名额多的时候去投简历,也可以多认识一些找内推机会。
  • 最后,一切的一切,都离不开硬实力,所以优先提升自己的硬实力,多花时间学习。

问题

黄轶老师,你对于在项目中推行 BFF 模式有什么见解吗 ?
希望你可以回答的略广一点,非常期待您的回答。

解答

  • BFF 在服务聚合上还是很有优势的吧,特别是微服务特别火的今天,前端只需要关注所需要的数据,不用关注底层提供这些数据的服务。我在滴滴和 Zoom 的时候都是这么玩的~

问题

请问一下,你做兼职的话,一般是关注那些方面呢 ? 还有比较建议在哪些渠道寻找兼职做呢 ?

解答

  • 主要关注的是性价比,因为牺牲了自己的业余时间,要么是多挣钱(很难),要么是提升能力。
  • 最好是熟人介绍,没有的话可以去水木论坛找找看(我曾经找到过),其它渠道没有经验,我就不推荐了。

问题

黄老师,想问下你对于前后端数据交互的最佳实践的看法,ajax ?axios ?等等,有没有系统学习的推荐。

解答

  • 前后端交互通常有 HTTP 和 WebSocket 2 种通讯方式,建议你首先系统的学习一下 HTTP 相关知识,推荐看 《HTTP 权威指南》或者是 《图解 HTTP》。
  • 另外你提到的 axios 只是对 Ajax 的封装,如果你想了解它的实现原理,正好前阵子我在慕课网做了一门课程《基于TypeScript从零重构axios》,学一遍后你会对 axios 的实现细节会了如执掌,同时也可以巩固不少 HTTP 相关的知识。

问题

黄老师,我现在刚入门前端,能力有很大的欠缺,想找一些视频学习,现在主要用到的是 Vue 框架,有什么视频可以推荐给我吗 ?

解答

  • 这里不打广告都不行了,可以关注我在慕课网的实战课程喔~ Vue 三步曲,入门 - 进阶的都有。
  • 不过除了看视频学习,我也建议你务必多去读官方文档,敲一敲上面的示例。
    最后附上链接 http://www.imooc.com/t/3017249

问题

我目前是一名后端工程师,工作快五年了。刚工作时,认为前端只是写页面,写交互,技能项要求少。
我自己也是比较喜欢前端,因为做后端的也会接触到前端东西,所以暂时没有转到前端。
工作之中也在加强前端基础技术技能。慢慢发现前端并不是刚开始认为的那样,现在的前端能应用于各个客户端,服务端,以及组件化,模块化,激发了我更想学习前端的欲望,于是我利用空闲时间学习更多前端相关技术。
现在流行前后端分离,后端只做接口,完全不会接触我喜欢的前端部分,我喜欢技术,不喜欢业务,但是业务也很重要,在我的经历中一个项目完成上线后,基本就是后端解决运营或用户使用中出现的问题,因此正在考虑转专职前端。
这几年工作中写过接口,写过 h5 嵌入 App,写过前后不分离的项目,也写过前后分离的项目,想问问黄大仙站在前端的角度有什么看法 ?

解答

  • 其实你有丰富的后端经验,不妨就直接转全栈,并不一定要做专职的前端。
  • 即使是前后端分离的开发方式,也可以一个人完成 2 端的开发。
  • 而且越往上走,如果前后端都精通的人,可以走的更远。
  • 所以你往前端方向走是好事,不过后端也不要扔下。
  • 后端也不仅仅是 curd,当业务复杂,用户规模大的时候,面临的挑战比前端要大的多,如果你所在的公司没这方面的挑战,建议去大厂感受一下。

问题

关于前端开发,如何完善自己的工作流呢,目前的工作流十分原始,流程是明确需求-项目开发(开发环境/正式环境)-测试-上线。
如果在大厂面试,工作流这块比较吃亏。像黄老这种包括了项目初始化、本地开发、联调、测试、上线等各个环节,是如何探索出来的呢 ?

解答

  • 这些都是在大厂训练出来的,其实程序员更多的应该去思考一个需求从产生 - 落地的各个环节。
  • 现在大部分人能做到从一个项目的开发-上线各个流程的属性,其实在 Zoom 我们会从产品的设计开始,自己会去设计产品应该如何实现,用户需要什么样的功能,从 owner 的角度去设计和开发,并负责产品的测试和上线,这才是工程师应该有的素质。
  • 所以即使在一个有很多产品经理的公司,工程师也可以多参与产品的设计和讨论喔。

问题

大佬,对于 flutter 持什么看法,以后会成为全端的解决方案吗 ?特别是 flutter 转 web 之后 。

解答

  • 肯定不会替代 Web 开发的,至于双端的应用,可以关注一些主做移动端的公司,比如滴滴、阿里、腾讯、头条等大厂在这方面的应用实践吧。

问题

中级怎么突破到高级前端工程师呢? 自己尝试写框架和库吗 ?

解答

  • 中级前端基本上就是能够独立开发,满足基本功能需求,质量一般,对于复杂业务需求实现吃力,需要指导,对标阿里 p5。
  • 高级前具备独挡一面的能力,能够高质量完成工作,胜任复杂业务需求开发,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效,对标阿里 p6。
  • 其实级别的突破,侧面反馈就是能力的成长,那怎么提升能力呢?既要会偷懒,又要勤奋。
    这里说的“偷懒”,并不是说少做需求,而是从业务开发中多去思考和总结,学会抽象,学会复用代码,减少重复的劳动。学会使用工具来帮我们解决人肉的问题。
  • 举个例子,前端最近非常火热的编程思想就是模块化、组件化,本质上都是为了复用代码,提升代码的可维护性,比如我们是不是需要开发通用组件库、JS库等等,来辅助我们的业务代码。还有几乎现在所有项目都会用构建化工具帮助我们开发,最有代表性的就是 webpack,它能帮我初始化代码,调试,编译打包等等,极大的帮助我们节约了开发时间,我们是不是多花点时间去研究它的配置,甚至是它的源码。
  • 所以,去花时间学习这些编程思想,掌握这些工具,都能够很好的帮助我们提升技术。除了会“偷懒”之外,我们也要勤奋,虽然业务忙,但往往也不会忙到8小时工作时间都在写代码的地步吧。
  • 如果我们把每天在群里斗图、刷微信朋友圈等等的时间节约下来学习技术的话,相信只要坚持,技术一定会提升比别人快,特别是初级的同学,你们的进步空间还很大,一定要多花时间在学习,而不是浪费时间问 “我工作 1-3 年,出去要多少钱合适” 这类的问题,薪资一定是和能力匹配的。
  • 至于学习的方向,只要和你工作相关,你没有掌握透彻的技术,都是可以的。

问题

学习到了一个进度学不进去了,静不下心看书。想问问大佬有没有遇到类似的情况,有什么调解方法吗 ?谢谢~

解答

  • 学习学不下去的时候,不妨做一些放松自己的事情,然后在状态好的时候再回过头去看喔~

问题

Node.js 对于前端是必备的么,但目前公司并没有应用场景, 学了用不上,就忘了。

解答

  • Node.js 至少在工具方面的表现还是很不错的,比如一些构建工具、脚手架工具都是通过 Node.js 写的,可以通过学习他们的源码去了解 Node.js。
  • 另外一些不错的 Node.js 后端框架,比如 express,也可以去了解一下,因为通常使用 webpack 起的内置 server 就是使用了 express。

问题

作为一名初级前端工程师,前路很迷茫,不知道要怎么学习提升,老师,您可以给点建议吗 ?

解答

  • 首先是基础,这里不仅仅是前端基础,还有计算机相关的基础知识(数据结构、网络),基础务必要打牢。可以通过反复看书、coding 练习的方式。
  • 其次是项目开发,你工作中用到技术栈,一定要熟练掌握,可以通过官方文档入门,通过工作中的 coding 巩固,并可以去看一些高质量的进阶教学视频课程做提升(这里有广告嫌疑)。
  • 以上是入门-中级的阶段主要做的事情,其实就是不断花时间学习 +coding,想办法让自己先成为熟练工,初级可提升的空间还是很大的。
  • 中级-高级,下面有一个类似的问题喔。

问题

黄老师,请问一下中级前端开发和高级前端开发分别需要具备什么样的能力素质 ?

解答

  • 中级前端基本上就是能够独立开发,满足基本功能需求,质量一般,对于复杂业务需求实现吃力,需要指导,对标阿里 p5。
  • 高级前具备独挡一面的能力,能够高质量完成工作,胜任复杂业务需求开发,能把握一个系统/团队的整体实现,在推行过程中能提炼新的方法或方案,或对现有方案提出改进建议并被证明有效,对标阿里 p6。

问题

node ts 确实自己都在玩,ts 是跟你课程面学的,但有的面试官就反问我,node ts 并没有在真正生产环境玩过还敢拿出来说会, 就把我拒绝了,这些东西确实会,只是之前公司没有机会发挥,但我不知该如何应付这样的面试官,希望你解答。很多东西也需要遇到一个好团队才能发挥,但现在没有这个机会。

解答

  • 其实不妨把你自己玩的东西形成一些作品,发布到 GitHub 上,可以是文章,也可以是项目。
  • 我之前面试一个携程的小朋友,他们的技术栈是 React,但是他自己研究过 Vue.js 实现并写了一个 Mini 版本的 Vue 实现,这样给我的感觉就很好。
  • 所以虽然有些技术没有在生产环境中用过,但是你通过自学掌握了并且折腾出一些成果,我会认为你是一个喜欢技术,爱折腾的人。
  • 如果说你这么做了面试官依然不认可你,那说明你们的价值观不符,那么面试不通过也没什么好遗憾的,面试本来也是一个双向选择的过程~

问题

对于一个中大型的前端项目来说,各种组件如何分类更合理呢 ?比如基础组件、业务组件。

解答

  • 通常分为基础组件、业务组件、视图组件,基础组件通常都会在组件库里解决了。

问题

大佬,我现在就职一家比较大的公司,做前端,外包。每天平均 9 10 点下班,平常学习的时间感觉太少了,想补基础知识。
只能通勤时间看看电子书,回家了再敲一会代码。有时候,11 点,12 点。有点干下去了,有点迷茫,求大佬指导。

解答

  • 你属于人力外包还是项目外包,如果是人力外包到大公司,就想办法转正。
  • 另外你需要评估一下你每天工作这么长时间是否有提升,还是一味地重复劳动。
  • 如果有提升的话,那还是可以继续做,如果没什么提升,并且也没什么好机会提升的话,那可以考虑出去看看机会了~

问题

毕业三年,第一年在一个小公司,第二年在一个大公司的外包到现在。
现在的状态是这样的,公司有老项目(13 年一直用到现在的)需要维护,也有新项目( vue + 微服务),总之我的工作上主要在维护那些老项目上,实际上工作上用的时间不多,每天有一定量的空闲时间,对应的工资也上不来,一年了也没有调薪,由于老项目的重要性自然是日益下降的,未来也不像是多能期待。
新项目实际上我也接触过,还做过一些脚手架整体升级一类的工作,所以现在工作中能带来的学习方向和提升实在不多,于是我现在在学习一些基础性的东西( http 协议,数据结构与算法,网络硬件,甚至计算机组成)。
由于我是转行来的这些东西没有系统的学过,现在捡起来说有用也有用,但短期看来带不来什么明显的改变,我的问题就是,如果从现实出发,之后的岁月应该怎么规划合适,短期来说有什么能带来收益(比如方便面试 ?)的学习方向 ?

解答

  • 短期如果是面向面试学习的话,我认为一方面你需要准备面试,可以看一下掘金那本面试相关的小册,查漏补缺。
  • 一方面需要好好地对你现有的工作总结,即使看上去技术含量不太高的工作,是不是也会有一些亮点,让面试官看到你对工作的思考。
  • 长期的话,如果想让自己的天花板变高,还是需要学习计算机的一些基础知识的。
  • 工作中如果遇到了相关知识不明白的,就认真去学习,直到弄明白为止。

问题

我大学也是 .net 方向,现在大三,已经转向前端,基础知识已了解,准备学习 vue。我现在有些焦虑,即将秋招,可是我还没有拿的出手的项目,怎么办啊 ?求解。

解答

  • 校招主要看重的是候选人的基础和潜力,如果有实习经验更佳。
  • 建议你这段时间就认真备战秋招吧,先把基础好好学习,除了前端知识外,数据结构算法也是考点,刷刷题吧。
  • 至于项目的话,如果你有时间能高仿个 xx,并在掘金上发布文章 ,也可能是一个亮点吧。
  • 去年有个同学就通过这个方式获得滴滴的面试,不过可惜基础略薄弱。所以重点还是先搞基础吧~

问题

我参加了滴滴的校招,但遗憾面试没有通过,后来我去了一个创业公司到现在也快一年了,负责开发公司的 webapp( Cordova + vue )和官网,node 和 mysql 对于正常的开发都能熟练使用,后台接口和前后端联调也要我负责,但是我非常想去大厂和优秀的人在一起,提升自己,不过我投过几家大厂要求 1 到 3 年经验却没有任何消息,所以我现在对于未来有点迷茫了,因为我真的真的想去大厂,现在的我该怎么办,是不是我太急躁了 ?

解答

  • 不用太急,你也只工作一年而已,这个过程你可以提升的东西有很多,先多做业务,提升技术。
  • 等 2-3 年后,再尝试去投大厂,但你的简历一定要有亮点,并且基础足够扎实,相信以后机会还是会有很多的,加油~

问题

现在多端统一开发框架这么多,有没有学习的建议 ?

解答

  • 首先思考一下你的业务是否需要多端框架,比如 App、h5 和小程序需要一样的设计吗,答案是很多情况下是不一样的,从产品设计上来说,App 通常是最完善的功能,h5 保留主要功能,而小程序多半是一个快速入口。
  • 其次目前多端框架多半不成熟,如果是核心业务,务必谨慎使用,很多情况下,大公司也会在一些偏运营展示的简单业务中使用这类多端框架。
  • 最后,一定要做技术选型,那么就从技术栈、框架维护力度,以及社区的活跃度几个方向权衡吧。

问题

黄老师,请问应该怎么培养自己的架构思维呢 ?

解答

  • 这个需要长期的经验积累的,说几个关键词吧,借鉴、思考、总结,交流。
  • 借鉴是站在巨人的肩膀上,比如可以学习张云龙大佬的博客: https://github.com/fouber/blog
  • 思考是多去想我怎么设计才是最合理,能否解决当前业务的痛点,如何做到开发时对开发者友好,上线时对用户友好。
  • 总结就是每次经验用文字记录下来,积累和沉淀。这个时候也可以多思考思考,有没有哪些地方是不合理的,有没有更好的方案。
  • 交流就是把一些案例分享出去,和大家一起探讨和交流,碰撞一些不一样的思维火花。

问题

前端的职业发展,怎么建立良好的知识体系呢 ?

解答

  • 深度优先,不忘发展广度,前端相关的知识体系可参考朴灵大佬这幅图:https://github.com/JacksonTian/fks
  • 当然,这幅图只是一个参考,你的知识体系还是要通过工作建立起来的,所以要以你的工作为准,深入学习周边的工具链技术,学习过程中要多思考,勤总结,对于每个知识点,最好是能学精学透,切忌囫囵吞枣。
  • 对于些热门的技术,不要盲目追新,如果工作用不到,除非很感兴趣,否则了解关注即可。

问题

老师好,我是一名工作一年的前端菜鸟,目前,有点迷茫,不知道以后自己的生涯规划朝那个方向发展,横行还是纵向,求教 ?

解答

  • 对于初入行我的建议都是多做业务,多提升技术,等到 2-3 年,再考虑之后的发展方向。
  • 关于职业生涯规划,我下面有回答喔。

问题

黄老,这几年的前端趋势是 mvvm、组件化、工程化以及 typescript,您觉得接下来的近几年前端会向哪个方向重点发展呢 ?目前前端部分还有什么痛点需要解决呢 ?期待您的解答,感谢!

解答

  • 前端往深入做通常是几个方向,复杂应用(比如 web doc 这种规模的)、数据可视化(2D、3D)、前端工程化、架构。
  • 痛点如目前非常火的多端框架,本身是值得探索的一个方向,但是由于各个端的标准和实现不一致,导致目前的状态是调试困难,坑多。
  • 另外,感兴趣的话也可以把视野放更广一些,比如可以关注 AI,入门机器学习等等。

问题

你以前刚接触 web 前端时,每天看几本书 ?通过啥方式提升 ?

解答

  • 我看的前端书并不多,也远达不到一天几本,经典的红宝书和犀牛书我有反复的看过,前期基本就是一个编码 - 看书 - 编码 - 看书的节奏。
  • 另外,我也比较推荐看一下广度相关的书籍,比如《http 权威指南》、《精通正则表达式》、《Head First 设计模式》《代码整洁之道》 等。

问题

大佬,请问下公司就我一个前端,没有经验比较丰富的人可以交流学习,依靠自己学习可以从初级进阶到中级前端工程师吗 ?

解答

  • 现在学习资源比之前丰富太多了,除了看一些经典书籍,还有一些很不错的教学视频可以去学习,讲师很多也是一线互联网公司的大佬,投资自己总不会错的。
  • 也可以适当参加一些技术会议,认识一些人。
  • 另外,对于在小公司如何做技术提升,可以参考我下面的一些回答。
  • 当然,当你能力提升到一定水平后,能进大公司就去大公司。大公司相对来说,业务挑战更大,也更加规范,是一个非常不错的镀金机会。

问题

老师怎么看待未来桌面应用,例如 electron 的发展前景 ?

解答

  • electron 让前端工程师开发桌面应用更加容易,但它本身还是桌面应用,需要安装,大部分企业还是会更倾向于 web 的方式吧。
  • 另外,我觉得 PWA 可以多关注喔。

问题

大佬,天天加班严重,忙于业务,还是基于老的框架,如何能提升自身 ?感觉很困惑 。

解答

  • 首先需要提升自己的开发效率,思考一下能不能抽象一些通用的模块和组件等,开发过程中有没有痛点,有没有能通过工具而不用人解决的问题,如果你能发现一些问题并通过技术手段解决,那么已经是一个提升了。
  • 其次,老的框架是否需要升级,如需要,如何平滑升级,如何做到升级对现有业务影响最小,如果影响很大,思考一下现有项目的组织方式是否合理。如果把上面这些问题都想清楚,并解决,也是一个提升了。
  • 再次,我每天做的业务,接触到的一些工具链和技术栈,我是否已经对它们的原理深入掌握了,出现 Bug 和坑我能否快速定位和解决,如果现有轮子不能满足需求的时候,我能不能快速造一个出来,做了这些又是一个提升。
  • 最后,如果觉得公司对技术重视程度不够,也可以考虑换一个坑。

问题

前端的架构师一般都做些什么呢 ?

解答

  • 主要是分析当前业务的痛点和目标,结合场景去提出一套合理的解决方案。
  • 其中涉及到编码的部分包括不限于编写一些工具插件、脚手架、甚至是框架。
  • 前端架构是没有银弹的,不同场景的架构方案也往往是不同的。

2. 性能优化

问题

性能优化有什么推荐的书吗?

解答

  • 《高性能网站建设进阶指南》

3. Vue.js

问题

你好,老师,前端使用 vue 技术栈的,有哪些提升开发效率的经验 ?

解答

  • 对 Vue.js 熟练掌握,可以方便你快速开发。
  • 深入了解 Vue.js 的原理,对于快速定位 bug,了解它的职责边界有很大帮助。
  • 另外,尽量使用第三方成熟库,避免重复造轮子。

问题

培训结束一年,三大框架只了解 vue,目前准备跳槽,但是觉得自己 js 基础也不扎实,vue 也没有特别的熟练,react 更是完全都不了解,想问下接下来的学习路径大概是什么 ?

解答

  • 查漏补缺吧,知道自己什么不足,就花时间去学习。
  • Vue.js 技术栈方向的可以考虑去学习我的课程,不过会有一定难度,也是需要你花时间和耐心去学的。
  • 另外就是在工作中学习和成长了,如果是一年经验,还是多做业务,在业务中多思考和总结,使用 Vue 就先把 Vue 用熟,接下来研究其原理实现,学透。
  • 之后有需要再学 React、Angular 都比较容易了。
  • 总之前期还是先让自己成为一名熟练工,之后再去做一些有挑战的事情。

问题

黄轶老师,vue.js 源码都跟着您学完了,另外还学过 ts,网络,基础的构建,接下来如果像往前端继续深造应该学什么呢,深入算法还是可以看看 webpack 源码 ?谢谢。

解答

  • 通常都是结合你工作中使用到的一些工具链,做深入的学习和研究。
  • 另外,你已经学习了这么多东西,可以尝试一下学以致用,比如用 ts 重构一些项目,给一些基础库和组件编写测试等等。
  • 学习了 Vue 源码,可以尝试去编写一些自定义指令、插件等,或者是去研究社区 Vue 相关生态工具,做进一步研究和学习。

问题

Vue 应该如何进阶和提升呢 ? 总感觉自己处在一个业务仔的技术水平。

解答

    1. 做复杂的应用,思考不同场景在 Vue 下如何解决,并搞清楚 Vue 的边界职责(即 Vue 能做什么,不能做什么)。
    1. 了解一下周边生态工具如 vue-router、vuex 的实现原理,尝试去写一些简单的轮子,比如自定义指令、插件等。
    1. 阅读源码,了解 Vue 的核心原理实现。
    1. 参与 Vue 或者周边生态工具源码的共建。
  • 推荐学习工作中使用的工具链的源码,比如用了 webpack 就看研究一下 webpack,如果能顺手写一两个 webpack 插件就更好了。
  • 另外也可以多看一些经典的书籍和一些进阶的视频课程学习。

4. 个人成长

问题

在对未来规划的方面老师可否给一些参考性的建议 ?

解答

  • 一般建议只做 3 年内的规划,你作为一个应届生,前几年的目标就是多做业务,提升技术。
  • 关于职业规划,下面有个类似的问题喔。

问题

黄老师,你在滴滴的时候你是你们团队的第一个人 ,团队都是你组建起来的吗 ?可以分享一下组建团队的时候,你是怎样考虑自己要选择的队员 ,以及如何对他们的工作进行分配和评估的 ?

解答

  • 是第一人,不过后来没有做 leader,有些事情就不便这里说啦。
  • 我可以分享一下我后来做 WebApp 前端架构团队负责人是如何招人的,主要看候选人是不是符合团队的整体气质,比如我们团队是一个爱折腾技术,喜欢分享的团队,如果候选人在这方面突出,肯定是大大的加分项。
  • 工作分配主要是看他们每个人的情况,通常一个人会负责一块业务,同时也有相关的技术方向。
  • 会把一些基础的开发工作分配给应届生,因为他们是需要大量做业务的阶段,会把一些有挑战的工作分配给一些有潜力的同学,让他们快速成长。
  • 另外我们团队还有很优秀的同学,会主动承担和负责一些技术方向,这些我都非常鼓励的。

问题

小公司没有什么大公司背景,没有牛逼的项目,怎么走上前端架构之路 ?

解答

  • 首先,你需要能快速响应公司的业务需求,成为一名熟练工。
  • 然后可以思考开发过程中有没有什么痛点,能不能通过技术的手段,比如开发一些工具和插件来提升开发效率,在这个过程中,你可以去调研业内有没有成熟的轮子,轮子能不能满不满足你的需求,可以对轮子做研究甚至去做贡献,这个过程你会接触到学习到很多不曾接触到的知识,积累沉淀下来。
  • 另外,你也需要多花业余时间去学习,学习的方向是你工作相关的技术栈,学精学通。
  • 等自己有一定能力了,不妨去投简历到心仪的大公司,刚提到的这些经历可以成为简历的亮点。
  • 进入大公司后,你会遇到更多的挑战,业务规模、开发效率、性能、稳定性等等都会有更高的要求,在你不断去面对挑战,解决问题的过程中,你自然就会慢慢成长了。
  • 当然,进入大公司后你可能一开始也可能是一颗螺丝钉,但是你自己是可以多花时间,对自己接触到的工具链做研究,主动承担一些有挑战的任务,如果你的能力得到了认可,你就会有机会接触到更多有挑战的任务。能够分析出问题的痛点,提出一些适合场景且合理的解决方案,就是前端架构师通常做的事情。
  • 我以上说的,会有很多时候都需要跳出自己的舒适圈,并且需要付出更多的时间和努力,勤思考,多总结。所以,想成为前端架构师并不容易,加油吧~

5. 源码

问题

想请教一下大神在最初学习源码,组织开源时如何入门的,同时学习源码对于工作变现是不是有必然的联系,如何把控 ?

解答

  • 拿 Vue.js 为例吧,最初是兴趣驱动,好奇,后来是写文章,需要深入研究,再之后就是工作中陆陆续续地看,然后录源码课程前系统地看了好几遍。
  • 看源码的好处在于可以提升自己的内功,工作中遇到 bug 能快速定位和解决,充分了解它的职责边界等,另外现在面试似乎都喜欢问原理实现,熟悉源码肯定是一个加分项咯。

问题

框架熟悉哪几个比较合适呢 ?

解答

  • 通常优先精通工作中使用的框架,其它的了解即可。因为框架很多设计思想都是相通的,一旦精通一门,之后想学习其他框架非常容易。

问题

人到 30 ,该如何规划未来 5 年的时间 ?

解答

  • 职业规划我下面有回答,我个人认为这个时间还是应该做技术、写代码的时间。

问题

你认为如何做职业生涯规划呢 ?从前前端几年了,感觉处于瓶颈期,目前比较迷茫,目标不明确。

解答

  • 通常做技术往上 2 条路。
  • 1 :纯技术路线:架构师技术专家
  • 2 :技术+管理路线。
  • 先找准你的方向,如果对技术感兴趣,建议走 1 路线,否则就走 2。
  • 对于管理,我不是很擅长,我的经验就是首先你自己的技术要过硬,让底下人认可你,其次就是思考怎么发挥团队的最大价值,为团队小伙伴谋福利,关注他们的成长等。
  • 但是无论哪条路线,你的技术一定要好,而且我是不太建议工作个 5,6 年就转纯管理,时间太短,即使做了也不要落下技术。
  • 所以你目前还是需要精进技术,突破瓶颈通过就需要跳出舒适圈,解决一些需要你跳一下才能搞定的问题,最好是能找到你目前工作中的一些痛点,通过技术的手段去解决。
  • 我看你在字节跳动,也可以关注一下其他团队做的事情。
  • 我知道头条有一个非常牛逼的大佬-张袁炜,他是我在百度时期的导师,你也可以找他交流下。

6. 最后

以上问题及回答全部来自: 我是开源库 better-scroll 的作者 -- 黄轶,你有什么问题要问我 ?

以上问题及回答,对笔者很有帮助,相信以上回答对前端开发者也会有很大的启发,能解决很多人的迷茫,所以整理成了这篇文章。

@biaochenxuying biaochenxuying self-assigned this Jun 21, 2019
@biaochenxuying biaochenxuying added JavaScript JavaScript 相关知识点 vue.js vue 相关知识点 labels Jun 21, 2019
@biaochenxuying biaochenxuying added this to 前端工程师成长之路 in 前端工程师成长之路 Sep 27, 2019
@huanlirui
Copy link

good~

@xfLhm
Copy link

xfLhm commented Oct 25, 2023

good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JavaScript JavaScript 相关知识点 vue.js vue 相关知识点
Projects
JavaScript
Awaiting triage
Vue.js
Awaiting triage
前端工程师成长之路
前端工程师成长之路
Development

No branches or pull requests

3 participants