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

文章背景:问题本身来自于知乎,但是我感觉这个问题很典型,有必要把问题在整理一下,重新分享出来。

当看到这个问题之前,我也碰到过很多有同样疑惑的同学,他们都有一个共同的疑问该学php还是nodejs,包括我自己也曾有过同样的经历。幸运的是,通过我内心的挣扎和对当前市场供需关系以及行业发展前景的综合衡量评估后,我还是在接触了java, php之后回到js这片天空上来了。一方面是客观因素,一方面是兴趣导致的,前端太好玩了,值得为此奉献一点激情或青春。

其实这也是一个开发者成长必须经历的一个洗礼,一个磨难,一个挑战,他是一个必然的过程。很多人不差智商,不输情商,四肢健全,就是学不好一门语言。我认为最主要还是败在了坚持,专注上面了。经受不住内心私欲或其它语言的诱惑,都一一败下阵来。缺少的就是:坚持专注。业界坚持专注代表: @司徒正美, @张鑫旭 。司徒大牛 600篇js文章,是岁月、历史和势力的见证。张同学42页博文也是伴随着我们的不断成长。

关于html5,他是个新东西吗?是新瓶装老酒而已,有实际处理问题的经验,可以平滑的过渡,学习成本很低,但并不表示没有。

然后说了解后台语言,到底要了解到什么程度呢?

其实说后台语言,其实他包括两类语言,一个叫操作数据库的语言,比如java,php,nodejs,ruby,python,c#等等。一个叫数据库操作语言,比如sql,包括insert,update,select,delete四个动作。所有的页面的一切数据交互都基于这四个操作。从我个人的经历推荐两本书:php与mysql程序设计,第四版,细说php,第二版。这两本都是比较全面的介绍了php,包含了php基本概念与mysql的知识,但都比较浅显,入门而已。

到现在你会发现,其实从前端的角度出发,语言有三种:操作数据库的语言,数据库操作语言,操作dom的js。然后就有方向了,学了js,学任何一门操作数据库的语言(后台语言),数据库操作语言,然后就可以自由组合搭配。而且语言之间有很大的相似性,都可以无缝的跨界。区别的是语言开发的所依赖平台,比如c#依赖于.net,php经常与apache,mysql结合,java依赖于jdk等等的。开发工具也各有不同,比如vs,phpstorm、zendstudio, intellij idea, eclipse等等。但他们的api却很像似,粗暴点说,你抄我我抄你,你中有我,我中有你。

从前端的角度出发我推荐2门语言:php,nodejs。想照顾一些老的东西,维护一些老项目,就选php。展望新方向尤其io操作比较频繁的可以了解一下nodejs。这两个语言各有所长,只是nodejs从语法上来说跟js是无缝的。php的oop跟接近于java的纯oop风格。但这2个从操作sql的方面来说,有很大的相似性。按照这个结论下来,无论选nodejs,php都可以,可以从主观上判断,你更喜欢那个。或者做一个小的留言板,看看那个更符合你的思维习惯。

一般的瓶颈就是你得少,建议多写,用解决实际问题的经验来跨越语言造成的障碍。

建议从以下的顺序来锻炼后台语言:

1. 留言板,

2, blog

3. 企业站,

4. 商城

5. 新闻综合站。

基础的入门之后,就是框架了,从我个人浅显的了解当中,分享一下经验,大概市面上有这几个框架:

1. ci 经典的轻巧框架,在全球的使用量比较靠前,入门比较简单。

2. thinkphp,国内人用的比较多,是国人开发,现在势头真猛,比ci封装的更好,也更傻瓜。

3. yii,这个是目前全球排名第一的框架,但是入门曲线稍高。

4. zend frame这是有php组织开发的框架,文档比较规范,也比较重,适合构建大型项目。

5. laravel 这是一个呼声比较好的一个新型框架,借鉴了Symphony,各方面比较优秀,博众家之所长,但是相对中文资料比较少。

等这些了解了,估计已经入门了,学习应该找到具体的方向了。另外兄弟连的视频教程,质量一般,胜在量多,从基础到框架,应有仅有,最主要是免费。

然后回归正题,只是建议你了解,点到为止,了解是为了把前端干的更好。那什么时候真正的深入学习?建议在学好js的前提之下,吃透js。

比如了解js的作用域,闭包,原型,继承,尤其是作用域与面向对象是js的特色也是与任何一门后台语言比较容易混淆的两个地方。

请向各个业界js大牛看起,不一定非要那么深的深度,但一定达到自己力所能及的高度。

比如有个自己的框架,如司徒正美avlon,比如有一个自己写的小框架,如玉伯的seajs等等。

另外我个人的经验:学什么语言不重要,重要的是趋势你学语言的动力,说白了真正的需求来自那些。我认为需求有两方面。一方面是内在主动型的。比如js学习到一定的程序,写了很多demo或想法需要用更个性化的方式来呈现,这时候需要建一个个人网站或博客来管理你的内容。这时候才选择语言,了解需求产生,开发,发布上线的流程,对你以后的前端工作也是有帮助的。另外一个是外在被动型的,比如同学,家乡的朋友,需要你帮忙做一个企业网站,小的电商网站来做为他们初期企业文化愿景宣传的一个互联网通道,这时候就是一个外在的需求。拿我个人经验来说,我的php经验完全是来自于一次接私单的经历。虽然那次私单以失败而告终,但我在一个月的业余时间里边彻底的了解了php的开发方式,语言特征,后来根据这个基础我成功的开发上线了另外一个朋友的个人网站:http://jing-ui.com,这个网站的开发心得一直想写,但机会不凑巧,只能说敬请期待。明确一个自己感兴趣的目标之后,在选择语言,以兴趣引导语言,学习才有动力。比如做网站,那可能就是php,nodejs,做个简单的blog,在实践中慢慢了解语言,在学习中慢慢成长。 nodejs或php都有各自的应用场景,要么选一个公司现在用的,要么选择一个适合自己思维的。

如果你学会了其中的一个,然后在去了解其它的,可以说,入门会很快,因为里边有很多相同的东西。

最后总结一下我个人的心得:每个人都有好奇之心,这对做技术的来说并不是什么坏事,正因为这颗好奇之心,不断的带领向前迈进。另外了解一下满足一下好奇心没什么不好。就如同我当时学习php一样,感觉学习之后有多牛B,真正的学习后做了一个网站出来之后发现,确实收获不少,对前端也有帮助。但是js的水平还是在原地,除了擅长使用jquery之外,并没有太多的擅长。所以我了解之后迅速回归到原生js的学习当中,就是发起的这个项目 jikeytang/frontcode · GitHub ,

豪情前端作品列表: 然后这是我写了2个月的战果,放到生产中去,肯定有不少bug,但重要的是迈出了第一步。

到目前为止我感觉,还没有达到一个自己满意的力所能及的高度,努力中。但人的精力是有限的,能力是有限的,在有限的精力里边把一件事情做好就已经很不错了。



前端开发qq群:159758989 ,禁止闲聊,非喜勿进~!

时间: 2025-01-08 12:47:22

做为一个前端工程师,是往node方面转,还是往HTML5方面转的相关文章

作为一个前端工程师,CSS是最基本的入门课,你都能做出来吗?

CSS在很多程序员看来那只不过是雕虫小技, 实际上CSS3发展到今天已经强大到超乎你的想象, 当然对于低端浏览器使用者来说,还是以前那样——囧 有时候搞CSS开发确实需要很多想象力,下面一组纯CSS3特效足以描述这一点 以下内容转载自[http://design.yesky.com/show/466/11497966_3.shtml] 设计欣赏:纯CSS3「绘制」的图形图标 IE 标志 作者: Andreas Jacob 在 Firefox 3.6+ 以及Safari 5 上显示最佳.使用了圆角

一个前端工程师到底需要掌握哪些技能?

作为一名前端想要晋升,需要什么条件? 现在在用 React,要不要也学学 Vue? 有必要学习 Node.js/Flutter/ 函数式吗? 这几个问题看似毫无关联,但是其实它们本质上都是同一个问题,这个问题就是"一个前端工程师到底需要掌握哪些技能?" 其实在行业里面,对前端工程师的能力模型有一个基本的认知,不同公司的定义可能有细微差别,但是它的内核是一致的. 这里我给出一张图,是我自己理解的前端工程师的技能模型. 为了方便你理解,我把这些技能具体放进前端工程师的不同级别里,你可以对照

一个前端工程师眼里的NodeJS

JavaScript单线程的误解 在我接触JavaScript(无论浏览器还是NodeJS)的时间里,总是遇到有朋友有多线程的需求.而在NodeJS方面,有朋友甚至直接说到,NodeJS是单线程的,无法很好的利用多核CPU. 诚然,在前端的浏览器中,由于前端的JavaScript与UI占据同一线程,执行JavaScript确实为UI响应造成了一定程度上的麻烦.但是,除非用到超大的循环语句执行JavaScript,或是用阻塞式的Ajax,或是太过频繁的定时器执行外,JavaScript并没有给前端

一个web前端工程师到底需要掌握哪些技能?有何晋升?

对于前端基础需要学习哪些内容,之前文章已经有写过不少了,本篇重在谈论: 作为一名前端想要晋升,需要什么条件?现在在用 React,要不要也学学 Vue?有必要学习 Node.js/Flutter/ 函数式吗?这几个问题看似毫无关联,但是其实它们本质上都是同一个问题,这个问题就是"一个前端工程师到底需要掌握哪些技能?" 其实在行业里面,对前端工程师的能力模型有一个基本的认知,不同公司的定义可能有细微差别,但是它的内核是一致的. 这里我给出一张图,是我自己理解的前端工程师的技能模型. 为了

如何称为一个优秀的前端工程师?

最近在实验室很受打击,导师给的任务没有很好的完成,我能感受到导师的失望,同时对自己也失去了自信心.自信心是非常重要的一件事情.所以我需要思考我到底在不就的将来想从事什么工作.最近也是在一直不断地摸索中. 这几天想学前端,我也知道像我这样浮躁是做不成事情的,我尽量能够让自己稳定下来.希望好好学习前端吧. 首先我认为需要明白前端是什么,我认为的前端,是与人交互的接口.这是我当前的理解.在计算机中功能模块的解耦在有些地方能简化开发,使得产品容易维护等优点.所以现在讲究前端后端的分离.在前端中,HTML

成为一名优秀的web前端工程师都需要做些什么?

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种:    第一种一直在问:如何学习前端?    第二种总说:前端很简单,就那么一点东西.     我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师.    如果成为一名优秀的web前端工程师(前端攻城师)? 何为:前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript!它要求前端开发工程师

如何做一名优秀、甚至卓越的WEB前端工程师

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业. Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript! 它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础

前端工程师如何快速的开发一个微信JSSDK应用

亲们,订阅号出来已经很久了,作为一个前端工程师或者全栈工程师,你是不是错过了什么?大概许多攻城狮同砚还没有反应过来订阅号怎么回事,就马上要被微信的应用号秀一脸了.在应用号还没有正式出来之前,我们赶紧一起来看看怎样给自己的订阅号加个网页功效吧. 一.订阅号网页与平凡的HTML5网页的区别 可能会有很多同学还没有弄清楚普通的HTML网页与订阅号网页的差别,我在这里简朴的说明一下. 订阅号的网页就是微信的网页,普通的网页是W3C范例下的网页. 订阅号的网页通常是以遵守W3C的网页规范为前提的,但是也有

一个前端的自我修养

①一个前端的自我修养 今天给大家分享的主题是前端的自我成长,这是一个关于成长的话题. 很多人都有这样的感觉:听了很多技术圈子的分享,有的有深度,有的循循善诱,深入浅出,但是呢,几年下来,到底哪些用上了,哪些对自己真的有帮助了?反而有些模糊. 2015 年我在不同的场合分享了很多内容:有移动端的性能.有适配.有 Web vs Native,也有 hybrid,但是其实我一直比较担心,真正有深度的内容,其实面向的是比较小众的群体,比如说 Hybrid,其实它在大部分公司里面,是只能用现成的. 所以我