这两方面,哪个未来几年更具有潜力
回复内容:
当你问这个问题的时候,我碰到很多类似于这样一个状态的同学,他们都有一个共同的疑问该学php还是nodejs,包括我自己也曾有过同样的经历。幸运的是,通过我内心的挣扎或对当前市场供需关系以及行业发展的综合评估后,我还是在接触了php之后回到js这片天空上来了,一方面是客观因素,一方面是兴趣导致的,前端太好玩了。其实这也是一个开发者成长必须经历的一个洗礼,一个磨难,一个挑战。很多人不差智商,不差情商,不差体力。就是学不好一个东西。最后败在坚持,专注上面了。经受不住其它语言,内心私欲的诱惑,都一一败下阵来。缺少的就是:坚持专注。业界坚持,专注代表: @司徒正美@张鑫旭 。司徒大牛 600篇js文章,司徒正美 - 博客园
,是岁月或历史或势力的见证。张同学42页博文也是一个标志。张鑫旭-鑫空间
关于html5,他是个新东西吗?是新瓶装老酒而已,有实际处理问题的经验,可以平滑的过渡,学习成本很低,但并不表示没有。
以下是我在群内回答一个同学问题时的一点个人建议,仅供参考:
学前台的需要了解后台的一门语言,了解,是要到哪种程度?是要会做一些东西出来吗?
了解数据从数据库中查的动作,或输出传递返回http的这个过程。也可以深入了解一下输入网址之后做了什么事的这个贴子。
http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/
NutUX
从浏览器的渲染原理讲CSS性能-Smallni's blog
浏览器的渲染原理简介
Javascript文件并行加载与顺序执行 《高性能Javascript》读书笔记
js 并行加载与顺序执行
从输入 URL 到页面加载完成的过程中都发生了什么事情? FEX 做最专业的前端
NutUX
浏览器的工作原理:新式网络浏览器幕后揭秘
js和css的顺序关系%E5%92%8Ccss%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%85%B3%E7%B3%BB
js css的顺序
Javascript 装载和执行
浏览器加载和渲染html的顺序
比如了解基本的sql语句,select,delete,update,insert,然后了解各个语言操作sql的基本语句,然后输出到页面上的过程,在深入就是了解一下mvc的开发流程。
然后你会发现,世界上有2种语言,操作sql的后台语言,操作dom的js。
然后就有方向了,学了js,学任何一门后台语言,都可以无缝的跨界,比如php,nodejs,jsp,c#,ruby,python, and so on.区别的是语言开发的平台,工具,有时候连api都是很像似。
从前端的角度我推荐2门语言,php,nodejs。想照顾一些老的东西,就学php,展望新方向可以了解一下nodejs。反正这2个从操作sql的方面来说,有很大的相似性。按照这个结论下来,无论选nodejs,php都可以,可以从主观上判断,到底是那个更适合你。或者做一个小的留言板,看看那个更符合你的思维习惯。
瓶颈就是你写得少,建议多写,用解决实际问题的经验来跨越语言造成的障碍。
刚才你说做一些东西出来,建议有这几个,你可以选择一下:
留言板,个人网站/博客,企业网站,电商网站,文章管理cms,门户网站,难度分别从前到后。
然后回归正题,只是建议你了解,了解是为了把前端干的更好,什么时候真正的深入学习?建议在学好js的前提之下,学习一门后端语言,nodejs或php都有各自的应用场景,要么选一个公司现在用的,要么选择一个适合自己思维的。
另外什么叫学好js?请向各个业界js大牛看起,不一定非要那么深的深度,但一定达到自己力所能及的高度。
最后分享一下我个人的心得:每个人都有好奇之心,这对做技术的来说并不是什么坏事,正因为这颗好奇之心,不断的带领向前迈进。另外了解一下满足一下好奇心没什么不好。就如同我当时学习php一样,感觉学习之后有多牛B,真正的学习后做了一个网站出来之后发现,确实收获不少,对前端也有帮助。但是js的水平还是在原地,除了擅长使用jquery之外,并没有太多的擅长。所以我了解之后迅速回归到原生js的学习当中,就是发起的这个项目 jikeytang/frontcode · GitHub ,
豪情前端作品列表: 然后这是我写了2个月的战果,放到生产中去,肯定有不少bug,但重要的是迈出了第一步。
到目前为止我感觉,还没有达到一个自己满意的力所能及的高度,努力中。但人的精力是有限的,能力是有限的,在有限的精力里边把一件事情做好就已经很不错了。
另外想找个好群就加这个吧:389875212
Node是前端工程师的天使翅膀,前端从此不在固步于浏览器,可以翱翔在服务器端开发(koa chair tianma等),前端工程化工具(yo grunt bower gulp等),跨平台桌面软件(atom编辑器)
HTML5 CSS3 ES6是看家本领
技能掌握越全面,思路越广阔
现在你还对HTML5犹豫?
node到是要看看你工作环境,如果想尝试全端,可以考虑一下,不过说实在的坑比较多,特别是著名的回调金字塔。
前景方向,nodejs与HTML5的前景都可谓一片辉煌:
- 现在的github上js已经是最活跃的社区没有之一,而node的项目基本占了半壁江山,这是一个很活跃很年轻的领域,而且能很方便地解决很多问题
- HTML5则是在各大厂的强力支持下成长的,尚在他不成熟的时候都已经有了大量的PhoneGap应用及桌面端WebView在大量使用它,应用场景相当丰富,也不会跟其它技术栈冲突
而至于说选择,我反对很多说HTML5是基础而Node是进阶的看法,因为这两个根本不是一个范畴的东西。其实在这两者之间的选择,不是纯粹的技术选择,而是关于发展方向的选择:
- Node方向明显是往数据处理及其通信方向走,更偏传统程序员的进阶思路。如果你想做的是程序员,那Node就是前端最好的跳板,在这基础上再去玩其它服务甚或其它语言,都是相当不错的工具或基石;
- 而HTML5明显更往用户方向走,要做到的事情更多是让用户在WEB界面上能有更多样化的功能与交互体验,甚至可以在这基础上做重量级的游戏,等等。
的确,这两者是不冲突的,但从另一方面来说,两边的思维方式却又是截然不同的。作为一名前端,我更倾向于两边都有所涉猎,再根据自己的兴趣及需要进行深入研究。
复制一个之前的答案,我想也适合这个主题
作为一个一直工作于前端的人,我来说说我的经验吧。(ps:我是今年刚毕业的非重点学校(全国五百倒一)的非计算机专业学生,目前在一家外企工作。)
大学时因为好友认识的人比较多,有比较好的人脉,在大二开始的时候,我们接一些学校外面的网站来当兼职以及练手。
那时候我负责的是前端,所以我算是以前端入门web的。由于不是计算机,当时学的东西,要是按照需要学的,如
- CSS Hacker
- 浏览器兼容性
- Javascript以及jQuery
等等这些已经是一些众所周知的事,这里就不多说了。说说之后的事吧,当时Nodejs刚火的时候,试着接触了一下,还没有今天这样子,而且还没有Backbone,Angularjs,ember这些东西。当时,我以为世界就只有这么大,前端也就只有那么点东西。
我猜你需要的是一个方向,因为你学到的前端的知识已经达到你所知道的极限,需要去了解一个更广泛的空间
当我开始实习的时候(外包公司),我开始接触到了更多的东西,我试着用不同的框架去做不同的东西。
我试着拿Nodejs下的CoAP协议去搭建一个物联网框架
phodal/iot-coap · GitHub
试着开始用
- RESTify
- Node Mongodb
- Node SQLite
等框来完成这样一个简单的系统,以及用JS来写测试,mock对象,stub对象,spy对象。
在某个时候,当我和你抱着同样想法的时候,开始了又一次新的旅行
phodal/moqi.mobi · GitHub
拿backbone,mustache,requirejs去搭建一个移动CMS。
接着最近我开始做一个前后端分离的系统
phodal/freerice · GitHub
Node+RESTify提供后台JSON,与cms同样逻辑的系统完成前台。
最后我得出的结论是:
那些认为前端不能一直做的理由是,
看不到前端的未来。看不到前后端分离的未来。
前端在过去也是没有前途的,当时JS没有现在流行,NodeJS还没有出来。但是今天呢?
最后打一个小广告,我的博客,大部分是关于前端的: 狼和凤凰 | Phodal Geek's Life
现代的 Web App 开发其实已经无法离开 NodeJS,目前的JS模块化引发了一系列前端开发应用程序化,也引入了 MVC 框架、Workflow control、编译系统、单元测试环境等等,这无疑对开发人员有了更高的要求,因为以上的一切都不同于传统服务器渲染页面的模式,这一切都是基于 NodeJS 在前端代码中完成。
HTML5 只是基本技能罢了。
1、nodejs相比其他后端语言,更多在于解决底层问题。意味着如果要深入nodejs领域,需要吃透诸如网络协议等学校里面的知识,大家还记得多少?
2、在应用层方面,比较流行的框架是express。express还年轻,应用层的很多坑,它还没完全填上。你是要一边开发业务流程一边填坑?还是要一边填坑一边开发业务流程?
3、过去没有前端,世界依旧美好。后来有了前端,世界更加美好。前端是为了梳理、优化体验。富Web开发和终端开发没区别,到头来还是会独立出UI工程师专职处理UI层面的问题。
4、前端工程师是真的需要一门用Javascript语法的能在服务器常驻运行的语言?还是因为我们后端童鞋不理解我们的所需,提供不了我们所需要的,才涉猎后端。前端不是建立在CPU、内存、硬盘上,而是建立在各种API、Web服务上的。接口充分的时候,有什么是前端不能做的?
PS1:地铁作答,思路略乱
PS2:学习、个人项目,NodeJS都是不错的选择。企业项目,首先评估下你们有没值班的童鞋来随时填坑。
一个理性的web前端其实就不太适合做web前端了。
实际上看你的兴趣,如果你觉得你喜欢H5,就往H5发展。
如果你喜欢nodejs,就发展nodejs。
别思来想去考虑来考虑去的。
如果你左思右想还是拿不定主意,那么你就研究nodejs吧。
因为你的逻辑战胜了你的感性。
如果你觉得nodejs好,都不用思考就想学nodejs,这种感性的思维,你更适合做H5。
如果你学习能力强,其实大可H5和nodejs一起做。
做个全栈工程师也挺好的。
不冲突吧
其实这并不冲突。