知乎live 小爝《前端工程师如何不断自我提升阶》

live简介 https://www.zhihu.com/lives/775335499169542144

本次 Live 主要包括以下内容

  • 初、中级前端开发工程师在创业公司如何提升个人能力?
  • 初、中级前端开发工程师在成熟公司如何自我成长?
  • 团队与个人,到底是谁在起进步作用?
  • 我经历过的团队是如何影响个人的?
  • 没有参与过从 0 到 1 的前端项目怎么办?
  • 前端人员对后端需要掌握到什么程度?
  • 对于技术如何做到精益求精?
  • 未来的前端工程师应该如何发展,怎么看待前端不断更新的各种框架和技术概念?

前言

知乎“知识市场见面礼-精选live、电子书免费领”活动中抽取到本次live。

前期内容

  1. 抛个钻,前端技能点乱飞,如何理性学习运用新技术,还有就是如何定义前端,这样才更好朝前走

    前端范畴:网页开发、App开发、桌面应用;传统意义上的mvc中v层和c层都属于前端范畴,现在单页应用前端承接了试图和控制器的开发;共性都在于用户的行为和事件反射出来而进行的编程;界面-》工程化、流程化;目前学习js是最好的,可以开发app,react、react native 等;

  2. 我就想要最简单的循序渐进的技能树

    dw、html、css、table布局、div+css、jq、jq插件、原生js、原生js+dom+bom、yui、js和css的复用(原子性)、留言板功能(增删改查加后端sql)、代码模块、面向过程的编程代码、面向对象或者函数式编程、看个人职业发展方向(偏前端?偏后端?公司业务驱动?业务?)、归纳自己的组件库、不限于框架、mvvm和前端框架(到达中级或高级工程师)、工作中创新(最难的)

    《网站重构》 《dom编程艺术》 《ppk谈javascript》

  3. 求展示一个单面应用的关键处源码,带着分析一下架构、分层、和动态加载上的几个核心问题。简单比较一下常用的几种方案的应用场景

    七号说 会有dome 原生js 模块化

  4. 作了一年的菜鸟前端,公司这边项目比较老,只用过html css js和java,现在各种前端框架,模块化啥自学起来总觉得无从下手……

    俩个问题:(1)前端框架太多,如何选择;(2)模块化学起来无从下手

  5. 想问下大神,如何面试前端应聘者,如何选择适合自己团队的前端人员

    面试前端应聘者:专栏看;

    如何选择适合自己团队的前端人员:看公司规模(聪明、潜力、能不能干活儿、开箱即用),能独立完成业务,对编程的理解、要有自信、好奇心、有自己的思想

  6. 写了两个月js,然后公司让我去写微信后端。我在想按照公司这种哪里缺人把我往哪里塞的情况,我应该如何比较正常地成长呢

    先了解微信jssdk,微信后端跟普通后端一样,做完之后会有新的认识,做完之后决定如何选择,至少这个技能你是有的,;先确定自己的目标,在选择性的区成长; 会后端的程序员在目前市场还是比较吃香的;

  7. 每个框架是个黑盒子,想看源码深入学习;就前端这么多框架而已、如何平衡框架学习的深度和广度嘞?在这样的情况下业务代码能力如何提高呢?

    先了解公司当前用的框架,新框架出来要知道对现在的业务是否合适,能否快速融入现在的技术体系进行升级;深度:业务的深度性;广度:个人尽力;不断重构提升业务代码(至少写三遍)

  8. 我想了解一个开发项目如何拆分给多个开发者?比如两个或N个前端如何同时开发一个项目?开发的代码又是如何组织迭代最后打包上线的?

    最开始按照页面来分,多站的不是spa的,页面功能复杂度来分;人多的话按照模块来划分,业务+组件;上线:合并js,一个公共文件一个当前页面的js,css也一样,清除客户端缓存;

  9. 还有我公司现有一个前端和写python的后端沟通良好,一个要接口,一个给借口,然而我这种刚写两个月的萌新,如何与写python后端愉快地沟通呢

    get、post区别和应用场景是什么,获取接口数据格式,提交字段确定,去了解python基础,完成一些基础功能留言板或者blog

  10. nodejs如何从零起步啊,推荐些书或者在线教材

    《node实战》《深入浅出nodejs》

    nodejs能实现什么,都有什么模块,每个模块的作用编出一个小场景(实现一个静态文件服务器),反向代理、正向代理

    建议不要再win上,装个linux虚拟机

  11. 初学者学习到怎样的程度可以去找工作呢?非计算机相关专业自学,自学的内容需要覆盖到一些计算机基础的内容吗?如果需要的话,重点应该在哪方面呢?

    页面重构工程师(html、css、js、jq),css兼容性、js的编写、js库的相关API

    在北京,前端要求高,会html、css和切图不够

  12. 买了两本书,js高级程序设计和js权威指南,边学边看,但是感觉没啥方向

    建议《dom编程艺术》《js语言精粹》《ppk谈js》

    工作中用到的,然后在看经典的书

  13. 如何规划写一个组件,一个大型项目的文件组织是怎么样的,怎样阅读一个项目的源码?

    提前:组件干什么用,给谁使,怎么来使,api的抽象然后再实现功能,从对底层的实现到上层的业务来考虑;

    大型项目一般有readme,会介绍文件夹及文件功能,每个文件头部有说明,从入口文件开始,钩子开始定位;

    阅读一个项目的源码:js一般用npm维护,配置文件,src,dist,文档加使用实例,如果没有看test

  14. 问:目的是想在毕业或者2017年初找到工作或实习,在接下来几个月的时间如何提升自己达到各种招聘要求中的精通xxx,熟悉xxx

    区应聘那几个,来分一个档次,从招聘要求反推来进行学习,这样节省时间,先学习耦合的地方

    提升:公司更倾向那一方面(理论or实践)

    一定要有自己的技术博客,github上一定要有能跑起来的项目,复杂一点和js有关的;内推机会比较大

    自己对前端的认识有多深,技术知识到底掌握到什么程度,动画特效、正则、API的应用、全局方法、实际动手能力

  15. 问:感觉很多知识点自己能使用,但是自己不能把这个东西详细清楚的解释出来。想深入了解,有时又感觉需要了解的知识点太多,精力不够。 望解答🙏

    新东西写技术日记,通过思考写博客,社区讨论,知乎搜索相关;

    技术层面越高,你想到的东西就越多,随之牵扯出来不知道的东西越多,水平到了自然也就明白了!

  16. 我也是,我是去年自学的前端,很多基础知识需要补,时间不够用

    时间是公平的,你有二十四小时,别人也是,你不够用别人也不够,没有必要给自己太大压力;

  17. (接上)各自忙各的项目,在这种情况下应该怎样确保团队的凝聚力以及个人的技术提升呢?

    聚餐喝酒、周末爬爬山、打打球等业务时间多交流

    平时多review代码;以工作来炫技,进行交流,开发提升效率的工具、团队博客来增加影响力

  18. 我们公司也是这种情况,没有一个执行力很强的人牵头

    带有review,先进行交流,创建空间一起讨论技术,团队需要一个人站出来来代头;

  19. 应届生在一个没有人带的公司如何让自己快速成长?

    给自己设定一个小阶段的目标,成长到自己的什么阶段,如何提问如何回答,可以和后端交流,一般后端都会js; 综合能力,先把手头干好;

  20. 怎么才能更高效的自学js啊

    首先看书,dom编程艺术,多关注网站想一想自己怎么实现;慢慢积累的过程

  21. 新手在模拟页面的时候往往不知道怎么下手,这种情况要怎么做才能解决

    搭建本地开发环境、代理工具拦截映射本地进行调试

  22. 零基础,如何通过自学进去前端开发这个领域

    网页设计、div css 、切图、网站重构、写静态页面、看书看视频,之后再学习js,后端,再学习服务器先关的东西,之后学习工具、工程化、模块化(ps:老雷问的,啊哈哈哈)

  23. 希望大神能够给其他行业工作了四五年转行过来的前端人员一些意见,比如如何学习,一般的成长路径,以及如何看待年龄问题等。谢谢!感激不尽!

    新技术:看书看视频、开发过程步骤(一般平时都有积累)

  24. js面向对象思想应该如何在业务代码中应用呢?

    首先业务代码是开发具体的逻辑功能;面向对象说白了就是解耦、 复用、多态;

    分区块、复用、模块抽象、数据分层、按功能划分、摘数据模块;

    设计模式、js设计模式、解决什么场景下的模式

  25. 广州地区,大四找前端实习需要达到什么水平?

    能完成某个小功能的完成,html、css完成设计图的还原,更多考察计算机基础,js、css语法的掌握

  26. 前端领域有适合进行科研的方向吗?对于申请学校比较有帮助的。

    数据可视化、多媒体艺术、大数据如何做融合,动态展现

  27. 初级前端真的不好找工作吗?北京真的不缺前端了吗?

    看公司业务需求,初级的真的不好找,中高级还是比较好找的;

  28. 现在还需要从零开始写css和html一点点实现设计图吗?感觉特别麻烦也不知道从设计图的哪里下手。

    分区块,公用,相似,从大框架开始,慢慢细分

  29. 前端了解python从哪入手?

    可以些工具、更据需求入手

  30. 前端需要哪些代码习惯?

    分格和规范

    分格:{}改怎么放

    规范:变量的定义等

  31. 怎么看react,angular,vue?

    看一致性和区别

    react : 代码分格比较重的

    angular: 比较重

    vue: 模板渲染,破坏力和影响力非常小,门槛低

  32. 现在学前端找不到工作

    经过时间会筛选,优胜劣汰的过程,前端要有自己的计划,要喜欢这个

  33. 最近在恶补css,希望爵神能帮忙划下重点

    布局,盒模型,动画,选择器,选择符优化,如何拆分,reset,移动端布局,相对绝对定位

热场

  1. 最近在找工作,这是我的简历: https://simonwoo.github.io/cv/ 。老师能点评一下吗

    单元测试、前端、后端;框架名词对应上了,但是具体怎么使用,用在什么场景下,怎么来用的,遇到什么问题;熟练整我,使用了什么了,开发 了什么样的系统,单元测试怎么做的,js写了哪些模块,用了哪些框架

  2. 前端包含webgl的使用吗?怎么看白鹭引擎和cocos2d-js?

    前端包含webgl;分俩种:(1)画图;(2)dom操作

    我用过一个非常简单的游戏引擎 叫 craftyjs

    可以google一下 他基本包含了你做一半游戏的各种情况和需要用到的类和方法,我个人认为游戏开发和webgl开发都应该算前端开发 但是和web前端开发完全是两个方向了。当然这两个方向谁好谁坏我觉得还是要看个人的兴趣。

  3. 请问iOS开发和web前端哪个更值得深入?我现在感觉iOS来来去去就这么些东西,很难深入

    ios不太熟悉;

    前端广度比较深,ios性能,耗电量,画界面,可以向后扩展,可以去了解一下后端

  4. 想问一下老师,现在只会一些jquery.+bootstrap~怎么做提高呢?

    我会在我的经历里去说 我以前也经历过只会jq的阶段 😄

  5. 工作中碰到做不出来的效果怎么办。。关键还没人求助。。

    善用搜索引擎: 百度、谷歌

    某某源码分析和实现,搜索不到的时候可以说做到什么程度,可以去看相关的网站源码,所谓前端没有什么秘密;如何定位比人是实现代码,选序渐进的过程

  6. 现在有一个概念炒的很火 - 大前端。按照我的理解大概包括三块: web app, hybrid app, node。老师怎么看这三者?

    网络请求的全算前端:客户端、php、web

  7. 现在的局限是做过的业务主要面向pc端。mobile上的web开发(mobilewebapp and hybrid app)并没有太深的理解。

    webview , 如何交互,如何传给native和传回js

    实现:通过协议,用拦截器进行分发,一般都是get的,安卓和ios插入js代码直接执行,js订阅广播

    内嵌开发,rn等转化成原生代码,复用性可能不是那么高,用js来写俩套代码

  8. hybrid app的性能未来会有较大的提升吗?是否有能力替代native app?无法替代的瓶颈是什么?

    个人认为永远不会替代的,编译转移的过程,在rn是不能做的

    性能:webview 单独发网络请求,有时间延迟;

    范围:适合快速迭代的产品,游戏不适合,性能低

  9. React Native里面也有类似的Bridge概念,它完成从JS->原生的编译过程。

    Bridge实现原理不一样

  10. 无障碍开发有前景吗

    国外标配,国内bat均有团队

    未来肯定有前途

  11. 谢谢老师的回答,有几个问题:1.贵公司是使用php做模板渲染吗?为什么不直接在前端渲染?

    首屏 php直接吐出来,分页等用js

    后台spa的 前台兼容ie678的

正式内容

  1. 初中级前端工程师在创业公司如何提升个人能力。

    面向初级工程师。

    创业公司的定义,十五人以上的团队,loader是比较大规模的团队历练出来的,豪华的配置。每个职位一个人扛那就尴尬了。

    回顾个人:留言板、bbs相关功能开发、论坛、用模板凑最终转成html、浏览器兼容(ie,火狐)

    网页三剑客,css权威指南,学习jq的第一个版本

    • 到瓶颈之后,如何突破?

    脱离舒适区,看原生js,看看php,先定目标,再定计划,反向去推,要学什么。

    js是什么:语法,逻辑控制,数据类型,自己的PAI,浏览器的API;高级一点的面向对象、封装、抽象

    把自己有限的时间放在自己能学明白的地方,先把她掌握成自己的一部分!!!

    要用到什么,成就感比较强的去学习;

    线上:扣扣群、社区等(蓝色理想)

    找自己和自己类似或比自己稍微厉害一点的人,他的经历就是你下一步要经历的;-选序渐进的交导师

    坚持:技术日记,培养逻辑思维能力,交到和自己差不多的朋友,不要怕误人子弟,想着是写给自己看的;建立一个正向鼓励的机制,建立荣誉感和成就感;热心帮别人,锻炼自己。

    自主性、好奇心、突破自己!

    小作坊到豪华配置:svn、cvs不会用,不会协作;主动交流,帮别人解决问题;前后端接口定义、性能问题,专业的测试;专业度会越来越深;

    回顾:自己创造机会,争取资格

    运气+努力;找对人找准人找对学习方法,明确自己的目标,制定计划;不断去正向鼓励自己!

    难在坚持,突破自己当前安逸的环境!

  2. 初中级前端开发工程师在成熟公司如何自我成长。

    成熟的互联网公司:不缺比你牛逼的人,也不缺比你菜的人,体系很完善;服务的用户是小公司的n倍,体量也非常大,整个产品的流程非常完善,部门人特别多,多人开发,协同管理完整,专精度特别深;

    过程:兴奋、好奇、自卑,心累or开心,麻木,迷失。

    在阿里:自动996,查资料,怎么在实现;框架与业务融合;如何读英文文档,了解框架;读框架:上手指南,大榄api部分,根据需求查看读,实例代码比api直观;删代码,二分法去找;不能让自己太舒服;很菜在大公司是螺丝钉;

    制定目标,反推计划,正向鼓励自己;

    大螺丝钉:前端工程化,模块化,组件化,创新,创新是否能影响多个业务线,创新能否申请专利,能否产生收益,是否有带人的经验,是否可以在台上分享(当导师);

    新浪博客:前后端分离,模块化qjs,新需求往上加;python写工具;nodejs写工具;直播间;长链接,轮训;模块化seajs;写grunt插件;反向写出lassjs;用php解析js;动态解析php;上线是换成nodejs;本地开发环境也不同;开发fds的工具,功能很强大;

    手机新浪网:zepto、公共文件、用模块化、import功能等,可以加载svn的功能,读到内存在写到文件;

    国美:主要做管理

    给自己找事儿,给团队找事儿,给产品找事儿,找到大公司团队的痛点;让程序去代替人;刨根问底的态度;

  3. 团队与个人,到底谁在起进步作用

    团队和个人关系:你比团队牛逼,你带团队跑;你没其中的一个人牛逼,团队带着你跑;

    最复杂的问题都留给自己,比人解决不了的问题自己来;

    保持自我:团队牛逼,不代表你牛逼;要吸收有点,保持自己进步的节奏;团队不是你的,你自己学到的才是你的;不要抱怨团队不行,想想你为什么不能为团队带来一些什么。

  4. 没有参与过0-1的前端项目怎么办?

    创新、个人项目、内部创业、技术人员要有一颗产品的心

  5. 前端人员对后端需要掌握到什么程度?

    能做动态网站:增删改查、数据库的安装、服务器的配置来写一个留言板;

    新型式:nodejs

    后端的解决方案:内存的缓存,减少数据读写操作,负载均衡,分表分库,多线程,解决并发,多系统之间的消息通知,常用shell脚本

  6. 前端技术如何做到精益求精

    技术领域:只有更好没有最好

    找到平衡的点,越多并不会太好;不去读经典,永远不知道什么是最好的;提高自己的眼界,才能写出一个好的东西;积少成多,好多东西重在思考;

  7. 未来的前端工程师应该如何发展,怎么看待不断更新的框架和各种技术概念。

    框架的出现是为解决某个问题,是不是你现在遇到的,解决单点问题;安卓ios踩过的坑就是我们未来要踩得坑;

    保持一致,不要落谷;贴着规范走;反向推;hack技术;vr和ar;创意,技术不是那么难实现的;多关注硬件,推动技术的发展;es6、ts等很火;分布式编译;增量更新;不要把精力新的语言语法糖上,未来不一定都支持;

    weex等不太成熟,pg很经典,风险太高;学客户端开发,后端开发;

后续提问

  1. 如果分布式后台系统要处理会带来大量运算,并且高并发的请求,前端结构需要进行相应的调整和优化吗?

    需要在后端处理;用nodejs;负载均衡分发,分发到不同的服务器上和分发到不同的进程上

  2. 还有要不要花时间补算法导论,就前端而言

    看现阶段到什么程度,前端排序等,做系统设计会比较多

  3. 求问 前端现在不会任何后端语言 要学的话 小爝推荐学哪个?

    建议nodejs,python,看看php,不建议学java

结束

更多精彩希望直接付费去听知乎 live 回顾

去回顾 https://www.zhihu.com/lives/775335499169542144

【 THE END 】

------ ShenBao on May 17, 2017