为什么 CSS 这么难学?

html-css012

为什么 CSS 这么难学?,第1张

因为CSS是一门非常奇怪的语言。他有两条不同的学习曲线,一条是入门以后直线上升然后慢慢变得平坦,一条是稳定上升的斜线。打个比方,修一台电视机我们有两种方法: 一种是在外壳上敲敲打打,找到敲哪里敲几下的规律;另外一种是看一本电视机原理的大厚书,然后去拆开修。对应到CSS就是不停地试各种排列组合和读规范读权威指南。这两种方法其实没有高下之分,只有适用范围。如果只是用CSS做很简单的工作,那试一试很经济实惠,但如果经常跟CSS打交道,那么读规范就会节省大量跳坑排坑的时间。高票答案说CSS不正交化我不是很赞同,他举的三个例子都清楚写在了规范和权威指南里面。如果先读规范会觉得这些行为是自然而然的。我本人同时写JavaScript, Java, CSS, Python,在学习C++,但是并没有感觉到高票的所谓理性和感性的区别。你觉得它没有规律,也许只是因为你没有好好读规范。CSS是一门正儿八经的编程语言,请拿出你学C++或者Java的态度对待它,该看书看书,该查文档查文档。

相较于其它编程类技术,前端开发是比较易学的一门技术。

Web前端开发技术是一个先易后难的过程,它主要包括三个大的技术架构是:HTML、CSS、JavaScript。

所以零基础适合学习web前端,相对其他编程语言,web前端的门槛相对较低。

Web前端开发技术是一个先易后难的过程,它主要包括三个大的技术架构是:HTML、CSS、JavaScript。

HTML是一种超文本标记语言,就是结构标签,并不会涉及到复杂高深的技术逻辑,更多时候是需要牢记、背下来一些标签的作用。所以这个学习阶段主要考验的是记忆力,如果记忆力不好也没关系,可以多记笔记,需要用到什么功能的时候看笔记就可以,时间长了代码练习多了自然就记住了。

CSS的学习方式和HTML大同小异,它的作用是样式配置,更多时候也是一个死记硬背的过程,不涉及太复杂的逻辑。

比较有难度的是学习JavaScript的过程,这个阶段需要接触到很多复杂的逻辑。HTML和CSS需要互相结合学习,只学习这两个只能展现一个静态界面,如果想要增加动态的效果就必须要学习JavaScript。静态页面是比较容易就可以实现的,功能全面的动态页面需要很多复杂逻辑技术的支撑,JavaScrip就是实现这些功能的主要技术。

Web前端技术相较于时下流行的编程语言如:Java、Python、C、C++、C# 等来讲,是最容易学习的,也是最容易入门找工作的。但是想要达到高级前端开发工程的水准,并不是一件容易的事,需要在工作岗位上很多年不间断的学习新技术,付出很大努力才行。

难点在于:

1.对业务的理解

由于前后端分离的普及,越来越多的业务逻辑开始往前端这里转移。“客户想干什么”,在大的公司可能有UE专门去思考这问题,前端只需要实现就可以。但是其实大多数的小公司没有专职的UE设计。很多时候需求并不明确。前端开发就需要开发人员自己对业务有一定的了解知道客户需要什么?才能去写合适的业务逻辑。如果并不能很好的去了解业务,写出来的页面可以看,但是就会出现,没有门把手的一面只有拉才能开门的设计。而且其实业务最多变的就是业务逻辑,如何设计好才能满足业务逻辑变的需求,也是一个很难精的事情。

2.计算机基础知识

CDN、网络接入层、API网关、存储系统、代理、cookies、socket等等的专业术语。一听可能就有很多人蒙圈了。很多时候只是开发页面很简单,但是现在出现问题了,因为问题是在前端表现出来的,很有可能需要前端第一时间去定位问题点。这就不得不要求前端需要了解计算机的基础知识来定位具体问题。0基础培训班可以写网页,但遇到如代理问题,API网关问题可能就无从下手了。

3.新技术的获取,方向的选择

前端生态和工具不断的在变化,如WebAssembly,Less,TypeScript不断在变化的语法特性,Vue,React,Angularjs等不断变化的框架。iView,Bootstrap, Element-ui,Ant Design等各种框架。 vscode ,sublime , atom ,WebStorm等开发工具。出现了“别更新了,学不动了”这样的言语。如何保持对新技术的获取。如何跟对技术,如何选型技术其实也是一个难点。

4.工程化

只是写一个页面可能不难,但是前端由于能力的增加,越来越多的前端工作开始接触到工程化的问题。软件工程化一直没有银弹,也就带来了设计模式的知识。如何让各个分散的页面变成可以互相配合契合业务,如何公用代码,如何设计架构。这也是一个需要时间积累的能力。

5.优化兼容

前端是第一个和客户接触的页面,性能好坏直接影响PV、UV、访问次数、跳出率、转化率、平均访问时长等指标,但是前端优化兼容又是一条慢慢长路,从CSS到JS再到网络,再到后台优化的无止境。后端最难的可能也是优化,优化算法,优化数据库,优化响应时间。前端算法优化,渲染优化,针对浏览器优化,还有兼容问题,IE,CHROME,火狐,大大小小厂商的浏览器,不同手机的浏览器。这条路也是漫漫长路。也最考验一个前端的综合能力。

6.沟通能力

前端提意见的门槛低。后端提意见需要一定的专业能力。前端做演示,小朋友看,问问他们有什么意见,估计也能提出很多,所以前端需要和跟打交道的能力,如何沟通也是一个不可缺的能力。和客户交流,和后端交流,和产品经理交流。