前端工程师的成长经验

前端的范畴

  1. 网页开发是公认的前端开发,App客户端开发、桌面应用的开发也都隶属于前端体系。
  2. 传统的MVC架构中,V层(视图层)和C层(控制器)都属于前端的架构,尤其目前单页面应用流行的当下,前端已经完全承接了视图和控制器的开发。
  3. 这些工作都有一个共性,都是基于用户行为的事件反射进行的编程。
  4. 很多高级的前端开发也会后端开发,也能搞定工程化和自动化,前端向后端的拓展也是基于界面开发衍生出来的。
  5. 目前流行大前端的概念,将前端的范畴拓展得更大,除了数据库设计外的更多纳入前端。

如何学习前端

  1. 作为一个合格的前端工程师,要先学会用户界面开发,再掌握工具和流程化的知识。
  2. 先从静态页面入手,模拟一个首页,能独立构建后再学习JS,再学习后端的服务器,可以拓展学各种工具和公众号、小程序的开发。
  3. 页面仿照的方法:整个页面分成区块,中间的内容复用的地方,写HTML的结构,用div写,再说明区块。再用css写样式。
  4. 学好JavaScript,对前端开发和后端开发,都有很大帮助。
  5. js先看js入门书,dom学习浏览器部分,看网站交互和特效,如何写js,自己想怎么写。不会就学,慢慢积累。开始看书从简单,容易实践,贴近业务场景的书开始,然后再去看权威的大部头,直接读权威书容易一头雾水。
  6. 写组件要先想这个组件干什么用?给谁用?别人怎么用,先写别人调用需要的代码,先实现API接口后,再做内部实现,组件可以基于框架实现,这因地制宜。
  7. 看大型项目,先看readme,先看实际的页面入口文件,搭建调试环境后找到JS文件,怎么组织,也方面查找bug,官网看项目介绍,实现了双向绑定的功能,
  8. 开源项目的源代码,有官方文档的话首先看文档,JS的代码用npm维护,有脚本,开发环境怎么build构建,src目录有源代码,看test单元测试怎么测试功能的,预期和实例。有一个整体的概念之后,再针对性的调试,逐渐提升。
  9. 流行的混合开发利用了webview这个能展示网页的容器,学习重点在如何和原生的app交互。
  10. 高级的前端,能更好的做好网站的优化,把精力放到js上,要能写新的框架,插件。
  11. 成长后期可以学客户端或者是后端,不一定只挖掘前端新出的特性,
  12. 要找到精益求精的点,提高自己的眼界,知道什么是好的,想新的问题,
  13. 学习数据可视化,如何把大数据以动态视觉展现出来。

如何学习后端

  1. 后端的学习,从数据库的增删改查和路由控制入手,实现一个留言板和博客的小项目,就能基本上手了。
  2. 做一个留言板,能做一个动态网站,数据对增删改查,对服务器 的配置和调试、
  3. 高并发优化主要集中在后端,可以用node.js异步,让请求排队,不影响主逻辑,或者做消息分发,负载均衡,分到不同的服务器上,或者不同的进程上,

前端框架的认识

  1. 如今和很多框架都是原生的JS加上浏览器端的DOM操作和BOM操作,很多框架其实你自己也能写出来。
  2. 主要实现的是对多浏览器兼容性的封装,使用框架时可以忽略兼容性,直接写业务逻辑,要注意代码的复用性,理解HTTP的接口请求。
  3. 之后根据公司的业务场景学习,要能规划出自己的组件库,能自己实现一个MVVM框架,关注工程化、自动化,或者架构层面,或者寻求创新。
  4. 要关注本质。框架是为了解决目前某个场景的某一个问题,这个能不能解决问题谁也说不好,
  5. craft.js游戏引擎

企业招聘的认识

  1. 面试要看是否有自信,有足够的好奇心,有自己的想法思路。要有理想公司也要准备保底公司。
  2. 把电脑搞定,页面还原要能做到位,实习生做是去学习的,考察的是计算机的基础,和人是否聪明,js和css语言掌握,说明白一个功能后可以实现他
  3. 校招大公司更注重求职者的态度,是否聪明,有潜力,小公司重视现有能力能否开箱即用,能马上上手完成现有的业务。
  4. 社招前提是有独立完成业务的能力。
  5. 简历在手机端打开看着要很舒服,技术具体怎么使用,在什么场景下用到了什么,为什么用这些技术,遇到什么问题,用到什么工具,要写清楚,熟练掌握,自动化怎么做的,写了哪些模块,组件,自动化怎么做的。
  6. 面试者有两种快速提升方式,一种偏工程实践,有动手能力,另一种有理论能力,看重书本上的东西,面试题很厉害,把答案都背下来,但实际操作少。这两方面要权衡。
  7. 会后端开发的程序员在前端市场上也比较吃香。
  8. 精通熟悉等是措辞,真正校招还是看面试的表现,还有面试官的风格,主要看自己的基础知识,特别是对JS的熟练程度,对前端的认识,
  9. JS的重点包括动画特效,正则,浏览器dom的api,面向对象的操作,字符串、函数都要熟悉,还有实际项目中的东西,ajax等等,面试官问起来也不虚。
  10. css的重点有布局方式,盒子模型,动画,伪类选择,性能优化,定位(水平、垂直居中)布局,
  11. 学习前端,要有自己的技术博客,github上有复杂的实际能跑起来的项目,要内推,成功的概率更高,
  12. 学到很多新东西,怎么和别人说清楚呢,就把这个东西写出来,写的过程就是思考的过程,要形成文章,或者给知乎问题做解答。知识层面越高,引申出来的东西也越高,文章就会很长,但新人小白不用担心这个问题。
  13. 市场是优胜劣汰的,初级很多,高级很少,前端广度很广,深度不够深,

工作阶段如何成长

  1. 工作后要先把公司用的框架先研究清楚,知道问题所在,在去学习新框架对现有问题的解决。
  2. 通过不断重构来提升代码能力。第二遍就不再关注业务实现,而是关注代码逻辑,之后的代码再和第一遍对比就会发现差距。
  3. 开发流程包括具体业务开发、联调、测试、合并压缩,最后分发CDN,发布版本。
  4. 可以开发提升效率的工具。
  5. 和同事交流前说清楚,这是一个互相学习的过程,每周花半个小时,看别人的代码,态度要好,有一个交流的氛围,共同进步。
  6. 看知乎的问题,找共性的问题,看答案,和后端的程序员交流,技术差,学到的东西都是有用的。综合能力起来之后再有时间去提高,业务需求先完成,再去提高,再去学习。
  7. 拦截后保存别人源代码,本地自己调试,这样学习不会影响线上业务。
  8. 业务代码主要目的是实现功能,包括,解耦、复用、多态等,比如说一个评论组件,ajax刷新,面向对象重构,输入部分是一块,展示、编辑删除,弹出图层,评论可能会有表情,还有表请的渲染,还有分页,把评论这个大功能拆成一个个的小功能,抽象一层了,模块都是抽象的,数据缓存到本地,30s后再上传,对性能优化,再汇总,实例化后绑定事件,每一个函数,抽象路由,操作数据属性的变化,之后还有设计模式,重复代码写得太多后,就会考虑面向对象维护,新手很难体会,积累到一定代码量再看《JavaScript设计模式》这本书
  9. 代码风格和代码规范,风格在公司需要统一,规范要自我重视。
  10. 做不出来的效果,用谷歌搜索,查询某某特效源码分析,找不当就再用英文试试,实在不行再和产品经理说明白,为什么技术上实现不了。
  11. 动画原理,单位时间内更改dom元素位置,比较复杂交互的js,可以搜索一下开源插件。
  12. 大公司做螺丝钉也要做不可或缺的螺丝钉,要不断给自己找事,给团队找事,给产品找事,大公司可以让程序代替人,工具化,效率低下的东西可以改进,刨根问底,问原理机制,搞出技术氛围。
  13. 对技术有提前预测和技术准备。
  14. 写博客,混社区,帮忙解决问题,交朋友。
  15. 努力成为团队的技术专家。
  16. 重视从零到一的过程,踩的坑多了才能积累好技术经验
  17. 要不断去创新,开发新的工具。
  18. 有自己的个人项目,个人博客或者其他的东西,数据是在自己手里的。
  19. 参与内部创业或者黑客马拉松,从快速设计开发中锤炼产品思路
发布了34 篇原创文章 · 获赞 4 · 访问量 2180

猜你喜欢

转载自blog.csdn.net/qq_41629800/article/details/105292937