对于“前端”开发我们需要什么?
来自:http://lcepy.github.io/2015/07/20/%E5%AF%B9%E4%BA%8E%E2%80%9C%E5%89%8D%E7%AB%AF%E2%80%9D%E5%BC%80%E5%8F%91%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E4%BB%80%E4%B9%88%EF%BC%9F/
我始终认为“工具”是第一生产力,为什么说英国“第一次工业革命”开始,蒸气机的发明,“工具”变的非常重要,但是有时候又会想, 真的如此么?我在家乡湘西地区开始生态农业的试验,更多的是对生物多样态的利用和研究,食物链的结合转化,才能生产出有机食材,测量工具的使用功不可没。
那么“前端”我们需要什么样的工具?
Mac OS X 是基于 Unix 的,这太重要了,这意味着Unix下一堆好东西可以随便捡,相信我,你值得拥有。在Mac上的开发环境,各种shell,应有尽有,不要客气,随便用。而 且Mac的工具以及操作方式,能让你沉浸在编程的世界中,这无形中提升了程序员的生产构思的效率。
有了retina显示屏你会更追究细节,我自己一贯追崇“细节”决定一切,好的产品,细节会让人感觉很舒服,才会留住“回头客”。
所以Mac OS X 也是迄今为止我认为开发最好的工具,不管从程序的运行效率,工具的多样性,以及兼容unix来看,这都是我唯一的选择。
废话不多说,推荐一本书池建强老师的书《MacTalk 人生元编程》,推荐一个开源项目收集&推荐优秀的 Apps/硬件/技巧/周边等,以及总结个人2015提高前端效率的方法和工具,不来看看绝对是你的损失。
在上一篇博文中阐述了我个人使用的提高效率的工具和方法,而今天,我想更进一步的阐述一些这么多年来的总结:我们需要什么?
状态
就目前的形势来看“前端”这个行业的热火程度,应该可以用“爆发式”来描述,不管是PC端的原始开发技术, 移动端这几年膨胀的“框架”,手机App混合开发的ionic以及react native,链接硬件的cylonjs和osbean,服务端的Nodejs,都预示着“前端”应该说是JavaScript这门语言的可应用程度,超 出了很多人的预期,那么我需要问自己,“学的完吗?”
显而易见,学不完。
该如何起航
如果是一个初学者,我想很可能会被这“玩意”吓着了,平心而论,我们应该学会适应它,从你的职业规划中寻找一个方向,方向会指引你的路途,佛教中讲述“方向”是从修行者的实际出发,那么我们,也应该从你的职业规划中出发,找寻一个方向。
一些借鉴该如何起航:
就初学来看HTML,CSS,JavaScript是你唯一的入门方式,如果反过来,我真心的推荐Apple的Swift做为你的入门语言,为什么?因为你需要了解程序的实质是什么,Swift可以很好的让你了解什么是类型系统,什么是面向对象,什么是编译器。
了解“程序”是你起航的开始。
====
前端可能是这样的
分类 | 技术代表 | 评价 |
---|---|---|
PC | 原始生产HTML,CSS,JavaScript,最有代表的技术是jQuery | 相信是大多数人的入门,适合传统页面的编程。 |
PC | 开始考虑模块以及代码结构,最有代表的技术是RequireJS和Backbone.js,这一阶段也会使用了一些工具函数库,开始流行自动构建工具,比如Underscore.js和Grunt | 相信大家到了这个阶段,也是Ajax使用最多的时候,无刷新页面,客户端模板也开始应用。 |
PC | 从Angular开始,整个业界开始风靡双向绑定,依赖注入,自动化测试,Nodejs越来越多的应用在“前端”领域中,国内比较有代表的是司徒正美老师的avalon和尤小右老师的vue | WebApp兴起,以及硬件设备越来越给力的计算能力和内存利用率,意味着“前端”开始更加的追求体验,细致,的问题 |
PC | reactjs的出现,又开启了一次新的尝试,Nodejs也开启了从分裂成iojs,又合并成为了Nodejs的进程 | Nodejs开始对于前端的工程化越来越重要,想想你使用的工具,多多少少都构建在Nodejs之上。 |
PC | 未来个人感觉web components,编译型的JavaScript会成为很多团队的首选选择,比如Flow,TypeScript | 编译可以减少在运行时的错误,可以检查代码有利于维护。 |
Mobile | 基于HTML5,CSS3编写的页面,比如营销广告,最有代表性的技术是Zepto,基于它的效果插件非常多 | 也许大家开始适应了没有960px像素的时候 |
Mobile | HTML5单页应用的出现 | 大多数人会选择把PC端WebApp实现的技术移到这里来,相应的HTML5,CSS3技术开始大量的使用 |
Mobile | HTML5游戏的出现,《神经猫》在微信中的疯传,最有代表性的技术是COCOS2D-JS | 游戏是你复习数学几何知识最好的基友 |
Mobile | PhoneGap的出现,让使用HTML CSS JavaScript开发App成为了可能 | 探索与摸索 |
Mobile | ionic让Angular与Apache Cordova结合开启了高级HTML5混合移动应用开发框架的进程,它最有代表性。 | 利用HTML5 CSS3 JavaScript编写的大量应用开始在市场上可以被找到。 |
Mobile | React Native让开发移动App有了一个新选择,虽然它实现的逻辑,已经有很多人在从前就实现了,但是愿意尝试使用这个技术的人还是蛮多的 | 通过中间语言JavaScript转换成Native语言实现,虽然只有UI |
Mobile | 未来个人感觉HTML5 CSS3 JavaScript会成为很多团队开发App首选选择,抛开一些(游戏)等需要高性能,复杂动画的领域,为什么? | 快速,简单,周期短,试错的机会增加 |
Server | Node.js我相信这应该是最有代表性的,而且未来也会越来越重要 | 使用JavaScript的用户数量巨大,服务器知识的普及,会让学习成本低 |
Database | MongoDB应该是在这个领域比较有代表性 | 数据库的出现,让存储的解决方案成为了可能 |
Docker | 也许你应该要了解一下什么是Docker | 你的开发效率会进一步提升 |
硬件领域 | 听说有人使用cylonjs开发机器人 | 国内也有一家公司推出了智能机器控制器与快速开发框架,嗨,JavaScript已经入侵硬件领域了 |
自动化 | 最有代表的应该是Grunt | 但是你依然有很多选择,gulp是其中之一 |
2015年 | 通过了ES2015,也许你目前还不清楚这是什么,那么我告诉你,这就是ECMA6,随着今年(2015)Apple WWDC和Google I/O的落幕,一大波的硬件,软件即将更新,数不尽的各种服务类SDK,以及HTML5 Device Api | 少年,未来的你面对无尽的学习,以及从PC切换到移动的思维逻辑,可能还有可穿戴设备喔 |
写到这里,自己都有点感慨,原来这才是“前端”,在这个拼快速迭代,拼细致,拼用户体验的时代,如果你只具备div+css布局,会写一点动画效果,无疑在下一个五年很可能会被淘汰。
我们需要什么?
就工作来看移动肯定是大头,那么我们还需要PC么?也需要,毕竟很多场景还是要在电脑上完成,比如在工作时,你可能就在工作的电脑上,浏览一些网站,下订单,市场大不大?上班的人有多少,它就有多大。
做为一个过来人,我很认真的说,我们需要的是解放自己的心。一句老话,心有多大,你前进的力量就有多大。也许你不在编程领域,你的风采也会在别的领域绽放。
那么,不巧,你选择了“前端”,你还需要坚定的信念,信念是你可以坚持下去的基石,是你不断提高自己专业的力量源泉,很多人说编程是一个青春饭,我 个人觉得编程是一次青春思想的解放,是逻辑思维形成的开始,它带给你的无形价值胜于“钱”这样的有形价值,虽然“钱”也很重要。
你还需要规划,这几日我常常坐在雪峰山的山头看星空,越发的感觉到个人的渺小,以及时间的宝贵,如果你不规划,只会让时间消耗在很多琐碎的事情上,学习不成系统,实践没有沉淀。人脑是一个容器,但是随着时间,很多信息片段将被遗忘。
你还需要“放弃”,学会放弃可能很艰难,确实,放弃是你一切的开始,不管之前或者之后,你都要有一个从零开始的心态,面对这些孜孜不倦。
下雨天,我也会瞪着三轮车去拖木屑,当然我指的放弃不是说放弃你的领域,而是要保持敬畏,生活就是这样,拖完木屑,我会到下河街去吃完米豆腐和米粉,
最后你还需要前瞻性,了解技术未来的发展趋势,你才能跟上队伍。
孜孜不倦
前端对于你来说,这才刚刚开始。
个人建议:
-
Swift是你了解编程,很好的去处中文版 Apple 官方 Swift 教程《The Swift Programming Language》,现在已经开启Swift 2.0翻译了哟~
-
开始学习CSS布局咯学习CSS布局也顺便学习一下HTML(不要看我,这个真的非常简单),再来份指导吧,更易理解通用 CSS 笔记、建议与指导
-
了解一下基础的JavaScriptJavaScript 标准参考教程(alpha)顺便再看一下简单使用jQuery
恭喜你,你可以做一些PC的网站了。
-
现在我们开始尝试看一下编程的风格指南Airbnb 英文,中译,以及Google JavaScript Style Guide,良好的习惯,是你可以进一步的基础。
-
汤姆大叔翻译的深入理解JavaScript系列(可能有点老了,印象中还是三,四年前阅读过),不过不要紧只要不是ES2015,它还有用,顺便如果有时间,也可以看一下《JavaScript 模式》
-
建议,从Angular开始,学习一个MVVM框架(其实它也是可以看成”MVC”喔,只不过C变成了ViewModel),一个入门的资源AngularJS入门教程——AngularJS中文社区提供,然后再来一个进一步的翻译“AngularJS”中译本 -《AngularJS》,以及模块化思想。
-
然后学习,你的第一款自动化构建工具吧gulp,全中文的喔,少年,Gulp
又要恭喜亲了,刷副本要升级了,现在你可以尝试一下WebApp了。
-
进一步改变我们开发的方式,学习一下git,听说这玩意猴子都能学会。
-
开始尝试学习一下HTML5,API真的很全和CSS3CSS3 Tutorial 《CSS3 教程》,这玩意,你不学,我只能告诉你绝对吃亏。
-
准备好总结的项目Mars-腾讯移动Web前端知识库和以前认识的一个朋友搞的开源总结mobileTech,顺带看一看zepto,是不是跟jQuery很像呀?
-
Nodejs也是不能错过的七天学会NodeJS
这一次,你还未升级,不过可以开始尝试做一些基于Nodejs的工具,和HTML5手机网站,小同志,你有向移动倾向咯。
- Mac工具,是你最好的良师益友,向某人给你推荐总结个人2015提高前端效率的方法和工具
- 可以看一看ECMA6和promises了
- 学习一下混合开发的框架ionic
- Nodejs也顺带看一看吧《Node.js 包教不包会》
这一次,ding了,快来行动吧,兄弟,制作你的第一款App并发布到市场
目前为止,“前端”的基础打好了。
未来
多屏设备是你全力以赴的战场,能否胜利,一切在于你的信念,勇气,规划和“放弃”。