Web前端是什么?有什么好的学习方法?不走弯路!
目前,在移动互联网行业中较为火热、势头猛烈的当属Web前端开发。且在2019年年初的招聘旺季的这一个多月中,Web前端开发程序员处于供不应求的状态,对于0基础想要从事互联网行业的小伙伴们,Web前端将会是最合适的入门编程语言。而且根据后期的职业发展规划来看,只要入门Web前端,在职场上发展个三到五年,基本上都能做到总监级别。所以,有很多小伙伴要么想进入到Web前端开发行业,要么是工作不太理想的,想要转行做Web前端开发。那么,为什么会有这么多的人想要学习Web前端开发呢?
什么是web前端?
Web前端,主要是用来开发用户通过浏览器可以浏览和使用的Web页面的。 一般而言,所涉及的内容主要包括W3C中的HTML、CSS和JavaScript这三方面的内容。
HTML+CSS:也就是网站的骨架和样子,包括你看到的知乎的界面,一段文字,一个图片,都是一个HTML元素,至于字号是多大的,什么颜色,放在什么位置,这叫CSS,在HTML5里,CSS还能让元素运动起来,旋转,跳跃,只要你想;
Javascript:简单的说就是页面的大脑,把后端获取的数据添加到网页里,或者让元素运动起来,或者是改变页面的CSS,或者是操作HTML元素等等。当然,这些都是最基础的做法,作为一个前端,还要考虑JS的性能,可维护,可扩展的程度等等;
但是随着前端的发展,前端开发所涉及到的内容肯定不仅限于这三方面。分析这三个层面内容的本质可以看到,这三个层面分别涉及Web页面的结构、Web的外观视觉表现以及Web层面的交互实现。
因而,归根结底,Web前端以及Web前端开发可以说是针对Web的结构、行为和表现来进行相应的开发的,也可以说,前端开发主要是做Web端的结构、行为以及表现。
Web前端学习什么?
web前端学习是一个先易后难的过程,主要包括三个要素:HTML、CSS和JavaScript,这就要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。
Web前端开发后期要懂一些前端框架,如nodejs、Angualrjs、还有bootstrap等,以及ued用户体验,后台开发也要懂一些。
看到这里,发现web前端要学习太多,2017才刚刚开始,想加入web前端行业的同学要抓紧脚步开始了,无论你是有一些基础知识,还是零基础小白,这些都没关系,只要你想学,只等你来,只管相信你自己,肯定能学会!
关于学习web前端的误区和学习建议:
1.只看教程,不动手实战
这个可以说是学习的最大的一忌,也是提醒过最多的一个注是事项!网上的教程有许多许多,各个语言,各个知识点,各方面的都有,javascript,html5,css3等的一些,随便一搜就一大把,毕竟互联网最大的优势之一就是资源共享!但是很多人看教程就只是看教程,不动手实操。即使博客的教程,视频教程再好,自己不动手实操,写代码,这样的学习方式,记忆根本不深刻,容易遗忘,到头来,可能什么都没学会!而且有些教程,如果没有跟着动手实操,可能会蒙圈。
个人建议:要挑觉得适合自己的教程,也要动手实操,写代码。即使不是边看教程编写代码!在看完了教程之后,一定要自己动手实操!过程中,可能会遇到些问题,但是这样才会学习到更多,记忆也更加牢固!
2.只学框架或者库
这个情况,针对javascript现在没有以前严重了,在以前还是jquery傲视群雄的时候。很多人会在聊天的时候会说:有了jquery,为什么还要学js?有了vue,为什么还要学js?面对这样的提问,我那时候没有回答,心里想:jquery或者vue就是用js实现的,不会js,学jquery或者vue第一学得吃力,第二学jquery或者vue肯定不会很深入。而且,万一有时候,项目不允许用jquery或者vue,那就基本不会写代码了。这时候,如果学习其它的框架或者库,基本又等于重新学一门语言了。
个人建议:先把基础(html+css+js)打牢,再学其他框架或者库。虽然在会js的情况下,我不敢说学js的框架或者库就是查文档,查API。但至少学js框架或者库可以不会那么吃力!
3.只顾着写代码
这个就是我之前的一个习惯,只顾着写代码,不知道:耦合,实例化,继承等专业术语,和别人交流,无限蒙圈!根本不知道别人在说什么!互联网的技术更新的速度非常的快,隔三差五就发布一个框架,一个库,一个工具。虽然不是每一个更新的技术都需要学习。但是如果只顾着写代码,不了解新的技术。这样很容易使自己停止不前,失去竞争力。
个人建议:在写代码之余,要确保自己是不是了解代码,对代码有没有一个认识。以及多点留意消息,看下有没有什么技术更新!如果觉得更新的技术很实用,或者自己有兴趣,可以多了解下!毕竟互联网是一个做到老,学到老的一个领域,技术更新的很快,如果跟不上流行的趋势,说不定自己会被淘汰呢!
4.太早接触复杂项目
这个情况,比较普遍,无论是在学校或者是现在的培训机构。很多学习前端的人,基础没打牢,就在那里扬言要做一个大项目,我听到的有的人想做知乎,有的人想做世纪佳缘等等一些伟大的目标!但是全部人都是连网站的业务流程和逻辑都没弄清,最后越搞越乱,就放弃了!之前的伟大目标都成了烂尾楼,作用最多就是一个代码练习的作用!花了大量的时间,做了一件没很大的实际意义的事情!
个人建议:从简单到复杂,复杂的网站,都是有很多简单的模块。不妨先从简单的功能做起,做完了一个功能再往里面加功能!现在所处的公司就是这样,开发的后台管理系统,开发几个月了,从一个只有员工的登录注册的功能,然后再逐一加功能,到现在项目逐渐完善!
5.好高骛远,急于求成
这个情况就是多见于培训机构出来的人。我不知道是不是所有城市都是这样,但是广州这边,给我的感觉就是这样。就是目标不切实际,对自己也不够认识!之前在群聊的时候,在金三银四那段时间,很多人找工作,聊天的时候也遇到过很多培训机构的人。简历上是各种精通,刚毕业在培训机构培训几个月,要么就是自带两三年工作经验,要么就是说自己培训了几个月,技术水平和市面上两三年的人差不多。总之就是把自己吹得无所不能!但是一出题,就十问九不知。问闭包是什么,不知道;问原型是什么,不知道。问继承是什么,还是不知道。
上面所说的,只是一个表面的现象,更重要的就是,好高骛远这个情况,很有可能会导致自己难以找到工作!因为一些企业认为最高只能给你4000工资,但是你自己却认为自己有实力拿到9000以上的工资。这样情况,很难找到工作!给人的印象也不好!更重要的是,这可能会影响自己的职业选择!
个人建议:从实际出发,评估自己。想下自己会什么,能给企业带来什么!也可以停下别人的建议,和对比下别人的技术水平和工资,或者是上网找一些面试题,看下自己能不能完成那些面试题!最后评估下自己,认为自己处于什么位置!
6.看到难点就逃避
这一点,相信很多人都有感触,就在开发上,遇到上一个或者几个自己觉得没办法实现的需求或功能。千方百计地想着逃避,比如:这个功能不是很重要,不做可以吗?这个功能我从来没弄过,搞不定的。这个功能外包给别人做吧,我们做不了!很多一些逃避话语。大家可以想下,如果每次都是逃避,那么时间一久,自己技术水平是不是还停留在基础那个阶段?以后要怎么提升自己的技术水平。
个人建议:迎难而上。在web前端开发这块,如果遇上了难题是正常的,如果没遇到难题就是见了鬼!面对难题,我们应该是挑战难题,而不是逃避!大家都想提升自己的技术水平,挑战难题不就是一个很好的提升技术水平的实战机会吗?如果完成了之前认为不可能完成的难题,这样就是一个技术水平提升的见证!不是吗?我也觉得,每天就写简单的业务代码,不探索新知识,不挑战难题,这样做开发也没多少意思!
7.能用就行,不想优化
这个也是一个很常见的情况,很多人认为写的代码能用就行,能实现需求就行!根本不管日后的优化。在开发项目或者开发插件上,虽然我也是提倡:先实现,再优化这个方式!但是并不代表我开发完了就完了,不会再想优化!如果不试着去优化自己的代码,不探索写代码的更好方式,以后别说编写高质量,简洁的代码了,因为自己把学习编写高质量,简洁的代码的一个重要途径给封锁了。还有一个就是,项目上,有些问题可能是潜在的,就是现在看着项目没出现什么问题,但并不代表以后不会出现问题。反而在项目开发完了之后,试着去优化自己的代码,探索更好的实现方式,试着编写出高质量,简洁的代码。这样难道不是一个很好的学习过程吗?至于优化代码的方式,很多很多(比如常说的:代码过于重复,是否引入设计模式?网站性能一般,可否进行优化?),优化这一块,也不是说一步就优化到最好的,而是至少不会比以前差!关于优化,我之前也发过一些资源。很容易找到,网上的资源更是很多!大家挑着看便是!
8.不懂不问和不懂立刻问
不懂不问,这个大家都知道,就是遇到问题,从不问同事或者通过其他方式咨询别人。就是自己在那里苦思冥想,尝试各种解决方案。这样的方式,最坏的结果就是最终还是解决不了问题,让同事来询问开发情况。最好的结果问题解决了,但是解决问题所花的时间会肯定很多。
不懂立刻问,这个就是词面的意思。遇到问题马上问别人。自己没怎么思考或者根本不思考。这样能解决问题,但是这样会导致自己可能会频繁的问同事,会搞得同事很不耐烦。如果把同事的耐心磨没了,可能回答的语气可能不会很好。这样不仅影响同事之间的关系,还会让自己之后不敢再请教同事,有让自己处于上面所说的不懂不问的风险。
个人建议:适时请教。遇到不懂的问题,先自己结合上下文思考下,想下以前有没有遇到这个问题,解决不了去网上找解决方案,如果还没有解决问题,这个时候再问别人,问同事或者通过其它渠道问别人。这样自己有了思考,解决问题的时候记忆也很深刻,也不会频繁的打扰同事!
9.不懂装懂
这个次面上跟上面的差不多,但实际上不一样!不懂装懂就是去问别人的时候,实际上别人的讲解并没有完全听懂,可能是碍于面子或者是因为不好意思打扰别人那么久,或者担心打扰别人太久,所以装作很懂。但是这样可能忽悠得了一时,很快又会露出马脚。这样会搞得隔一会又要去问别人同样的问题,这样反而会搞得别人更加尴尬,更加为难!自己也会打扰别人更多的时间!
个人建议:如果有问题去问别人,只要你问的人不是一个非常没有耐心的人。他都会耐心的解答你的问题!所以,当问别人问题的时候,一定要确保自己是已经弄懂了问题的缘由,同事一遍没解释清楚,自己直接回答不明白,相信很多人都会再详细的解释一遍。如果担心同事工作忙或者其它原因,可以挑一个合适的时间!我现在问同事就是,要么不问,要问就切底弄懂!当然了,我的同事都很有耐心,每次我有什么问题,他们都会耐心解答,甚至是扩展开来讲!
10.没理清楚需求就写代码
很多人在接到需求之后,第一反应就是写代码,即使是在自己没把需求理清楚之前也是照样写代码。另一种情况就是,很多人是边写代码,边想需求。这个开发方式,万一自己对需求理解有误!可能会导致自己写的代码,很大一部分都要修改,甚至是全部删除重写。没理清楚需求就写代码这个情况,发生的概率应该挺大的,但是一般来说很难发现这个情况,毕竟程序员对代码的增删改查是再正常不过了!我本身也不知道,就是在一次的技术分享中,老大提出来的,他的建议就是对于一些稍微复杂一点的需求,先理清楚需求,简单画个流程图,然后在代码里面,先写上一点注释,再开始动手写代码!对于这一点,我现在就是在执行当中!除非需求真的很简单,否则我都会在草稿本上简单画一下流程图。比如下面这个,这个已经是我画的流程图里比较简单的一个了。根据流程图,写好注释,再写代码,这样会比较有条理,代码也清晰,日后的返工也可能会有,但是不会像以前那么多!在开发时间上,效率上,都得到了一个提升!
所以还是老老实实学点技术,别YY了!
“我自己是一名从事了6年前端的老程序员,辞职目前在做讲师,今年年初我花了一个月整理了一份最适合2019年学习的web前端干货,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,这里是小白聚集地,欢迎初学和进阶中的小伙伴。"
加QQ群:516156028(招募中)