菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

谈谈前端开发与自学

原创
05/13 14:22
阅读数 243

课程推荐:web全栈开发就业班--拿到offer再缴学费--融职教育

起源
这篇博文的起因是这样的:昨晚突然想感慨一下自学前端开发这将近 20 个月的一些心路历程。重点想说的其实是最后一两段话,结果前面铺陈了好千字,遂决定摘取下来成为一篇博文。今日再阅读时,发现有一些事实错误和错别字,也一并做了查证和勘误,遂得此文。 由于本人的大学毕业论文正是前端开发相关的话题,所以查询维基百科后,做了一些文献的引用,之后可能将此文作为毕业论文的一部分。
正文
最近蛮深的体会: 当二十年前,前端领域刚刚出现甚至还不叫前端之时,那会儿的网站开发人员的工作主要是用 Flash 做动画、用 Dreamweaver “可视化编写”网页、用 Firework 切图,所以很长一段时间,业内从业人员俗称或自嘲为“切图仔”。 2010 年 Backbone、Angular等前端 JavaScript 框架的相继出现,让前端开发人员逐渐有了底气:
因为他们也可以借助程序设计领域由来已久的 MVC、MVVM 来构建有可靠范式支撑的SPA(Single Page Application,单页应用) 了。
而 2009 年出现、2011 年后不温不火的 Node.js 把 JavaScript 直接从浏览器端带入到服务器端,继而 npm 社区方兴未艾,进而出现 React、Polymer 等推动 W3C 规范或多方互相影响、借鉴、学习的“新概念”前端 JavaScript 框架,让从业人员意识到:
前端领域也可以实现组件化,反推规范的制定。
而与此同时,前端工程化也告别了刀耕火种之状态,一同步入了初级阶段。 早早地,Node-WebKit(现名为 NW.js) 和 Electron 已在桌面端攻城掠地多时,早有像 Atom 编辑器这样由 Github 社区开发维护并广受好评的成功开源项目。 而后 Facebook 的 React Native 把矛头和目标直指 Android 和 iOS 开发领域,其愿景不可谓不宏大。
React Native 引入虚拟 DOM 的概念,借助中间的抽象层,理论上可以横跨所有平台,支持使用 HTML、 CSS、 JavaScript 构建跨平台产品和应用,大大加速开发效率,减少开发周期。
期间,不乏像 Meteor、MEAN 这样的全栈平台和框架大展身手... 至此,前端领域在短短的四五年间,可谓变幻莫测、生机勃勃,也不免显得稚气未脱,远未成熟... 步入 2016 年,ECMAScript 标准将继续深化,JavaScript 新版本将每年如约而至...而此时此刻,却越发猜不透前端的走向了...
然而,就此打住
AJAX 还未普及之时,“前端”作为 View 层(视图层),仅仅只承担了展示页面效果的工作,往往由后端工程师一并完成,或者说本来就没有前端工程师的职位。 所谓前端,其实就是设计师开始用 Dreamweaver 玩可视化编程了。接着通过 Ajax,前端工作突然可以与服务器进行数据交互了,有了一点独立的苗头,可绝大部分前端工作也还是由后端工程师承担。 2006 年 jQuery 的出现以及接下来几年 jQuery 社区的火爆,让前端工程师能高效完成兼容各大浏览器的页面交互效果的工作。 渐渐地,也就有一些走在前列的“闲人”开始“谋划着”要前端工程师承担更多的职责(也有可能是这帮人不喜欢什么事情都依赖后端工程师)。慢慢地,前端工程师有Node.js 可以把玩了,从此再也不需要依靠后端工程师的协助,便可独自一人完成一整个项目和产品的开发、测试、上线、运维,从此也就必须了解业务逻辑、了解服务、了解路由、了解网络、了解服务器、了解跨平台开发、了解 App 开发...
要点来了
说了这么多,要点其实很简单,可以理解为:
有人不希望总是依赖后端工程师,想要 JavaScript 跨平台,于是搞出了 Node.js
开发者的智慧和力量,将 npm 社区推向前所未有的高度
前端工程师借助这一趋势,只要熟悉 JavaScript 便可一展身手,构建属于自己的产品,不需要后端工程师的协助
然而这其中最大的一个断层便是:
现阶段,绝大多数前端工程师在成为前端工程师之前,都是有经验的后端工程师,这些人自然很容易接受新型“前端工程师”所需要承担的职责,因为本来前端就是从后端分离出来的工种和业务,他们大体都清楚后端领域的基础知识,以及有一定的后端实战开发经验。 然而,这可为难了很多从设计师转行的前端工程师以及零基础学员,因为他们一般都是从View 层,也就是产品的设计与实现(俗称“切图”)开始步入前端的,让他们突然接受业务、数据、网络、服务这些层级,我想一开始多多少少也会迷茫和摸不着头脑罢。
BTW,我就是后者,所以深有感触。
结论
最后,总结一下我自学前端近 20 个月、反观之前的自学历程后,生发的感慨以及自认为合适的自学路径:
如果你的梦想是不借助后端工程师,自行研发一款产品(不可否认,这是我的梦想之一),我建议一开始就想好自己想做什么产品,直接从事后端工程师的工作,也就是学习数据交互、数据库、路由、网络等基础知识,或者是直接学习 Node.js 开发。自学这个之后,你便可以做出可用的功能。 那么接下来的事情就是:产品交互和产品颜值了。此时再自学 HTML 和 CSS,从界面设计与实现的角度切入前端开发,无论是借助 CSS 框架还是 JavaScript 框架实现 View 层的快速设计与开发,那是极极好之事。 至于交互设计,我想只能靠多把玩优秀的产品,从中领悟了,靠的是感性认知和天赋啦。再之后,如果有意抛弃后端,则可以深入学习 Node.js,将后端之所学,在 Node.js 上一一寻找对应。
永远记住:不要为了学习编程语言而学习编程语言。一切从需求和产品出发,需要什么,补足什么。 斯以为此法更为妥当。终。
引用
概念
AJAX: https://zh.wikipedia.org/zh-cn/AJAX
MVC: https://zh.wikipedia.org/zh-cn/MVC
MVVM: http://baike.baidu.com/view/3507915.htm
JavaScript 类库
jQuery: http://jquery.com
JavaScript 框架
Backbone: http://backbonejs.org
Angular.js: https://angular.io
React: http://facebook.github.io/react
React Native: https://facebook.github.io/react-native
Polymer: https://www.polymer-project.org
跨平台框架
NW.js: http://nwjs.io
Node.js: https://nodejs.org
Electron: http://electron.atom.io
全栈框架和平台
MEAN: http://mean.io
Meteor: https://www.meteor.com
JavaScript 规范
ECMAScript: https://zh.wikipedia.org/zh-cn/ECMAScript

文章来自:http://caibaojian.com/toutiao/5972/

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批