写在最前:
优秀的Web前端开发工程师要在知识体系上既要有广度和深度!应该具备快速学习能力。
前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化、SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等。
前端工程师至少都要满足四类客户的需求:
1、产品经理。
这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可能实现的应用。一般来说,产品经理都追求丰富的功能。
2、UI设计师。
这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。一般来说,UI设计师侯倾向于流畅靓丽、但并不容易实现的用户界面,而且他们经常不满前端工程师造成 。1px 的误差。
3、项目经理。
这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间、应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。
4、最终用户。
指的是应用程序的主要消费者。尽管前端工程师不会经常与最终用户打交道,但他们的反馈意见至关重要。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。
好了,列举了这么多…… 你真的还想学前端么?不后悔吧? 如果真的做好了准备的话,哈哈,那我们就一起享受学习前端的乐趣吧!
零基础开始学web前端要学哪些内容?到底该怎么学?
新手学习前端的话,一定要想想为什么要学习它,是出于一种什么心态,然后定位好自己,多向大牛请教,多教一些没有自己水平高的人,那样往往能让自己成长的快,切勿急躁。在这里一定要对自己做分析,然后找出一种适合的学习方法。
Web前端的学习误区:
网页制作是计算机专业同学在大学期间都会接触到的一门课程,而学习网页制作所用的第一个集成开发环境(IDE)想必大多是Dreamweaver,这种所见即所得的“吊炸天”IDE为我们制作网页带来了极大的方便。
入门快、见效快让我们在不知不觉中已经深深爱上了网页制作。此时,很多人会陷入一个误区,那就是既然借助这么帅的IDE,通过鼠标点击菜单就可以快速方便地制作网页。
那么我们为什么还要去学习HTML、CSS、JavaScrpt、jQuery等这些苦逼的代码呢?这不是舍简求繁吗?但是随着学习的深入,就会发现我们步入了一种窘境——过分的依赖IDE导致我们不清楚其实现的本质,知其然但不知其所以然。
因此在页面效果出现问题时,我们便手足无措,更不用提如何进行页面优化以及完成一些更高级的应用了。其原因是显而易见的——聪明的IDE成全了我们的惰性,使我们忽略了华丽的网页背后最本质的内容——code。
正确的方向胜过无谓的努力:
有两只蚂蚁想翻越一段墙,寻找墙那头的食物。一只蚂蚁来到墙脚就毫不犹豫地向上爬去,可是每当它爬到大半时,就会由于劳累、疲倦而跌落下来。虽然它不气馁,一次次跌下来,又迅速地调整一下自己,重新开始向上爬去。
另一只蚂蚁观察了一下,决定绕过墙去。很快,这只蚂蚁绕过墙来到食物前,开始享受起来;而另一只蚂蚁还在不停地跌落下去又重新开始。
很多时候,成功除了勇气、坚持不懈外,更需要方向。也许有了一个好的方向,成功来得比想象的更快。如果在错误的路上奔跑,再怎么努力也是白搭。学习Web前端也是如此,首先应该选择一个正确的学习路线。
在这里将Web前端的学习分为以下几个阶段,具体的学习路线图如图所示:
(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)
>>>>第一阶段--HTML的学习
超文本标记语言(HyperText Mark-up Language 简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户。因此,我们必须掌握HTML的基本结构和常用标记及属性。
HTML 的学习是一个记忆和理解的过程,在学习过程中可以借助Dreamweaver的“拆分”视图辅助学习。在“设计”视图中看效果,在“代码”视图中学本质, 将各种视图的优势发挥到极致,这种对照学习的方法弥补了单纯识记HTML标签和属性的枯燥乏味,想必对各位初学的小盆友们来说必定是极好的!
在学习了HTML之后,我们只是掌握了各种“原材料”的制作方法,要想盖一幢楼房就还需要把这些“原材料”按照我们设计的方案组合布局在一起并进行一些样式的美化。
>>>>第二阶段--css的学习
CSS是英文Cascading Style Sheets的缩写,叫做层叠样式表,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言其样式是可以复用的,这样就极大地提高了我们开发的速度,降低了维护的成本。
同时CSS中的盒子模型、相对布局、绝对布局等能够实现对网页中各对象的位置排版进行像素级的精确控制。通过此阶段的学习,我们就可以顺利完成“一幢楼房”的建设。
“楼房”建设完成之后,我们可以交给用户使用,但是如果想让用户获得更佳的体验,我们还可以对“楼房”进行更深一步的“装修”,让它看起来更“豪华”一些。
>>>>第三阶段--javascript的学习
JavaScript是一种在客户端广泛使用的脚步语言,在JavaScript当中为我们提供了一些内置函数、对象和DOM操作,借助这些内容我们可以来实现一些客户端的特效、验证、交互等,使我们的页面看起来不那么呆板,屌丝瞬间逆袭高富帅!有么有?
此时,也许你还沉浸在JavaScript给你带来的惊喜之中,但你的项目经理却突然对你大吼道
“这个效果在××浏览器下不兼容,重新搞……”
“不兼容?”瞬间石化了有木有?
“我去,坑爹啊!那可是花了我一个晚上写了几百行代码搞定的啊,吐血了都!”
JavaScript的兼容性和复杂性有时候的确让我们头疼,还好有“大神”帮我们做了封装。
>>>>第四阶段--jquery的学习
jQuery 是一个免费、开源的轻量级的JavaScript库,并且兼容各种浏览器(jQuery2.0及后续版本放弃了对IE6/7/8浏览器的支持),同时现在有很多基于jQuery的插件可供选择,这样在我们实现一些丰富的动态效果时更方便快捷,大大节省了我们开发的时间,提高了开发速度,这也充分体现了其 write less,do more的核心宗旨。这个Feel倍儿爽!有么有?
>>>>第五阶段--bootstrap的学习
“豪华大楼”至此拔地而起,但是每天这样日复一日,年复一年的盖楼,好繁琐!能不能将大楼里面每一个单独部件模块化,当需要盖楼时就像堆积木一样组合在一起,这样岂不是爽歪歪?可以实现吗?答案是肯定的。这种思想在Web前端开发中也是适合的,于是乎就出现了各种前端框架,在这里推荐给大家的是Bootstrap。Bootstrap是Twitter推出的一个开源的用于前端开发的工具包,是一个CSS/HTML框架,并且支持响应式布局。一经推出后颇受欢迎,一直是GitHub上的热门开源项目。在项目开发过程中,我们可以借助Bootstrap提供的CSS样式、组件、JavaScript插件等快速的完成页面布局和样式设置,然后再有针对性的微调样式,这样基于框架进行开发大大缩短了开发周期。站在巨人的肩膀上就是爽!
学习Web前端中的一些建议和方法:
在CSS布局时需要注意的一个问题是很多同学缺乏对页面布局进行整体分析,不能够从宏观上对页面中盒子间的嵌套关系进行把握,就急于动手去做,导致页面中各元素间的关系很混乱,容易出现盒子在浮动时错位等情况。建议大家在布局时采用“自顶向下,逐步细化”的思想,先用几个盒子将页面从整体上划分,然后逐步在盒子中继续嵌套盒子。
“君子生非异也,善假于物也”,在学习的过程中还要多浏览一些优秀的网站,善于分析借鉴其设计思路和布局方法,见多方能识广,进而才可以融会贯通,取他人之长为我所用。
每个人的成长与基础不一样,结合自己的实际情况,在执行。还是重复一下,前端的核心是js,css不难,但需要来积累。对前端我是这么看的:
css就像一瓶酒,得品。
html,css总共就那些标签跟选择器属性什么的,但是要写一个有扩展性,健壮性或维护性的页面不容易。现在写页面基本条件反射,不是如何快速的完成,而是思考如果有界面需求修改,怎么在修改代码最少的情况下快速完成需求任务。这是对前端耐力,体力,智力的三重考验。
js就像一把剑,得磨。
js刚开始只是为了较验,随便技术社会的发展,承担的角色越来越重,刚开始玩玩jQuery感觉已经会js了,其实只是冰山一角。随着对js的了解越来越多,他即变态又可爱,即好玩又难控,即有很多兼容问题,但解决兼容是我们基本生存之道。从ajax到jsmvc一路走一路看,高载潮一浪高过一浪。
人生就是一场梦,得作。
技术只是生活的一部分,曾经雄心斗志,如今低头写码。改变能改变的,接受不能改变的。人生有限,兄争朝夕啊。人生学习的态度是:不急不躁,不快不慢。持之以恒,相信自己。不求能改变世界,但求能改变自己的生活。不求健步如飞,但求一步一脚印。感谢磨难,他使我们内心更为坚强。感谢挫折,他使我们不断的成长,感谢bug,他使我们的思维更加深邃。感谢前端,他使我们更加的相信,撑起一片天空需要十八般武艺。
最后,前端工程师的价值体现在哪里? 一起来看下互联网大牛对前端工程师是如何评价的:
张克军 豆瓣前端工程师:
个人认为前端工程师正慢慢演变为产品工程师。WAP App,响应性 UI 等以 HTML5 技术为基础的开发将成为前端工程师的主要工作内容,解决产品跨平台跨设备的实现问题。Javascript,HTML,CSS 这些前端工程师熟悉的,多年使用的语言,作为开放标准将被各种平台所支持。
产品形态和数据的分离是形势所趋。移动时代对产品形态多元化的要求虽然可以靠不同技术分别实现,但要付出巨大的成本。这也是 HTML5 这个 04 年就提出来的标准,直到前两年才火爆的原因。
现阶段的价值也很大。Web 产品交互越来越复杂,用户使用体验和网站前端性能优化,这些都需要专业的前端工程师来解决。另外,在项目中还要弥补设计师在交互设计上的不足,前端工程师在开发过程中起着重要的承上启下的作用。
一两个前端工程师就可以让整个开发并行起来,让设计到实现的转换更顺利。明智的公司应该贮备前端工程师资源。
我不认为前端工程师和产品经理有什么关系。好的前端工程师一定会成为好的交互设计师。前端工程师对信息架构的理解应不亚于专业的交互设计师。
张经纬 前端工程师:
一、前端工程师所需要掌握的基本技能:
Ø HTML CSS
Ø JavaScript
Ø PHP/ASP/或者其他广泛应用在 Web 领域的编程语言
Ø 美术、视觉
二、前端工程师面向于:
Ø 用户
Ø 浏览器
Ø 数据接口
三、那么前端工程师的价值体现在哪儿呢?
Ø 为简化用户使用提供技术支持(交互部分)
Ø 为多个浏览器兼容性提供支持
Ø 为提高用户浏览速度(浏览器性能)提供支持
Ø 为跨平台或者其他基于 webkit 或其他渲染引擎的应用提供支持
Ø 为展示数据提供支持(数据接口)
元彦云端工程师:
关于前端攻城师的价值体现,我觉得主要取决于下面几个方面:
- 与用户最近,最愿意揣测用户,是工程师中最了解用户的
- 前端充满创新
- 前端技能 JavaScript、HTML、CSS....入门易,深入难
- 前后端交互方式多样,适用场景不同,Ajax(Post、Get)、Comet(轮训、长轮训、永久帧、XHR 流)、WebSocket
- 随之浏览器的发展,很多技术方案开始偏向于前端
- 前端不仅仅是 Desktop,而有 Mobile、Pad、TV......
李春平百度研发工程师:
应该来讲有三条路,一个是向前走,一个是向后走,另外一个是一直做前端,深入下去。
向前即是前面所说的往用户体验与交互设计甚至产品设计师上走,这是最能体现前端价值的了,即用户体验,大多人会往这方面走;
向后走就是做 Web 开发,往数据库和后台开发方面走,不再区分前后端,大家深入产品的研发实现,这条路就是与软件工程师融合的路,这是的价值就体现在对于业务功能的实现上;
最后还有的是一直深入做前端开发,比如前端各类库与框架的架构设计,W3C 各种标准深入研究,对于 JavaScript 语言本身的研究,对浏览器的原理分析,对于网络传输协议的原理分析等等,这条路要深入下去很不容易,因为涉及很多原理与根本性的东西,所以走的人也不是很多。
当然了,还有一些彻底离开了前端甚至软件开发,转行专门做产品或者做业务运营。可能会因为有不错的技术背景有一定的优势呢。
胡金埔前端开发者:
我觉得前端工程师需要分两个方向来看各自的价值:
第一个方向:让用户更便捷的获取信息。这是大部门公司前端工程师应该努力做好的事情。拿到 psd,产出线上的代码,这个过程中的每个细节都值得你去用认真的态度做好。表单的各种交互,页面不同元素(区域)间的信息交互,这都未必是普通 ID 可以给你指导好的,你需要依赖自己的技术能力和自己对用户需求的感知去完成。
这个方向的价值就体现为:信息获取是否更加便捷?从而你的用户量是否上涨了?在线预订是否提高了?
第二个方向:让前端更加专业。这是一些研究院的大牛每天做的事情。阅读规范,比较不同版本的区别,并思考引入新特性的意义(技术或商业)。关注 行业的最新发展,找出一些创新点,如果可以的话,站在巨人的肩膀上,不盲目的造轮子。最后,不管是自己的创新还是自己的整理好的当前解决某个问题的最佳方 案,都会给整个行业以及自己的公司的其他前端同学的工作带来更多的支持。
这个方向的价值更加的技术化,可能短时间无法直接量化,但一段时间后,会从提高的个人生产率,页面交互的新模型等方面得到体现,甚至会导致新的产品。
元亮 前端工程师:
产品工程师-Web 产品 APP 化使得前端需要了解产品的设计和交互实现细节,从而使前端代码结构合理可扩展!
跨平台设备实现-并不单单是各浏览器的跨平台兼容了。现在的物理设备多样,只要和用户产生直接互动的实现工作都可以称为前端!
完美优雅实现交互和设计细节-用最精简的代码和最小的代价还原交互和设计的细节,可用性和可访问性的提升!
用户体验和新技术的结合-HTNL5的发展使得 Web 和移动应用有更优和更佳合理的实现方式,网站前端性能优化-节省用户成本,节省公司成本,可扩展的标准接口-语义化的页面使得网站无论从 seo 角度和机器可读行得到更大得提升,标准化可扩展的数据接口使得和后台的联系更佳无缝!同时也会大大提升开发效率。
网站形象的业内 PR-以最直观可见的方式展示公司网站和公司形象!
前端的需求
需要理解产品的逻辑和形成的过程- 希望参与开发产品页面的相关人员参与到产品讨论的阶段,了解产品的需求。以及了解产品的未来的隐性需求!列席即可!
需要了解交互细节-希望参与开发产品页面的相关人员参与到交互讨论当中,理解交互和设计细节! 使页面结构合理和具有可扩展性!列席即可!如果合理化建议可以提出!
需要了解数据接口-理解产品相关模块所需要的数据与相关技术人员沟通形成文档。
需要技术的积累和新技术的学习-希望有团队内的交流活动,头脑风暴!学习了解最新的行业技术,参加业界的交流!
结束语
前端就是后台实现和视觉表现的桥梁,是贯穿在整个产品开发过程的纽带,起到承上启下的作用,一个好的前端工程师他能够很好理解产品经理对用户体验的要求,也能够很好地理解后台工程师对数据逻辑,或者程序逻辑进行分离的要求,并将这些要求转化成前台的开发工作。前端就是网站的门面,它的价值远大于 其他的客户端开发。