⑴ 前端开发很难吗
相较于其它编程类技术,前端开发是最易学的一门技术。可以这么理解,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 不会写代码,唯前端兼顾,这是最大优势。
再一个就是对产品的推进能力了,你做的东西可能需要各种资源?如何争取?可能牵扯到多方利益?如何权衡?东西做出来了如何推广?如何在用户的一片骂声中奋勇前进?
印象中很多平台型产品,刚开始投入使用时都是一片骂声,各种问题,说实话负责这些产品的程序员压力是相当大的,天天被骂还得彻夜帮别人解决问题,还得不断优化系统,你说难不难?
以上三点就是本文所展现的理念,希望能对大家有帮助。
⑶ 前端开发很难吗
前端相对Java,C++这些后台编程语言入门难度低一些,但是学习到后期也是一样有难度的,没有难度的东西没有竞争力,对应薪资肯定也不高。
有没有报培训的必要还是要根据你实际情况和自身的需求,很多人都在自学和培训之间纠结。我也回答过很多这方面的问题。
自学可以省钱,灵活不受拘束。但需要你有比较好的自控能力和学习能力。如果没有良好的规划和自控能力很多人自学到放弃只需要一周。
培训有老师全程辅导监督、完善的课程体系、就业服务等。但培训费用昂贵,良莠不齐。学员培训出来找不到工作也大有人在。所以需要你也要擦亮眼睛。现在机构很多,坑的也不少。
所以你需要分析哪种方式更适合你,自学和培训没有绝对的好坏,只是希望你选择到最适合你的方式。
⑷ 为什么前端这么难学,培训班出来的前端。在每个公司都待不长
这只能说明你的前端培训班比较糟糕而已。前端培训千千万,培训前端的万万千,你如果是随便找了一个,你大概率会被坑啊,你想啊,好的大学在全国所有大学当中才能占多少比例啊,更何况民间的机构?
正常的前端培训班本来就是应该通过短期速成的培训,把1~2年的前端开发的工作经验传授于你,如果你根本就没达到这个水准,那就是非常失败的培训啊。
其实前端开发并不难学。前端开发的技术栈。也并没有什么艰深的地方,如果说后端开发的难度是1的话,前端开发只是0.5。前端开发最大的问题是技术栈更新过快。需要不断学习。但是学的内容也并没有超出正常人理解范畴之外的事。
所以得出结论,培训出来的前端程序员在公司都待不长,大概率是自身原因,然后是机构的原因。并不是行业的原因。
⑸ 前端刚上班感觉工作做不了
这很正常,只有尽你的一份力好好学就行了。
很多做web前端的,在实践中的经验远比你在学校里学时,提升更快,以后还有机会,不要着急,慢慢来。从头做起,先不断的完善自己的知识和技能。
现在node,js,angular,js,react,js,vue,js等等新技术更新太快,前端对接api结构是干了后端的事情,我大胆认为将来前端势必还要细分,分为两派,一个以功能性前端为主导,一个以用户体验的前端为主导。
⑹ web前端设计难学吗未来就业怎么样
web前端开发难学吗
大部分人在学习前端的时候都感觉前端很难学,目前大多数的前端开发不仅包括前端代码,例如现在最先进的html5和css3,还包含了美工设计等工作,并不是只是写写几个页面,更多的是用户体验。web前端工程师主要是利用一些html和css等各种web技术,完成标准代码的制作,并且增加一些交互,同时也结合后台效果,完善互联网的开发。
web前端开发,不管是前端还是后端都是要学习的,当前学习的东西有很多,这就导致一部分人感觉web前端很难学。
未来就业如何
对于web前端开发,对现今前端的发展,中国的发展还很落后,中国没有Jquery,没有Node.js,其中最主要的一点是,中国的前端比较封锁,大家都没有分享的觉悟。回头看看,那些发展比较快的行业、软件,为什么发展那么快,最重要的他们愿意分享,开源自己的代码。我很喜欢做前端开慧正发。要说做业务是挑战自己,做前端开发也是很挑战自己的,因为信息更新速度很快,要断的学习,去研究。下面是我来网上转来的一篇文章,写的很有道理。希望我们做前端开发的人心能静下了,好好的学习。因为要学习的知识太多了。在这里我说一句,三百六十行,行行出状元!
关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了,坚持去认真走,就好。在这里,我只是简要说一下自己对于这块儿内容的理解。有一个观点想要分享给大家的是:任何规划和目标的实现都依赖于知识的积累,而知识的积累来源于学习及学习后大量的实践。我提供一个实践途径,我们可以在工作之余的时间在网上或外包公司那里接一些私单做,因为目标不是赚钱,我们可以用最低的价格来提升自身竞争力,获得大量订单就意味着获得大量的实践机会,同时,还有一些收入作为工作成就感之外的安慰奖,还是不错的。
一、职业方向定位
首先,只有确定好自己的职业方向,才能做好职业规划。在我看来,做WEB前端技术能够找到的职业方向有以下几种:
(1)资深WEB前端工程师
这个方向算是一个WEB前端最基本的选择了,在国外,很多老外都能够把自己的专业做到极致,能一辈子就在一个专业领域不断学习和积累。主要在于内因和外因两方面,内因是老外通常思想比较简单直接,容易一直专注于一个领域;外因是国外的环境很好,能够良好的支撑这样的职业发展道路。反观国内,从内因来讲,WEB前端技术人员还是蛮浮躁的,通常会因为WEB前端知识的更新速度太快而觉得学习起来辛苦,最终转向后台或其他道路。从外因来讲,WEB前端人员没有获得公平的待遇,可能从HTML页面制作就开始并沿袭下来的,从来WEB前端人员都比后端人员低一等,貌似前端就是“浅显”的代名词、后端就是“深奥”的代名词,这也直接造就了前端人员的收入无法和后端人员媲美,同时直接巧碧察影响到前端人才市场的活跃程度。另一方面孝茄,前端的技术入门较容易,造成另一个极端情况:人员泛滥、人才稀缺。我想对所有的WEB前端工程师说:面包总会有的,要耐得住寂寞!我个人比较推荐这个职业发展方向,因为,在这个方向下,只要足够耐心、厚积薄发,成功的概率是非常高的。同时,这是一条最单纯的路,我们更多的是花费精力在技术的钻研上,而不是办公室政治等其它琐事。
(2)资深WEB架构师
说功利点儿,我喜欢这个方向,既兼顾了工作的单纯性、又能够减少实际Coding的工作量能腾出更多时间钻研技术。在国内,WEB前端工程师遇到较多的情况是总是反复编写着同样的代码,总是面对着同样的技术和产品,容易感觉枯燥。由于我们拥有最为广泛的WEB相关知识沉淀,使得我们更加容易成为一名架构师。这个职业发展方向不如第一种来得平滑,主要是作为一名架构师不得不学习:后端技术、DBA、Platform等内容,而这种学习通常需要实际操刀做项目,不是自己在家里写两个Demo就好的,这就势必会遭遇一段时间的阵痛期。虽然不是很平滑,但是,对于一个大局观好、悟性好、知识面广的前端工程师,我推荐你们努把力,走一条光荣的架构师之路吧。
(3)自己创业
其实,自己创业是最好的道路、也是成功率最低的道路,挑战和机遇并存。这里,作为一个前端技术人员,需要将自己的视野更多放在行业的动态、产业链的动态、相关产品领域的动态,把关注细节的优势继续保持,同时,增强自己把控一个产品乃至一个公司命运的能力。但是,这条道路和技术之路稍有分歧,后续将不再赘述。
(4)转岗管理或其他
由于这条职业道路和WEB前端技术之路关系不大,故而,这里不做过多讨论,但是,无论是否走上这条道路,我觉得对于任何技术之路,更好的大局观、更广泛的视野是良好发展的必备条件,拥有良好的大局观和更广泛的视野别无他法,只能不断的进行知识的横向拓展和积累,同时,多在横向拓展知识的时候进行实践,把知识变成技能。
二、职业发展目标
我都有一个最终的目标,在这个目标之上,我们需要给自己制定一系列学习和成长计划,制定的方法如下:
第一、梳理知识架构;
梳理知识架构的目的在于,我们要了解清楚,哪些技术是前置、哪些技术是后继,那些技术是深度、哪些技术是广度,按照这两个维度梳理好知识架构之后,我们才能准确地制定清晰的成长目标、高效的成长计划。
第二、分解目标;
我认为,大抵可分解为三个阶段,包括:起步阶段、提升阶段、成型阶段。这三个阶段分别对应着不同的目标:
起步阶段:
1、基本知识的掌握
在我们梳理的知识架构中,按照我们分析的两个维度里最前置的、最浅显的部分,作为打基础的阶段,必须要在这个过程中更多投入到实践中去,我们通常做的多了、熟练了,就认为这部分知识和内容掌握
2、常用工具的掌握
对于常用工具的掌握应该掌握一些有大公司或专业团队背景的流行工具,这些工具的熟练掌握能够提升专业度、职业度,同时,能提升我们的工作效率。我们只有在检验自己对于知识和技能熟练程度的时候,才会自虐式的用Notepad去编写页面、css和脚本等内容。
3、沟通技巧的掌握
通常做技术的人会被定位为“不善沟通”的人,这是为什么呢?究其原因,主要是因为多跟程序和代码打交道,跟人的沟通较少导致。这种时候我们要特别注意增加和人沟通的机会,着重提升这块儿的能力。另一方面,我们通常被称为“不懂沟通技巧”的人。作为一个技术人员,包括我自己,似乎天生就有一些难以接受挑战的缺陷。在国内,我们的技术人员通常都是自己制定方案、自己执行方案,在执行过程中又缺乏相关产品、交互设计等人员的沟通,大多是在自己的思路贯彻下进行开发,久而久之,我们习惯于信任自己的观点、在自己的视角看问题,对于挑战总是百般地“据理”力争。我们需要更多提升的是,如何在对方的视角看问题、如何在用户的视角看问题。
4、良好的开发习惯
开发习惯是养成的,一旦有不好的习惯,对于将来去修正带来的将是很大的麻烦,我们在培养良好开发习惯一定要从起步时做起,例如:写代码之前先分析、先写文档、先写注释。定义变量最好能用直接可理解的语义,最好是拼音,别整英文,尤其是生僻单词,将来自己忘了还要开金山词霸。文件最好有有意义的文件夹命名来管理,文件名最好有意义,需要版本号的最好能和项目版本号一同更新等等。
提升阶段:
1、高级技术的掌握
在提升阶段对于知识和技能掌握,我们需要从梳理好的知识架构中选择更深一层次的技术进行学习,选择之前,我们先通过类比或预估的方法,衡量自身学习的难点,以学习难点和自己最不感兴趣的部分为主。这样推荐大家的原因是:这个阶段我们兴趣正浓,已经度过了苦涩的起步阶段,到达了兴奋的提升阶段,我们要用兴趣和兴奋去挑战最困难的部分,在我们信心受挫和兴趣浓厚之中找到平衡。同时,辅以其他的深层次知识一起学习和研究。
2、产品思想的学习
没有正确的产品思想,很难设计出良好的程序,无论从界面、交互,还是接口、逻辑,不能够理解产品、理解用户需求,我们会给自己造成很大的麻烦,例如:我们千辛万苦用最新技术、最复杂的实现做出的功能,却得不到使用者或领导、同事的认可。为了使我们的工作和学习更加有效率、避免无用功,我们需要不断的学习产品的思想,只有理解了产品的思路,我们才知道用我们的技术去输出什么。
3、各种框架的学习
框架是我们提高工作效率的优秀手段,对于框架的学习是成长必经之路。我们学习框架的路线通常应该是:使用——》分析——》个性化定制——》模仿编写自己的框架。只有大量的使用,才能明白设计框架者在设计背后的思路,只有了解到设计的思路,才能做正确全面的分析,只有正确全面的分析才能支撑我们去对其裁剪或扩展,只有经过实际分析、修改别人的框架,才有可能写出优秀的、自己的框架。学习通常的路线是:学习、理解、模仿、创造。
4、富客户端应用的学习
随着带宽和计算机性能的提升,以及WEB2.0的如火如荼,富客户端应用充斥着互联网,如果你不懂得富客户端应用,你就不能称之为一个合格的前端技术人员。可以按照:Flash动画—>Flash编程—>Flex—>Air—>Silverlight动画—>Silverlight编程的步骤学习,先学Flash后学Siverlight的原因,一来Silverlight还不太成熟,二来,实际Silverlight借鉴了很多Flash的思想,最好在学习的时候不要本末倒置。
5、各种网络协议的学习
WEB前端技术就是云上的技术,云的协议有N种,我们应该着重学习:TCP/IP,UDP,HTTP,POP3,SMTP这几种协议,在开发WEB前端应用过程中,这些协议是我们的技术的载体,有时候决定了我们的应用是否能实现、有时候决定了我们的应用是否高性能,同时,这些协议还是我们和后端技术交互的重要手段,这些协议就像是密码字典,帮助我们把后端传输过来的密文解释成我们前端技术能够理解的明文。
6、程序设计
这个阶段我们需要学习OO、UML、设计模式、设计方法,我们要让技术开发工作变成有目的性、有计划性,并且,这些目的和计划必须有理论的支持,这样,我们设计出来的程序才能够更优秀、我们的开发才更有效率,这样,我们的技术才能有所提升。为什么要学习程序设计呢?主要是,就算我们不用Flash的Action编写程序的前端逻辑,我们至少要把我们自己的Java函数、包的定义规划起来,避免将来自己或他人维护代码的时候出现问题。程序设计能力,在技术人员仍然被看作是程序员的这个年代,是灰常、灰常重要滴。
成型阶段:
到了这个阶段,我也没什么好说的了,如果能达到这个阶段,就证明后续的成长之路是异彩纷呈的,是成为一个资深WEB前端工程师,还是成为一个资深WEB架构师,亦或其他,都要具体分析自身的特点和兴趣所在。如果是资深的前端工程师,我觉得更重要的是去作新技术的研究,互联网技术发展速度日新月异,不断学习新技术,否则就被淘汰。此外,我建议在知识的广度、深度方面最好能挑选一个自己最擅长和最感兴趣的一两个领域深入钻研,不要挑太多,多而不精。如果是资深的WEB架构师之路,我建议要深入了解后台技术,这种深入了解一定要伴随着实际的项目开发,基本方法是:按照别人设计的架构实现几个Server—>自己设计并实现几个Server。
⑺ 前端开发很难吗
目前,有两三年前端工作经验,加上大专及以上学历,会好找工作。现在专业的前端工程师的需求量很大。
对于题主的情况,我有三点建议:
第一,展示前端成果。前端知识学一年不同于做一年,我面试时,会关注应聘者做了什么、做了多久。如果应聘者有github,看一看代码,就可以大致评估出他的能力,准确又节约时间。题主如果有精力,可以在github上放些自己的成果,这会加分不少。
第二,要了解技术细节。应聘者不适合说前端擅长的是js,因为js的技术点非常多。要是擅长js,我一般不信,我会挑难点问,要是都答上来,那是真牛。我期望得到的回答是“ajax原理和应用”、“jquery的应用”、“backbone.js”等框架、“性能优化”,等等。
第三,要懂编程和计算机相关的基础理论。应聘初级前端工程师,我不会关注这个方面。要是中级及以上,就必须懂这些。比如计算机网络的http协议,这是前端十分依赖的基础知识。算法和数据结构是深入js编程的基础。对于中高级工程师,如果不懂这些,连基本的前端性能优化都是做不了的。所以,前端工程师的知识和技能,不限于前端技术,也要懂编程理论和后端知识。
另外,题主应聘时候可以了解一下招聘方的招聘需求是不是很迫切,因为有些时候,招聘方并不是急需招人。
⑻ 前端开发哪部分比较难
难点在于:
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.沟通能力
前端提意见的门槛低。后端提意见需要一定的专业能力。前端做演示,小朋友看,问问他们有什么意见,估计也能提出很多,所以前端需要和跟打交道的能力,如何沟通也是一个不可缺的能力。和客户交流,和后端交流,和产品经理交流。