㈠ 前端是有多难看完你就知道了
最近感觉追不动前端的发展了,写篇文章感叹一下。
HTML
我知道有一些学校会教一些简单的网页制作,就是用 Dreamweaver 点一点的那种。大多也会留作业,最后交作业的时候看起来也像模像样。
只要不看代码。
看了代码感觉宁愿选择死亡。
table 布局,无意义的 dom 节点。大小写混用,缩进混乱。
作为一个前端工程师,至少要写明白自己写的声明是什么意思对吧?
然后还得减少不必要的 dom 节点,毕竟很多文章说节点多会影响渲染速度(ps: 我是不在乎的,我觉得有点儿矫枉过正的味道了)
然后比较重要的一点儿是对于语义化标签的见解。比如什么时候该用 ul, 什么时候该用 section, aside
至于 head 里面的那些无聊的声明只要会复制粘贴就好了,我觉得没什么意思
自信做到这些的应该算差不多了
文章说的是前端有多难,很多人都觉得这些标签简单。然而想象一下,要写多少的标签才能理解语义化的意义?要写多少页面才能真正的明白这个节点应该写什么标签?如何组合才算合理?
CSS
然后是关于 CSS,我觉得这方面是很复杂的。并不像很多人觉得只是一些单词的组合。
一开始我会改 background-color 觉得开心得不行,以为掌握了
后来无限突破视野。
在第一次写超过50个class之后就感觉想死,重复性劳动,样式修改调试,写法丑。。。
接触到 Sass 之后像是发现了新大陆,有一段时间甚至不会写原生 css 语法了。
然后折腾: Sass -> Stylus
到这里结束了么? naive
后面还有postcss, cssnext 这些东西。
在 react 生态中还有 css-moles, css-in-js 这些鬼东西。
虽然语法都不是很难。但是这么长时间的折腾下来,虽说提升是有的,但并没有感觉到生产力有多少巨大的提升。
css 到这里还没完。
还有BEM的命名方式要去理解。
到这里依旧没有完。
css3 的新特性,还有各种 hack。比如如何实现footer始终在底部,内容始终撑满全局?如何实现条纹?
到这里结束了么?
依旧没完。
css stage 4 等着去学习。
还有精力?
可以试着多做些兼容性相关的东西。会崩溃,相信我
到这里?
在我的视野中差不多算结束了,然而有谁能确定明天有没有一个什么new-css之类的东西解决什么问题。
JS
来了来了,前端的一个核心。
说JS轻松么?咱们来扯扯。
首先是各种 dom 的增删改,然后是ajax相关。学会了差不多能做简单的页面了。
然后对异步的理解。只有理解了异步才能正常地写js。
然后是对js语言特性的理解。比如ES5如何实现继承什么的,闭包。
总之这些就是面试题总是会问的东西。
之后还应该理解设计模式对吧?
到这里是正常的语言应该学习的内容了。然而js到这里只是起步。
之后一个前端工程师还得会 ES2015/2016 之类的吧。现在不写个async谁好意思说自己是写前端的?
之后应该是配合工具了,后文说。
继续顺着语言往下说。会了 ECMAScript 就能做个合格的前端了么?
还早呢。
之前火的 coffee script 现在不行了,然而 TypeScript 火了啊。不学一下怎么好意思追前端?
ts 对于之前写 Java, C# 的非常友好,基本语法没什么变化。然而可苦了那些不写这些语言的同学。语法改变倒是其次,思维方式的转变才是难以接受的。
现在还有 Elm 了。。。
我觉得我老了,追不上了
㈡ 为什么他们说html+css.很简单而我学得那么困难
css语法简单,应用复杂。
很多人说css简单,只是因为觉得css的规则简单,很容易理解。但是真正实现起来的时候,才会发现有各种问题和疑难杂症。兼容性等等。
css的难点有
定位
布局
动画
代码组织结构
优先级
等等,都需要大量的实践经验之后才能掌握的。所以真正学好css并不是一个想很多人说的那么简单的事情,即便我在前端工作快6年了,最容易遇到问题的也还是css,最难写的特别漂亮优雅的也是css。
㈢ CSS难不难学
CSS一点都不难学,前端最难的地方还是Javascript这门语言。不仅要逻辑思维能力强,还要不停的去操作,去学习才行。
㈣ 会CSS转到前端开发难不难
前端就是Html+Css+Javascript,其中最难的是Javascript,最简单的是Html,现在基于JS出现了Jquery,基于Jquery又出现了Vue,AngularJs等框架,想要转到前端的话,这些框架都需要熟悉,如果不会JS的话,那可能还需要用一段时间来学习JS,以及JQ、Vue、AngularJS,有一定的难度,而且虽然现在很多企业都缺前端,但是他们对前端的要求还是比较高的,一般是需要有经验的前端,具体是否要转前端开发,还是要看楼主自己了。
㈤ 前端开发的难点到底在什么地方
一般意义上的前端项目:
-从0到1,治理晒哦为健全点的都能捣鼓出来;
-从1到60,后后端或者设计岗位勉强能兼任;
-从60到80,需要比较专业的前端;
-从80到100,这么好的前端可遇不可求。
从0到1就是从无到有的过程,很多人用WordPress,建站之星就差不多就能搞个demo了,可以拿去骗投资人的钱。
从1到60,就是勉强可用,基本上让后端工程师或者UI设计师找一套bootstrap的模板东拼西凑的也能勉强应付到第一版本上线。
从60到80,就是真正要做一款能完备、性能优良、架构合理的中小规模产品,没有专业的设计、前端、后端、产品、运营是走不到这步的,差不多到A轮了。
从80到100,那就是追求各方面的极致,与竞争对手一较高下,各个方面没有顶尖的人才都会影响整体的战斗力,木桶效应。
解释一下:
1. 核心竞争力的主体是工程经验。
其实这个结论可以推广到其他研发岗位,就是每个研发岗位的知识体系都是由基础学科知识+领域工程经验构成,彼此不可替代的就是工程经验部分。一个后端工程师一时间不能替代同等级前端工程师到不是基础或者智商的问题,主要是工程经验不足,你让一个前端一个后端分别实现对方领域中一个有明确输入输出的功能函数,二者通过简单学习新语言新语法,加上开发手册查询,一般都能比较正常的实现业务逻辑,但你让他们hold住对方领域的完整项目就很困难了,技术选型,系统设计,模块拆分,平台特性,宿主环境,性能优化,构建部署,系统测试等等都是领域工程经验问题。
2. 工程经验的等级是能cover项目从0发展到80+。
这个很好解释,因为从0-60的非专业前端也能做到,60+的才是专业前端。
所以不用担心核心竞争力问题,60+的前端现在都很抢手啊。工程经验只有60-的话确实压力比较大。
㈥ 前端开发很难吗
相较于其它编程类技术,前端开发是最易学的一门技术。可以这么理解,Web前端开发技术是一个先易后难的过程,它主要包括三个大的技术架构是:HTML、CSS、JavaScript。
HTML是一种超文本标记语言,就是结构标签,并不会涉及到复杂高深的技术逻辑,更多时候是需要牢记、背下来一些标签的作用。所以这个学习阶段主要考验的是记忆力,如果记忆力不好也没关系,可以多记笔记,需要用到什么功能的时候看笔记就可以,时间长了代码练习多了自然就记住了。
CSS的学习方式和HTML大同小异,它的作用是样式配置,更多时候也是一个死记硬背的过程,不涉及太复杂的逻辑。
比较有难度的是学习JavaScript的过程,这个阶段需要接触到很多复杂的逻辑。HTML和CSS需要互相结合学习,只学习这两个只能展现一个静态界面,如果想要增加动态的效果就必须要学习JavaScript。静态页面是比较容易就可以实现的,功能全面的动态页面需要很多复杂逻辑技术的支撑,JavaScrip就是实现这些功能的主要技术。
㈦ 前端开发的难点到底在什么地方
不同级别的前端面临的难点各不相同,不可一概而论;
业务开发的前端难点在于对业务的理解和把控能力;
平台开发的前端难点在于产品化的把控和推进能力。
观点1:不同级别的前端面临的难点各不相同,不可一概而论。
其他回答有说 CSS 难,有说 CSS 不难的,每个人水平不同,这样争论毫无意义。我刚学前端时觉得 JS/CSS/浏览器兼容问题都很难,现在觉得也就那样,因为前端路子广,办法总比问题多。后来觉得要评估好需求,把控好项目质量比较难,很多时候我们是在干事,在解决问题,不是只埋头写代码,时间一长你会发现前端工作中,技术问题往往比较好解决,反而资源+协作问题比较麻烦。现在对我来说比较难的是快速产品化的能力,如何从无到有去做出一些有价值的东西。
举一个简单粗暴的例子吧:阿里前端很多,P5/P6 一大把,但是 P8/P9 的非常少,为什么?进阶的难点在哪里?
前端开发的难点跟前端进阶的难点是非常相似的。阿里对每个前端层级都有一个标准,这也从侧面回答了这个问题,比如对 P5 来说,难点可能是写好业务代码,保证其灵活性和可维护性,能解决各种适配问题;对 P6 来说则需要独挡一面,能独立 owner 需求,而 P7 则需要在某方面技术有深入理解,等等。
能提出这个问题首先得恭喜题主,说明题主在当前阶段遇到瓶颈了,需要向下一个 level 出击了。
观点2:业务开发的前端难点在于对业务的理解和把控能力。
业务逻辑开发本身并不是难点,谁都可以写。但是对于你自己负责的这块业务,后续业务的发展方向和潜力,你有去了解过吗?当业务方提需求过来时你是只负责执行还是和业务方一起探讨更合理的方案?你有没有给自己负责的产品提过一些建议?做过一些改善措施?如果前端只是作为一个执行者,作为一种被调度的资源,那么即使最终项目取得了好的成绩,跟你有多大关系?你自己会有多大的成就感?
另外一个很重要的点:就是对业务的把控能力。业务方总是会催着上线,开发时间不断被压缩该怎么办?进度不如预期怎么办?开发遇到瓶颈怎么办?发布新功能翻车了怎么办?
我见过有默默加班保证进度的,也有跟需求方重新谈延期的,有发布出问题手足无措的,也有自己默默修复的,有遇到瓶颈一筹莫展的,也有及时跟老板沟通,跟业务方撕逼的… 如何优雅的处理这些问题,有时候比写代码更难。为什么有的人业务代码逻辑混乱,写的一团糟?我不相信是智力问题,反倒更相信是对项目本身没有把控好,本来排了5天工作量的需求被业务方压到了3天,你还能保证写出健壮而不失风度的代码?
观点3:平台开发的前端难点在于产品化的把控和推进能力。
做业务时有人给你提需求,帮你出交互视觉稿,你只要负责写页面就行了。但是在支付宝前端,很多内部平台和技术产品都是技术自己主导,你需要自己发现问题,出方案,设计数据库,自己出页面,这是一个从无到有的创造的过程。并且要保证你做的东西是真正解决问题的,而不是做一些自己觉得很牛逼实际上并没有解决用户痛点的东西,用我老板的话说就是对产品的把控能力,不要跑偏了。前端是最容易做出产品化东西的工程师了,因为后端不会做 UI,UI 不会写代码,唯前端兼顾,这是最大优势。
再一个就是对产品的推进能力了,你做的东西可能需要各种资源?如何争取?可能牵扯到多方利益?如何权衡?东西做出来了如何推广?如何在用户的一片骂声中奋勇前进?
印象中很多平台型产品,刚开始投入使用时都是一片骂声,各种问题,说实话负责这些产品的程序员压力是相当大的,天天被骂还得彻夜帮别人解决问题,还得不断优化系统,你说难不难?
以上三点就是本文所展现的理念,希望能对大家有帮助。