设计师该如何学习前端

背景篇

在这个时代学习新东西,一定要善于使用 Bing/Google 等搜索引擎…网络上的资源非常丰富,自学能力也尤为重要,尤其是对于学习技术!

入门篇(HTML/CSS)

说起设计师希望学前端的初衷,大概还是因为各种华丽的网页特效/交互太过吸引人,这种感觉大概就是:“Hey,我的设计可以做成网页访问了呢!”
好在,“展示”对于前端技术来说反而是最简单的部分。所以,放下你对“编程”两个字的恐惧,从“称不上是编程语言”的 HTML/CSS 开始,先做点有成就感的东西出来吧!

对于设计师来说,最有成就感的一定是“可以看到的东西”,而 HTML/CSS 正是用来干这个的,HTML 就是一堆非常简单的标签,而 CSS 无非就是把你画画的流程用英语按一定的格式写出来而已:

<code>&lt;p&gt; p is paragraph! &lt;/p&gt;

&lt;style&gt;
p { color: red;}
&lt;/style&gt;
</code>

是不是非常容易,就跟读英语一样!
接下来,你就需要开始自学啦,比如常用 HTML 标签的意思,各种 CSS 的属性,还有 CSS 的盒模型、优先级、选择器……放心,它们都很容易;能玩得转 PS/AI/Flash/Axure/AE/Sketch 的设计师们,学这个洒洒水啦

推荐几个资源:

  • w3school 在线教程 (中文,一个很 Low 但是又很好的入门学习网站)
  • Learn to code (Codecademy,如果你英文 OK,强烈建议你使用它进行交互式的学习!里面从 HTML/CSS 到搭建网站的课程都有,免费,生动直观)

这个阶段的练习主要是“临摹”:用代码画出你想画的网站,越多越好。

对于书,我非常不推荐上来就去看各种厚厚的入门/指南书,没必要!这一个阶段应该快速上手,培养兴趣,培养成就感。先做出可以看的东西再说,掌握常用的 HTML/CSS 就够用了

如果完成的好,这个阶段过后你大概就可以写出一些简单又好看的“静态网页”了,比如这个作品集/简历:Portfolio – 黄玄的博客 (好久没更新了…丢人现眼)

入门篇(JavaScript/jQuery)

想要在网页上实现一些交互效果,比如轮播图、点击按钮后播放动画?那你就必须要开始学习 JavaScript 了!JavaScript 是一门完整、强大并且非常热门的编程语言,你在浏览器里看到的所有交互或者高级功能都是由它在背后支撑的!

举个小栗子:

<code>alert("Hello World!")
</code>

就这一行,就可以在浏览器里弹出 Hello World 啦!

在了解一些基础的 JavaScript 概念(变量、函数、基本类型)后,我们可以直接去学习 jQuery,你不用知道它具体是什么(它是一个 JavaScript 代码库),你只要知道它可以显著地降低你编写交互的难度就好了:

<code>$(‘.className‘).click(function(){
    alert("Hello jQuery")
})
</code>

通过 jQuery,我们可以继续使用在 CSS 中学到的“选择器”

对于没有编程基础的人来说,想要完全掌握它们两并不容易。作为设计师,很多时候我们可以先不必深究它们的原理,而是尝试直接应用它!这样成就感会来得很快,并且你可以通过实际应用更加理解 JavaScript 是用来做什么的。

我仍然推荐你使用 w3school 在线教程 与 http://www.codecademy.com/ 进行学习。另外,你可以看一看诸如《锋利的jQuery (豆瓣)》 这一类非常实用的书籍,可以让你很快上手做出一些简单的效果来!

如果学习得顺利,你还可以尝试使用各种丰富的 jQuery 插件,你会发现写出支持用户交互的网站也没有那么困难~很多看上去很复杂的功能(比如轮播图、灯箱、下拉菜单),搜一搜然后看看文档(教程)、改改示例代码就好了。

比如说,配合 Huxpro/jquery.HSlider · GitHub 这样的轮播图插件,你可以很轻松的写出 Hux-Slider | Demo 这样的网页相册~

最后,我想推荐下 Bootstrap · The world’s most popular mobile-first and respons ,这是世界上最知名的前端 UI 框架之一,提供了大量 CSS 样式与 jQuery 插件。它非常容易学习并且文英文教程都非常得健全,你并不需要理解它背后的工作原理就能很好的使用它,让你快速达到“可以建站的水平”。另外,你不但可以学习如何使用它,还可以学习它背后的思想。

转职方向一:前端重构

业内通常把专精 HTML/CSS 的前端从业人员成为重构,而对于注重视觉效果的设计师来说,在掌握基本的 HTML/CSS 后,就可以朝着这个方向发展了。

到了这个阶段,你不但要知道怎么写页面,还要知道它们都是为什么,并且知道怎么做更好。这对你理解 Web 世界非常有帮助,并且能帮助你做出更“系统化”的设计。

CSS 的学问很多,你需要开始理解文档流、浮动流等各种定位的方式与原理,理解 CSS 的继承复用思想、理解浏览器的差异、兼容、优雅降级……这里强烈推荐一本书:《精通CSS(第2版) (豆瓣)》,虽然前端技术突飞猛进,但这本书的思想永远不会过时。

HTML 方面,要开始注重语义化、可访问性与结构的合理,你要开始学习“结构与样式的分离”,这里有一本神书将这种分离做到了极致:《CSS禅意花园 (豆瓣)

另外,各种炫酷屌的 CSS 3 属性你一定会喜欢:你可以用媒体查询做响应式网页设计,你可以用 transiton 和 animation 做补间动画与关键帧动画,用 transform 做缩放、旋转、3D变换,还有圆角、渐变、阴影、弹性盒!样样都是设计师的神器!

如果你还掌握了 入门篇(JavaScript/jQuery)的知识,那么恭喜你!你已经可以做出很多有趣的网页了!很多 minisite 或者微信上的“H5” 小广告,这个程度的你已经可以轻松完成了!

配合上你的设计功力,你可以开始尝试创作一些好玩的东西,比如这种富含交互和动画的网站 绅宝 SENOVA ,它仍然是基于 Huxpro/jquery.HSlider · GitHub 实现的!或者给自己做个小小的个人网站试试

转职方向二:前端工程师

如果你觉得上述的这些都还满足不了你,你渴望做出更多了不起的交互,甚至你已经喜欢上了编程,想要转行做工程师,或者成为一名全栈设计师,那么你可以朝着这个方向继续发展!

这个阶段的最大难度,是你必须学会像一名软件工程师一样思考。你需要踏踏实实学习编程语言,深入理解作用域、对象、类、封装、继承、面向对象编程、事件侦听、事件冒泡等一大堆编程概念,你还需要了解浏览器,学习 DOM、BOM、CSSOM 的 API,你甚至还需要学习一些网络原理,包括域名、URL、DNS、HTTP 请求都是什么…

你可能会被这一大堆名词吓到。确实,想要搞定他们并不容易。但是,你要相信只要你肯花功夫它们也没有那么难,而更重要的是,如果你能拿下他们,你所收获的并不只是这些而已,而是真正跨过了一道坎 —— 你的世界将因此打开, 你看待世界的方式将因此改变

对于这个阶段,你可以继续在 http://www.codecademy.com/ 上学习,但是 w3school 已经不够用了,遇到不会的语法,我推荐你查阅 Mozilla 开发者网络,这是少数中英文都有的超级专业且友好的网站。

同时,你可能需要看一些书本来帮助你学习 JavaScript :

如果你能顺利得渡过了这个阶段,我想你已经能做出很多令你自豪的网站了!试着向身边的工程师朋友询问如何购买域名、配置简单的静态服务器,或者搜搜“Github Pages”,然后把你的作品挂在网络上让大家欣赏吧!

你还可以试着用 JavaScript 写写小游戏,这不但能锻炼你的编程水平还非常有趣~比如这是我刚学 JS 不久后 hack 一晚的产物 —— 用 DOM 实现的打飞机:Hux – Aircraft (不支持手机)

入行篇

如果你能完成上述所有的学习,你已经是一名非常出色的前端学徒了!对于只是想要丰富技能的设计师或者产品经理来说,接下来的内容可能会让你感到不适 ;(
但如果你铁了心想要真正入行进入大公司从事专职前端开发的工作,那么你可以接着往下看:

近几年的前端技术发展迅猛,前端工程师早已不是切切图写写页面做点特效就完事的职位,你需要具备相当完善的工程师素质与计算机知识,成为一名真正的工程师。

你需要非常了解 JavaScript 这门语言,包括 闭包、IIFE、this、prototype 及一些底层实现(ES、VO、AO)、熟悉常用的设计模式与 JavaScript 范式(比如实现类与私有属性)。另外,新的 ES6 已经问世,包括 class, module, arrow function 等等

你需要非常了解前端常用的网络及后端知识,包括 Ajax、JSON、HTTP 请求、GET/POST 差异、RESTful、URL hash/query、webSocket、常用的跨域方式(JSONP/CORS),以及 CDN 缓存、静态网站/动态网站区别、服务器端渲染/前端渲染区别等等

你需要学习使用进阶的 CSS,包括熟悉 CSS 3,使用 Scss/Less 等编译到 CSS 的语言,使用 autoprefixer 等 PostCSS 工具,了解 CSS 在 Scope/Namespace 上的缺陷,你还可以学习 CSS Modules、CSS in JS 这些有趣的新玩意

你需要非常了解前端的模块化规范,可能在你学习到这里的时候,Require.js/AMD 已经再见了,但是 CommonJS 与 ES6 Modules 你必须要了解。(你可以观看我的分享《JavaScript Modularization Seven Day》 来学习 JS 模块化的历史)

你需要熟悉 Git 与 Shell 的使用,包括基于 git 的版本管理、分支管理与团队协作,包括简单的 Linux/Unix 命令、你要知道大部分程序员的工作可以通过 shell 更快更酷的完成,并且很多“软件”只能通过 shell 来使用。你还可以把你的代码放到 github 上与人分享,并且学习 github 上其他优秀的开源代码

你需要熟悉并且习惯使用 Node,包括了解 npm、使用 Grunt/Gulp/Browserify/Webpack 优化你的工作流、对你的代码进行打包、混淆、压缩、发布,你还可以使用 Express/Koa 配合 MongoDB/Redis 涉足到后端领域,或者尝试用 Node 做后端渲染优化你的首屏体验

你需要了解各种 HTML 5 的新 API,包括 <video>/<audio>,包括 Canvas,webGL、File API、App Cache、localStorage、IndexedDB、Drag & Drop、更高级的 DOM API、Fetch API 等等

你需要学习 JavaScript 的单线程与异步编程方法,因为它们非常非常常用、包括 setTimeout/setInterval,回调与回调地狱、事件与event loop、还有 Promise 甚至 Async/Await

你需要非常了解浏览器,包括主流浏览器的名称、内核与差异、包括私有属性与 -webkit-,你需要学习如何使用 Chrome DevTool,你需要了解浏览器渲染的 reflow/repaint 来避免 Jank 并进行有针对性的性能优化

你需要专门学习 Mobile Web,因为移动互联网是趋势。包括 viewport、CSS pixel、 touch 事件、iOS/Android 浏览器的差异与兼容、移动端的性能优化、300ms delay 等等…你还需要知道 Hybrid 是什么,包括 Cordova/Phonegap,更复杂的比如和 iOS/Android 通信的机制,比如 URI Scheme 或者 JS Bridge

你需要学习一些非常火热的前端框架/库,他们不但能帮助你更快的进行开发、更重要的是他们背后所蕴含的思想。包括 Backbone、Angular、Vue、React、Polymer 等等、了解它们背后的双向数据绑定、单向数据流、MVC/MVVM/Flux 思想、Web Component 与组件化等等

你需要学习如何构建 web 单页应用,这是 web 的未来,包括利用 history API 或者 hash 实现路由,包括基于 Ajax + 模版引擎或者其他技术的前端渲染、包括组织较为复杂的软件设计等等

我还建议你学习更多的计算机知识,它们能对你的代码能起到潜移默化的作用,包括简单的计算机体系结构、更广泛的编程知识(面向对象/函数式等)、栈、堆、数组、队列、哈希表、树、图等数据结构、时间复杂度与空间复杂度以及简单的算法等等

你需要了解业内的大神并阅读它们的博客/知乎/微博,比如 @尤雨溪@贺师俊 @张云龙 @徐飞 @张克军@玉伯@拔赤@寸志@题叶@郭达峰 等等等等,很多思想和新东西只有从他们身上才能学到。我还推荐你多参加技术交流会,多认识一些可以一起学习的小伙伴,你们可以互相交流并且一起成长

你需要具备很强的自学能力、对技术有热情并且不断跟进。因为 JavaScript/前端的社区非常非常活跃,有太多的新东西需要你自己来发现与学习:比如 Universal JavaScript(同构)、 前端测试、HTML5 游戏、WebRTC、CSS 4、ES 7、React Native、Babel、TypeScript、Electron 等等等等…

虽然一下扯得有点多,但这些确实就是你未来将会遇到的。你并不需要全部掌握它们,但是却多多益善;你也可以专精在某几个方面,这已经足以让你成为非常专业的前端工程师。

如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。
免费下载地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenter

时间: 2024-11-10 20:08:14

设计师该如何学习前端的相关文章

学习前端开发到底有没有发展?

首先,我们来看一下目前前端的市场是怎样的! 我们可以清晰的看到在3月份市场上就有近18万个前端岗位急需人才,各平台的平均薪资在10K~12K 左右. 互联网公司的前端缺口如此之大,以至于HR整天因为找不到人而焦头烂额! 那么为什么现在还有这么多前端的小伙伴抱怨说工作难找呢? 这是因为这些招人的公司所需要的是一个"靠谱的前端". 现在市场缺的都是哪种 " 靠谱的前端 " 呢? 我们先看看国内的大佬们对于前端的技能需求是什么样的. 腾讯: 美团: 从图中可以看到,现在的

初学者应该怎么学习前端?前端发展路线大剖析!

写在最前: 优秀的Web前端开发工程师要在知识体系上既要有广度和深度!应该具备快速学习能力. 前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件的易用性.分层语义模板和浏览器分级支持等. 前端工程师至少都要满足四类客户的需求: 1.产品经理. 这些是负责策划应用程序的一群人.他们会想出很多新鲜的.奇怪的.甚至是不可能实现的应用.一般来说,产品经理都追求丰富的功能. 2.UI设计

我今年28岁了,我在海棠学院学习前端

今天下午又拖着陈老师讲了一个小时的函数调用和闭包问题,总算给搞明白了.真的非常感谢陈老师的耐心解答,我觉得的像我这么刨根问底的学员也算极品了吧(这里不知道该用什么表情) 出于感谢,不由得想为这家初创的在线教育品牌打打广告.嗯,我今年28岁了,我在海棠学院学习前端. 虽然说是打广告,但我想讲讲这三个多月来在海棠学习前端的真实体会以及一些个人的想法,希望能给一些朋友提供点有价值的参考. 如果你在看这篇文章,那么我想你可能在面临三个问题:1.要不要入前端的坑.2.要不要报培训班学习前端.3.要不要报海

学习前端编程之前的一些建议

这篇文章是对于编程小白新手来说的,对于已经在编程路上蹦跶的菜鸟,老鸟,大牛,请忽略~~哈哈! 1.打字速度是必备的素养! a) 打字速度是必备的素养! b) 可以使用市面上常见的打字练习工具,比如金山打字通等.不要练习中文打字,只练习英文打字就行了.英文文章一定要练习到每分钟100字母以上. 2.认识单词: 学习前端将来会学到很多新的单词,新的单词也不要慌,及时查询出来就行了,安装有道词典可以为我们节约很多的时间. 3.将学习当成兴趣: 把学习当游戏.我们都喜欢游戏,把学习融合到游戏里,从游戏里

开始学习前端开发吧

据说最好的输入是输出,所以听我讲给你听我学到的东西吧. 学习前端入门时,无论在哪儿都告诉我们,要学习HTML+CSS+JS.google之,得到html是超文本标记语言(英语:HyperText Markup Language,简称:HTML). 标记语言,意味着这个不是编程语言,而是用来标记文本的,把标题标记为标题,段落标记为段落,这样,浏览器就能知道这些文字是什么,并用更好的格式显示出来,换句话说,如果你仅仅使用HTML+CSS制作一张网页,上面的各种特效.格式,是你选择出来,而不是制作出来

开始学习前端技术

2006年,初中毕业的我第一次走进了被家长和老师们认为是坏孩子才去的地方-网吧,这是我与互联网的第一次接触. 2010年,大学二年级,在广埠屯奸商处买了一台组装机,这是我的第一台个人PC,开始了我的折腾时代. 2012年,为了折腾火狐,花了几天的时候初步了解了HTML,CSS,JS,后面一直沉浸在火狐的扩展技术中. 2014年,参加工作一年,在京东购买了联想Y430P笔记本一台. 2015年,正式学习前端技术.

iOS开发如何学习前端(1)

iOS开发如何学习前端(1) 我为何学前端?因为无聊. 概念 前端大概三大块. HTML CSS JavaScript 基本上每个概念在iOS中都有对应的.HTML请想象成只能拉Autolayout或者设置Frame的ViewController.好比你在网页上放了一个Button,如果用HTML你就可以设置他的摆放位置,在哪哪个控件里.但是你不可以设置大小,颜色,圆角之类的属性.CSS专门负责HTML管不了的这些颜色啊,大小啊之类的属性.JavaScript主要负责响应事件,你把它想象成iOS

学习前端我读过的书

学习前端我读过的书 从事前端近两年,从零开始,读过的书就像走过的路,走过好多路,光明大道也好,崎岖山路也罢,有些路若不是在笔记中有提到还真忘了我走过. 计算机入门:正如这两本书的名字一样会让我们这些小白对计算机和程序有更清晰的认识,截至目前对的一些内容还一知半解,有时间需重读下. <计算机是怎样跑起来的> <程序是怎样跑起来的> 听了一位前辈的建议,买了些大学计算机课程的书,不过只是翻翻,没细看. <现代软件工程> <软件工程> <Web开发技术>

在学习前端之前,你需要了解。。。。

1.最基础的前端代码分为三个,分别是:HTML.CSS.jQuery,推荐学习顺序为HTML+CSS → jQuery. 2.HTML目前的最新版本是5,jQuery最广泛稳定的版本是1.X. 3.你需要一个编辑器,推荐有Notepad++.VS Code. 4.请尽量不要用到DW等页面设计软件,因为早已过时. 5.在学习前端的过程中请常用流行浏览器自带的F12开发者插件. 6.如果注重于兼容性,请下载安装多个浏览器,例如Chrome.Firefox. 7.目前可以不再需求兼容IE浏览器,因为它