对于“前端”开发我们需要什么?

我始终认为“工具”是第一生产力,为什么说英国“第一次工业革命”开始,蒸气机的发明,“工具”变的非常重要,但是有时候又会想,真的如此么?我在家乡湘西地区开始生态农业的试验,更多的是对生物多样态的利用和研究,食物链的结合转化,才能生产出有机食材,测量工具的使用功不可没。

那么“前端”我们需要什么样的工具?

Mac OS X 是基于 Unix 的,这太重要了,这意味着Unix下一堆好东西可以随便捡,相信我,你值得拥有。在Mac上的开发环境,各种shell,应有尽有,不要客气,随便用。而且Mac的工具以及操作方式,能让你沉浸在编程的世界中,这无形中提升了程序员的生产构思的效率。

有了retina显示屏你会更追究细节,我自己一贯追崇“细节”决定一切,好的产品,细节会让人感觉很舒服,才会留住“回头客”。

所以Mac OS X 也是迄今为止我认为开发最好的工具,不管从程序的运行效率,工具的多样性,以及兼容unix来看,这都是我唯一的选择。

废话不多说,推荐一本书池建强老师的书《MacTalk 人生元编程》,推荐一个开源项目收集&推荐优秀的 Apps/硬件/技巧/周边等

在上一篇博文中阐述了我个人使用的提高效率的工具和方法,而今天,我想更进一步的阐述一些这么多年来的总结:我们需要什么?

状态

就目前的形势来看“前端”这个行业的热火程度,应该可以用“爆发式”来描述,不管是PC端的原始开发技术,移动端这几年膨胀的“框架”,手机App混合开发的ionic以及react native,链接硬件的cylonjs和osbean,服务端的Nodejs,都预示着“前端”应该说是JavaScript这门语言的可应用程度,超出了很多人的预期,那么我需要问自己,“学的完吗?”

显而易见,学不完。

该如何起航

如果是一个初学者,我想很可能会被这“玩意”吓着了,平心而论,我们应该学会适应它,从你的职业规划中寻找一个方向,方向会指引你的路途,佛教中讲述“方向”是从修行者的实际出发,那么我们,也应该从你的职业规划中出发,找寻一个方向。

一些借鉴该如何起航:

就初学来看HTML,CSS,JavaScript是你唯一的入门方式,如果反过来,我真心的推荐Apple的Swift做为你的入门语言,为什么?因为你需要了解程序的实质是什么,Swift可以很好的让你了解什么是类型系统,什么是面向对象,什么是编译器。

了解“程序”是你起航的开始。

前端可能是这样的

分类 技术代表 评价
PC 原始生产HTML,CSS,JavaScript,最有代表的技术是jQuery 相信是大多数人的入门,适合传统页面的编程。
PC 开始考虑模块以及代码结构,最有代表的技术是RequireJSBackbone.js,这一阶段也会使用了一些工具函数库,开始流行自动构建工具,比如Underscore.jsGrunt 相信大家到了这个阶段,也是Ajax使用最多的时候,无刷新页面,客户端模板也开始应用。
PC Angular开始,整个业界开始风靡双向绑定,依赖注入,自动化测试,Nodejs越来越多的应用在“前端”领域中,国内比较有代表的是司徒正美老师的avalon和尤小右老师的vue WebApp兴起,以及硬件设备越来越给力的计算能力和内存利用率,意味着“前端”开始更加的追求体验,细致,的问题
PC reactjs的出现,又开启了一次新的尝试,Nodejs也开启了从分裂成iojs,又合并成为了Nodejs的进程 Nodejs开始对于前端的工程化越来越重要,想想你使用的工具,多多少少都构建在Nodejs之上。
PC 未来个人感觉web components,编译型的JavaScript会成为很多团队的首选选择,比如FlowTypeScript 编译可以减少在运行时的错误,可以检查代码有利于维护。
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是其中之一
css编译 最有代表的应该是sass 编译的出现让你组织代码,管理更容易了
2015年 通过了ES2015,也许你目前还不清楚这是什么,那么我告诉你,这就是ECMA6,随着今年(2015)Apple WWDC和Google I/O的落幕,一大波的硬件,软件即将更新,数不尽的各种服务类SDK,以及HTML5 Device Api 少年,未来的你面对无尽的学习,以及从PC切换到移动的思维逻辑,可能还有可穿戴设备喔

写到这里,自己都有点感慨,原来这才是“前端”,在这个拼快速迭代,拼细致,拼用户体验的时代,如果你只具备div+css布局,会写一点动画效果,无疑在下一个五年很可能会被淘汰。

我们需要什么?

就工作来看移动肯定是大头,那么我们还需要PC么?也需要,毕竟很多场景还是要在电脑上完成,比如在工作时,你可能就在工作的电脑上,浏览一些网站,下订单,市场大不大?上班的人有多少,它就有多大。

做为一个过来人,我很认真的说,我们需要的是解放自己的心。一句老话,心有多大,你前进的力量就有多大。也许你不在编程领域,你的风采也会在别的领域绽放。

那么,不巧,你选择了“前端”,你还需要坚定的信念,信念是你可以坚持下去的基石,是你不断提高自己专业的力量源泉,很多人说编程是一个青春饭,我个人觉得编程是一次青春思想的解放,是逻辑思维形成的开始,它带给你的无形价值胜于“钱”这样的有形价值,虽然“钱”也很重要。

你还需要规划,这几日我常常坐在雪峰山的山头看星空,越发的感觉到个人的渺小,以及时间的宝贵,如果你不规划,只会让时间消耗在很多琐碎的事情上,学习不成系统,实践没有沉淀。人脑是一个容器,但是随着时间,很多信息片段将被遗忘。

你还需要“放弃”,学会放弃可能很艰难,确实,放弃是你一切的开始,不管之前或者之后,你都要有一个从零开始的心态,面对这些孜孜不倦。

最后你还需要前瞻性,了解技术未来的发展趋势,你才能跟上队伍,那么前瞻性在哪里?

http://skill.phodal.com/这个项目至少能让你保持敏感

保持对Google Facebook开发者大会的关注

尝试去参加一些社区活动,比如JSConf,CSSConf了解国内的最新动态

孜孜不倦

前端对于你来说,这才刚刚开始。

个人建议:

恭喜你,你可以做一些PC的网站了。


又要恭喜亲了,刷副本要升级了,现在你可以尝试一下WebApp了。


这一次,你还未升级,不过可以开始尝试做一些基于Nodejs的工具,和HTML5手机网站,小同志,你有向移动倾向咯。


这一次,ding了,快来行动吧,兄弟,制作你的第一款App并发布到市场

顺便给大家推荐一个App manong-reading,每周的《码农周刊》都会有聚合,平时利用碎片化时间学习是一个不错的选择,也推荐一下血统纯正的《开发者头条》App。


目前为止,你“前端”的基础打好了,更深入的学习就看你自己了

未来是写在最后的

多屏设备是你全力以赴的战场,能否胜利,一切在于你的信念,勇气,规划和“放弃”。

26岁的我,在为未来的“生态农业”重新开始,你呢?

最后我想感谢这一路所认识的朋友,感谢这几年的编程时光,谢谢大家。