热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作为一个前端工程师,是往node方面转,还是往HTML5方面转?

这两方面,哪个未来几年更具有潜力
这两方面,哪个未来几年更具有潜力

回复内容:

当你问这个问题的时候,我碰到很多类似于这样一个状态的同学,他们都有一个共同的疑问该学php还是nodejs,包括我自己也曾有过同样的经历。幸运的是,通过我内心的挣扎或对当前市场供需关系以及行业发展的综合评估后,我还是在接触了php之后回到js这片天空上来了,一方面是客观因素,一方面是兴趣导致的,前端太好玩了。其实这也是一个开发者成长必须经历的一个洗礼,一个磨难,一个挑战。很多人不差智商,不差情商,不差体力。就是学不好一个东西。最后败在坚持,专注上面了。经受不住其它语言,内心私欲的诱惑,都一一败下阵来。缺少的就是:坚持专注。业界坚持,专注代表: @司徒正美@张鑫旭 。司徒大牛 600篇js文章,司徒正美 - 博客园 ,是岁月或历史或势力的见证。张同学42页博文也是一个标志。张鑫旭-鑫空间
关于html5,他是个新东西吗?是新瓶装老酒而已,有实际处理问题的经验,可以平滑的过渡,学习成本很低,但并不表示没有。

以下是我在群内回答一个同学问题时的一点个人建议,仅供参考:

学前台的需要了解后台的一门语言,了解,是要到哪种程度?是要会做一些东西出来吗?

了解数据从数据库中查的动作,或输出传递返回http的这个过程。也可以深入了解一下输入网址之后做了什么事的这个贴子。

html5rocks.com/zh/tutor

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一起做。

做个全栈工程师也挺好的。 不冲突吧 其实这并不冲突。
推荐阅读
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文讲述了作者从最初对软件工程的选择迷茫到逐渐喜欢并坚持学习的经历。作者在大学期间通过学习专业课和参与项目开发,不断挑战自己并取得成就感。虽然曾考虑过转专业和复读,但最终决定坚持学习软件工程,并为自己的未来努力奋斗。作者还提到了大学生活与自己最初的预期不同,但对此并没有太多抱怨。 ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
  • 如何完美的解决时间轴开发中的
    这些天,正在赶一个Ionic+phoneGap+Angular1.0的项目整改,具体涉及到的一个时间轴的开发。首先贴出UI设计图,是图中的蓝色部分的开发:备注:由于这部分 ... [详细]
author-avatar
jimmy2702933123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有