手记

花式填坑第9期【问答干货】解密高级前端攻城狮の极速进化

如何学习前端开发

 
Q:前端技术繁多,怎样系统的学习和提高?
1.对于初级前端更多的是注重原生js,还是框架的学习?
2.到达什么水平算是有一个好的技术基础?
3.怎样在工作中学习与自我提升?

 
ustbhuangyi:1. 原生 JS 和框架学习 2 者需要兼顾,原生 JS 是基础,所有的框架都是基于原生 JS 开发的,万变不离其宗。对原生 JS 熟练了,对学习框架是绝对有帮助的。对于前端 mvvm 框架,我建议是重点学习一门(工作中需要的),其它的顺带了解即可,因为一旦精通了一个,学习其它是非常轻松的。
 

2能够把握项目中的重要子系统(功能模块集合),或中等难度的基础技术方向,对负责方向的技术判断基本没有问题,能够很好地把产品需求转换为技术需求。对于前端而言,前端基础知识 HTML、JS、CSS 熟练掌握,对于一些功能的实现与否有判断力,可以快速学习并掌握一门新框架,对于一些表象的事情能充分认识到本质问题。

3.既要会偷懒,又要勤奋。这里说的“偷懒”,并不是说少做需求,而是从业务开发中多去思考和总结,学会抽象,学会复用代码,减少重复的劳动。学会使用工具来帮我们解决人肉的问题。举个例子,前端最近非常火热的编程思想就是模块化、组件化,本质上都是为了复用代码,提升代码的可维护性,比如我们是不是需要开发通用组件库、JS库等等,来辅助我们的业务代码。还有几乎现在所有项目都会用构建化工具帮助我们开发,最有代表性的就是 webpack,它能帮我初始化代码,调试,编译打包等等,极大的帮助我们节约了开发时间,我们是不是多花点时间去研究它的配置,甚至是它的源码。
 
所以,去花时间学习这些编程思想,掌握这些工具,都能够很好的帮助我们提升技术。除了会“偷懒”之外,我们也要勤奋,虽然业务忙,但往往也不会忙到8小时工作时间都在写代码的地步吧。
 
如果我们把每天在群里斗图、刷微信朋友圈等等的时间节约下来学习技术的话,相信只要坚持,技术一定会提升比别人快,特别是初级的同学,你们的进步空间还很大,一定要多花时间在学习,而不是浪费时间问“我工作1-3年,出去要多少钱合适”这类的问题,薪资一定是和能力匹配的。

 
Q:前端攻城狮对于初学者,懂点脚本,JS了解的不深,如何才能升华提高自己呢(学了些框架,结果更加打击自己的自信心)
老师你走过弯路没,当我们遇到弯路,应该如何避免走弯路

 
ustbhuangyi:初学者更要去补基础了,如果基础不牢固,学习框架会比较吃力。而且更要努力了,要比其他人多花时间,恶补缺乏的基础知识。
 
就我个人而言,弯路没怎么走,我上学期间玩的c#,毕业后接触的前端,但是由于基础和学习能力还不错,我很快就把前端基础知识系统的学习了一遍,并在工作中运用和强化。建议学习基础知识的过程中,也要多思考,多问,多总结,提升学习效率。

 
Q:从慕课网自学的前端已经工作,工作中项目用到的东西很少,如何去快速地提升自己呢,还有就是原生JS学习到何种程度?自己在前端方向还在迷茫,前端的东西太多了,希望指点一二,谢谢
 
ustbhuangyi::慕课网学习的知识要学会举一反三,项目中也要多去运用学习的知识,不断巩固。尝试去做不同的事情而不是一味重复劳动。原生JS一定要熟练掌握,达到红宝书和犀牛书中的知识点理解完全没有问题的程度,并且在工作中也适当尝试用原生JS去写一些库和工具方法等等。
 
 
Q:我倒是蛮想问 一直在互联网创业团队里 有必要去bat学习一下么 以及 进bat都需要什么样的基本技能
 
ustbhuangyi:bat 是一座好学校,里面牛人众多,也会有系统的培训,开发流程也会很规范,能进去学习还是很不错的。一般来说, bat 看重的是基础和潜力 2 方面。基础包括专业方向的基础知识,不局限于某个框架;潜力包括(自驱、逻辑、学习能力)等等。当然,项目经验也很重要,如果你擅长的事情正是他们招人所需要的方向的话,会有加分的。

 
Q:Html css还可以,Js不精通,遇到问题没有思路,而且一般都用jquery,前端mvc框架也不会,感觉看不到希望,怎么办?
 
ustbhuangyi:你这种情况应该是属于基础比较差,还是需要恶补基础知识,需要比其他人更加努力,花更多的时间学习。建议去系统学习高程或者犀牛书,把书中的代码写一遍。原生 JS 掌握差不多了,再去选择一门 mvvm 框架系统的学习。
 
 
Q:老师,我感觉我的js编写能力不是太好,很多交互功能要实现的时候都没能思考到点子上,有时想到了思路方向,但是到写的时候还是会有迷糊的感觉
请问老师有什么方法可以提高这方面的能力?谢谢

 
ustbhuangyi:主要还是因为写的不够多,JS 不够熟练。对于常见的交互功能,先去找开源项目的源码,看看他们的实现思路和方法。先从模仿开始,同时多思考,再尝试自己去实现;思路一定要清晰,要看清问题的本质,把复杂的功能拆成几个功能的集合,逐个击破。最后也推荐学习我的课程,你会学到很多酷炫功能交互的实现和思想,相信会对你有所帮助。

 
Q:作为一名前端开发者,Node.js这门后端语言相比其他后端语言来说有什么优势?还需要掌握其他后端语言吗?
算法和数据结构重要吗?
为什么要现在都采用前后端分离的方式开发项目?

 
ustbhuangyi:1.Node.js 比较适合 IO 密集型的系统,不太适合 CPU 密集型的系统,前端学习 Node.js,相比其它语言的优势仅仅在于属性 JS 这个语言而已,如果想深入学习后端,多了解一些其它的后端语言会有很有帮助。后端最重要的是数据存储和服务稳定性,除了学习理论知识,还需要有实战的经验才可以真正掌握。
 
2.算法和数据结构很重要,虽然看上去做前端很少接触到算法,但当你去做一些工具的时候,比如分析一个依赖树中是否有环,就需要用到算法知识了。再比如做大数据处理的时候,如果算法不好的人写出的代码可能会有严重的性能问题。

 
3 前后端分离主要是为了前后端可以并行开发,提升开发效率;而且前端不依赖后端语言的实现,代码可移植性强;还有一点就是因为现在 B 端发展很快,功能和交互也越来越丰富,传统提交表单,刷新页面的交互已经不能满足了;同时也得益一些 mvvm 框架,在前端帮我们完成了数据到模板的自动映射,前端就可以处理这些复杂的交互,促进了前后端分离的开发模式。

 

讲师介绍

讲师个人主页,点击可查看

花式填坑往期文章推荐:

39人推荐
随时随地看视频
慕课网APP