前端工程师的成长访谈录(第一辑)

256 阅读8分钟

前端的范畴

  1. 网页开发是公认的前端开发,而app的客户端开发,桌面应用的开发也都隶属于前端体系。
  2. 传统的MVC架构中,V层和C层都属于前端的架构,尤其目前单页面应用流行的当下,前端已经完全承接了视图和控制器的开发。
  3. 这些工作都有一个共性,就是基于用户行为的事件反射进行的编程,
  4. 很多高级的前端开发也会后端开发,也能搞定工程化和自动化,向后端的拓展也是基于界面开发衍生出来的。

如何学习前端

  1. 作为一个合格的前端工程师,先学会界面开发,再掌握工具和流程化的知识。
  2. 就目前的趋势,建议先学好JavaScript,不管是前端还是后端,都有很大帮助。
  3. 学好JS很关键。
  4. 开始看书从简单,容易实践,贴近业务场景的书开始,然后再去看权威的大部头,直接读容易一头雾水。
  5. 写组件要先想这个组件干什么用?给谁用?别人怎么用,先写别人调用需要的代码,先实现API接口后,再做内部实现,组件可能基于框架,这部分因地制宜。
  6. 大型项目有readme,先看实际的页面,入口文件,先搭建调试环境,找到JS文件,怎么组织,也方面查找bug,
  7. 开源项目的源代码,有官方文档的话首先看文档,JS的代码用npm维护,有脚本,开发环境怎么build构建,src目录有源代码,看test单元测试怎么测试功能的,预期和实例。
  8. js入门书,dom学习浏览器部分,看网站交互和特效,如何写js,自己想怎么写。不会就学,慢慢积累。

如何学习后端

  1. 后端的学习,从数据库的增删改查和路由控制入手,实现一个留言板和博客的小项目,就能基本上手了。

前端框架的认识

如今和很多框架都是原生的JS加上浏览器端的DOM操作和BOM操作,很多框架其实你自己也能写出来。

主要实现的是对多浏览器兼容性的封装,使用框架时可以忽略兼容性,直接写业务逻辑,要注意代码的复用性,理解HTTP的接口请求。之后根据公司的业务场景学习,要能规划出自己的组件库,能自己实现一个MVVM框架,关注工程化、自动化,或者架构层面,或者寻求创新。

企业招聘的认识

  1. 校招大公司更注重求职者的态度,是否聪明,有潜力,

  2. 小公司重视现有能力能否开箱即用,完成现有的业务。

  3. 社招前提是有独立完成业务的能力。

  4. 要看是否有自信,有足够的好奇心,有自己的想法思路。

  5. 会后端开发的程序员在前端市场上也比较吃香。

  6. 面试要有理想公司也要准备保底公司,

  7. 面试者有两种快速提升方式,一种偏工程实践,有动手能力,另一种有理论能力,看重书本上的东西,面试题很厉害,把答案都背下来,但实际操作少。这两方面要权衡。

  8. 精通熟悉等是措辞,真正校招还是看面试的表现,还有面试官的风格,主要看自己的基础知识,对前端的认识,JS动画特效,正则,浏览器dom的api,面向对象的操作,字符串、函数都要熟悉,还有实际项目中的东西,ajax等等,面试官问起来也不虚。

  9. 学习前端,要有自己的技术博客,github上有复杂的实际能跑起来的项目,要内推,成功的概率更高,

  10. 学到很多新东西,怎么和别人说清楚呢,就把这个东西写出来,写的过程就是思考的过程,要形成文章,或者给知乎问题做解答。知识层面越高,引申出来的东西也越高,文章就会很长,但新人小白不用担心这个问题。

工作阶段如何成长

  1. 工作后要先把公司用的框架先研究清楚,知道问题所在,在去学习新框架对现有问题的解决。
  2. 通过不断重构来提升代码能力。第二遍就不再关注业务实现,而是关注代码逻辑,之后的代码再和第一遍对比就会发现差距。
  3. 具体开发,联调,测试,合并压缩,最后分发CDN,
  4. 可以开发提升效率的工具
  5. 我们是一个互相学习的过程,每周花半个小时,看别人的代码,态度要好,有一个交流的氛围,共同进步。
  6. 看知乎的问题,找共性的问题,看答案,和后端的程序员交流,技术差,学到的东西都是有用的。综合能力起来之后再有时间去提高,业务需求先完成,再去提高,再去学习。
  7. 拦截后保存别人源代码,本地自己调试。
  8. 先从静态页面入手,模拟一个首页,构建后再学习js,学习后端,服务器,再学工具,公众号开发。
  9. 有一个整体的概念之后,针对性的提升,再去调试,
  10. 业务代码主要目的是实现功能,包括,解耦、复用、多态等,比如说一个评论组件,ajax刷新,面向对象重构,输入部分是一块,展示、编辑删除,弹出图层,评论可能会有表情,还有表请的渲染,还有分页,把评论这个大功能拆成一个个的小功能,抽象一层了,模块都是抽象的,数据缓存到本地,30s后再上传,对性能优化,再汇总,实例化后绑定事件,每一个函数,抽象路由,操作数据属性的变化,之后还有设计模式,重复代码写得太多后,就会考虑面向对象维护,新手很难体会,积累到一定代码量再看《JavaScript设计模式》这本书。
  11. 把电脑搞定,页面还原要能做到位,实习生做是去学习的,考察的是计算机的基础,和人是否聪明,js和css语言掌握,说明白一个功能后可以实现他
  12. 数据可视化,大数据以动态视觉展现出来。
  13. 整个页面分成区块,中间的内容复用的地方,写HTML的结构,用div写,再说明区块。再用css写样式。
  14. 代码风格和代码规范,风格在公司需要统一,
  15. 官网看项目介绍,实现了双向绑定的功能,
  16. 市场是优胜劣汰的,初级很多,高级很少,
  17. css布局方式,盒子模型,动画,伪类选择,性能优化,定位(水平、垂直居中)布局,
  18. 手机打开的看着要很舒服,技术具体怎么使用,在什么场景下用到了什么,为什么用这些技术,遇到什么问题,用到什么工具,要写清楚,熟练掌握,自动化怎么做的,写了哪些模块,组件,自动化怎么做的
  19. craft.js游戏引擎
  20. 前端广度很广,深度不够深,
  21. 做不出来的效果,用谷歌搜索,某某特效源码分析,英文再试试,不行再和产品经理说明白,动画原理,单位时间内更改dom元素位置,比较复杂交互的js,可以搜索一下开源插件。
  22. 大前端,网络层之外的都是前端,前端的范畴会越来越广,数据库如何设计属于后端,
  23. 混合开发,webview,可以展示网页的容器,如何和原生的app交互,
  24. 大公司做螺丝钉也要做不可获取的,要不断给自己找事,给团队找事,给产品找事,大公司可以让程序代替人,工具化,效率低下的东西可以改进,刨根问底,问原理机制,搞出技术氛围。
  25. 对技术有提前预测和技术准备
  26. 写博客
  27. 混社区,帮忙解决问题,交朋友
  28. 成为团队的技术专家
  29. 高并发优化主要集中在后端,可以用node.js异步,让请求排队,不影响主逻辑 或者做消息分发,负载均衡,分到不同的服务器上,或者不同的进程上,后期学客户端或者是后端,不定只看新特性。
  30. 从零到一,踩的坑多了,才能积累好技术经验,不断去创新,开发新的工具, 或者自己的个人项目,个人博客或者其他的东西,
  31. 内部创业或者黑客马拉松,快速设计,对产品思路对锻炼,
  32. 做一个留言板,能做一个动态网站,数据对增删改查,对服务器 的配置和调试,高级的前端,写新的框架,插件,
  33. 能更好的做好网站的优化,把精力放到js上,要找到精益求精的点,提高自己的眼界,知道什么是好的,想新的问题,
  34. 框架是为了解决目前某个场景的某一个问题,这个能不能解决问题谁也说不好,
  35. 要关注本质。
  36. 要看客户端,