前端程序员应该往全栈方向发展吗?坚守前端怎么样呢?

慕课网


这里有一个概念我们先要搞清楚,前端工程师做什么?全栈工程师又做什么? 人的精力是有限的,一个人不可能什么都懂。离开了项目本身,去谈全栈工程师还是前端工程师后端工程师,意义并不大。因为你会的再多,用不上也是没用的,技术更新很快,你一两年不用也就过时了。

如果力求什么都懂,那有可能都做不好。一旦产生比较沮丧的情绪,特别不利于自己的工作。

我们现在来分析一下,前端工程师和全栈工程师的工作内容。由于篇幅有限,我们只用一种编程语言JavaScript,作为主要的例子说明语言。

如果你是做网络程序,那网页这一部分是一定要写的啦。这一部分你至少要懂标记语言html, 脚本语言JavaScript,也要懂css。

做好一个产品级的,你还要懂一些前端的架构,比如说你选择Angular,还是react?还是vue?还是其他的框架?

要懂这些框架,你首先要了解,这个框架的优点和缺点。是不是适合自己现在正在做的项目?

到此为止,如果你已经可以胜任上面的工作,那说明你是一个非常合格的前端工程师了。

这种前端工程师又称为前端全栈工程师。

就是因为他掌握的东西比较多,并且方向还都不一样。

好,那我们来看一下后端,假设你会上面的技术,你懂了JavaScript,那么 JavaScript用来做后端的,现在可选的是node js。

这一部分跟前端有一些有一些区别,就是在后端编程的时候你要了解一些中间件。还要了解一些涉及相对底层部分的编程,比如说文件操作的。

要了解rest API的概念, 可以提供简单易用的API接口。

数据库这一部分是必须要了解的。数据库目前主要是两种,一种是关系型数据库,一种是非关系型数据库。

如果是关系型数据库,必须要了解SQL语言。同时不管是关系型数据库还是非关系型数据库,都要了解json数据结构。

至此你可以胜任一部分后端编程的任务了。

那这个时候我们可以称你为全栈工程师。你的领域的主要编程语言是JavaScript。如果这些能够涵盖你现在所做的项目,那就可以了。

听上去很简单是吧? 先不要高兴的太早。

如果你所在的项目涉及的技术比较多,那就不会这么简单。比如说,你的项目需要写手机端的,手机端又分安卓手机和苹果手机。这两种手机的开发平台,和开发语言又不是一样的。即使使用一些跨平台的架构也需要对这两种平台,都有很深的研究。

服务器端也就是后端编程这一块。有可能是用c++,有可能是用golang,有可能是用Java, 有可能是用python, 有可能是用dot net core 等等,不一而足。

要把这些全部掌握的话,那你就真的可以称为全栈开发工程师了。

在下有幸,对以上所有的语言和技术都很熟悉,都做过不少企业级的项目。有兴趣的,可以跟我继续深入探讨。

好的,我们这个话题先聊到这里,欢迎关注丁哥开讲,谢谢。





丁哥开讲


虽然本身能写几种代码,始终不觉得自己是全栈工程师,全栈工程师其实是全能的一种表现,现在很多人把懂得前端又能开发后端的技术工程师成为全栈工程师,对于一个前端技术人员在掌握本身技能的情况下,如果能在后端上发力做点事情,无疑能拓展技术道路宽度,虽然就技术工种来讲,专注于一个方向长时间的积累更加容易出成绩,如果从技术拓展的角度考虑,懂得里面背后是如何实现的其实也是在从更加深层次了解知识框架,了解对应后端模块如何实现,在设计前端的数据结构的时候更加容易规避问题。

前端最近几年变得非常火热了,也是各大培训机构的最爱,在前几天基本上培训几个月就能很快找到工作,毕竟前端相对来讲比较容易入门,而且前端的框架工具也非常多,但前端成为高手可不是那么容易,前端主要html,css,JavaScript三种编程脚本,JavaScript是核心这种脚本越用越会觉得这种脚本的奇妙性,在编程领域有一种惯性,越是容易入门的编程语言,越是难以成为高手。前端编程最初网站不是很重视,主要桌面版的页面的要求不是炫酷,随着移动端的大方面的普及,对于前端的需求激增,现在很多app都直接采用H5的方式了,所以前端在未来一段时间内市场需求还不不会低了。

前端程序员如何规划技术生涯?

1.基本的前端知识必须具备

前端基础学习学起来非常快,主要还是JavaScript基础语法的学习,还要各种框架的应用,先做到能够使用的程度,伴随着技术的进步,常见的基本的功能可能只需要调用基本的库就能完成了,基础阶段就是以单纯的学习如何使用为主,完成基本的页面布局功能以及动画功能。

2.性能和稳定性

前端包含着大量的代码量,同样的功能不同层次的工程师会给出不同的结果,越是到了后期老工程师越是不轻易去触碰代码,把什么事情都想明白了再去实施,就要考虑如何用最优的代码实现功能,毕竟前端的性能也是非常重要的一个指标,效果非常好但性能非常差,用户体验就会大幅度下降,所以前端不能仅仅考量如何实现,在设计上也要慢慢融入自己的思想,这样纵观整体考量更加容易制造出高质量的前端页面。

3.横向扩展

和前端交叉主要两个方向,设计和后端,如果在前端自身已经掌握差不多情况下,就可以考虑在对接层开始全面的对接,特别是如果懂得和前端对接的后端部分,将完成前后端的贯穿,对于前端的认知又到了一个新的层面。不要排斥去学习后端的知识,编程到了一定层面就是编程思想的问题了,直接涉猎也不会存在非常难点的问题,到最后还是决心问题。

一个程序员首先要有在行业内立足的专业知识,现有生存的专业,然后再全面拓展知识的广度。时间长了积累多了,年龄问题也不会一直困扰程序员了,最后影响因素还是全面的技术能力,这个方向在市场上没有竞争力,就可以切换到别的方向,具备这种综合能力,就可以做一个技术常青树了。

希望能帮到你。


大学生编程指南


答案是肯定的,前端程序员一定要往全栈方向发展,原因有以下几点:

第一:前端开发后端化是一个趋势。目前前端开发得到越来越多的重视,尤其是随着移动互联网的发展,前端技术的场景开发是目前一个重要的开发领域。随着NodeJS的普及,前端开发的后端化进入了一个新的发展阶段,轻量级后端服务将成为一个应用的重点领域。

第二:全栈程序员在Web开发领域逐渐流行。Web开发领域的全栈程序员成为目前科技公司招聘的主要岗位,很多大型互联网公司目前对全栈程序员的需求量越来越大,甚至有的互联网公司只招聘全栈程序员。

第三:全栈程序员能更好的适应开发团队的任务分配。由于全栈程序员对前后端开发都比较了解,所以在任务安排时会更灵活。同时,全栈程序员之间的交流也更直接和高效,有效屏蔽了传统前端不懂后端而导致的部分沟通问题。

第四:能有效缩短开发周期。按照历史经验来看,全栈程序员团队在项目开发的过程中效率更高,开发周期也相对更短,团队整体的能力提升也比较明显。全栈程序员团队在做Code Review的时候有明显的优势,因为在技术手段和编码方式等方面的沟通上没有任何障碍,每次交流都会得会有一定程度的收获。

第五:全栈程序员团队更容易创新。与传统开发团队比起来,全栈程序员团队明显在技术选型上更为大胆,也更具有创新精神,因为全栈程序员团队的氛围更容易让程序员有一种“let me try”的想法,而普通开发团队则很难有这种氛围,岗位限制了程序员的创新能力。

目前,不仅在Web开发领域,在移动互联开发领域和大数据开发领域,也在逐渐对程序员提出了全栈开发的要求。所以,对于前端开发人员来说,走向后端是一个必然的趋势,对于后端开发人员来说,走向前端也不可避免。

我做软件开发工作多年,目前也在带软件开发团队,我会陆续在头条写一些关于软件开发方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有软件开发方面的问题,也可以咨询我。

谢谢!


IT人刘俊明


在目前前后端分离的大趋势下,无论是前端还是后端,有志向进一步发展的开发者都需要借助工作机会,往全栈发展,尤其是前端程序员。

在国内,大部分前端程序员(游戏类除外)的工作挑战要小于后端。后端程序员在工作中会更多的涉及到算法与系统架构方面的挑战,也就是说,后端程序员在工作几年后,有了一定的经验积累,是可以往架构师方向去发展的,这是一个不需要你写多少代码,但是要对项目整体负责的高级职位,而且是一个比开发程序员更加重要的,不容易被淘汰的职位。

简单聊聊架构师为什么如此重要,举例淘宝,从个人用户角度会认为淘宝实现的功能并不复杂,最基础的就是搜索,放进购物车,付账嘛。但是你这是从用户侧去感受到的,从架构师的角度,他看到的是双十一时每秒数亿次的高并发请求,是最后一件商品被多个用户抢单的数据一致性,是数据库要抗住在亿万数据集中快速查询的挑战,涉及到金钱,这其中的每一个环节都不能出错,否则就是商业帝国口碑的崩塌。这些挑战,不是读几本书就能解决的,一定是在这个领域摸爬滚打,吃过亏,犯过错,踩过坑,才能积累出的经验。这些经验,都是要在后端发展过,才能积累出来的。

前端的发挥空间就相对有限,因此工作有余力且聪明的前端开发者就将精力用于开发前端框架上,比如目前市面上常见的前端开发框架vue.js, angular还有jQuery等等。那么如果你从事前端开发,最可能的发展,除了写代码实现PM的需求,大概就是开发前端框架了吧。

通过上面的对比,你就能看出前后端开发者的发展方向的差异。作为前端开发的你,如果往全栈方向发展,首先意味着你会比普通后端程序员更了解前端的需求,在联调工作中能够更加顺畅,其次意味着你可以比你的前端开发同僚拥有更广阔的发展空间。

因此,我非常建议有志于继续在互联网行业深耕的前端程序员主动往全栈发现发展。

以上是我的浅见,欢迎各位在下方评论区留言交流。

我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。


苏苏思量


回想2012年还是jquery的天下,后来2015年vue、react开始盛行,到现在的红的发紫也才不过3年光景,当然vue生态圈的nuxt,react的next也是水涨船高,各个技术框架一波又一波,版本一个又一个,不少同学抱怨:老了,学不动了。

那么如何选择学习的课程,如何合理安排时间学习呢?

我们先来看下对于一个大前端的同学来说有哪些技能点需要掌握?

有的同学说这张图已经很吓人了,实际上这张图还描述的不全面,比如这里面没有涉及动画、游戏、视频等等,每个方向都能让人学一辈子,所以对于发问学不完的同学真的要好好思考下哪些课程才是你真正要学的。想弄清楚这个问题,大家要反问自己几个问题?

1. 我现在处于什么阶段

这个是大家要思考的首要问题,如果现在是夯实基础阶段就要脚踏实地,学习一两门课程先吃透再说,这个吃透一定要知道学习的这门课程特色在哪,自己学到了几分,如果自己把握不清楚可以问问该课程的老师。其次,按照这个课程自己多去找一些网站去模仿,用学到的知识点和方法去实现,遇到问题再去回顾下课程所讲述的内容,只要肯下功夫一定有质的提升。根据统计数据,很多同学的课程学习度都不是很高,甚至有的很贵的课程才学习了不到2个小时,如果是这样还不如把买课的钱去吃顿好的(别打我)。

如果自己目前在公司能独挡一面,想有一个晋升的机会,或者想提升自己技术深度或者扩充知识面,这个时候学习的方法要改变一下了,因为这个时候的你时间更宝贵。慕课的很多课程在内容设计上都要考虑照顾方方面面的同学,你要对基础的内容快速过滤,但是不要不听,因为基础的地方也会有讲师出彩的地方。对于重点内容要认真琢磨,讲师为什么要这样设计,他当时考虑的出发点是什么,这个方案有什么不足,方案的特色是什么,都要弄的一清二楚。打个比方我在美团网全栈实战课程中讲了首页菜单的设计,特色是用平行结构代替传统的嵌套结构来实现复杂的交互,用不到15个dom模板节点来实现的,这就是特色,你在网上找不到的方法。然后你要思考这样做有什么好处,能给你什么启发。一门课中这样的特色多了,足可以帮助你快速成长。如果找不到这样的亮点,说明这门课不适合你。

2. 我喜欢什么方向

大家之所以迷茫是因为没想清楚自己喜欢什么方向,上图涉及那么多的知识点,想在几年内学好学精显然不现实,更何况程序员的生命周期有多长?如果你是妹子你还要生娃、带娃,漫无目的的学习足矣让你疲惫不堪。对于前端同学来说,方向无非有几个:纯前端(对不起,只会小程序不算前端)、服务端(node)、游戏(canvas)、视频、可视化、动画。但是对于后三个提供的专职岗位不是特别多,更多是和前端兼职。如果想做纯前端,只要把基础打扎实,懂vue和react即可,甚至都不需要学太深都可以。想学好服务端可能要下点功夫,因为你可以忽略css的学习(会被原谅),但是要懂数据库、redis、http协议等。想做游戏有人说容易有人说难,因为他们对前端不是特别熟悉,用js的语法做前端之外的事,但是图形学是你迈不过去的坎,当然也有很多开源框架帮你处理。其他的也类似,说了这么多无非想说在有限的时间内要在一个方向上学习,不要一会学css一会去node,小游戏出来又去蹭一蹭热度,最后与其说都学了还不如说都没学,因为可能哪个也拿不出手。选好自己的方向,在判断课程是否能给你助力,这样你就会学的很轻松。

3. 未来3年要达到什么样的高度

有人说我怕累,我没时间等等,这要取决于你对自己的要求,大家都以为老板是最好当的,时间是最自由的,这只是错觉。你看不到他融资困难的时候一夜白发、你看不到他被竞品打压到睡眠不足4个小时、你看不到他为应酬身不由己的赔笑。想要达到什么目标就要付出什么样的成本,码农也一样。你想成为高工、专家、行业领头人,你就要不停的学习、思考、拼搏,因为技术在不断革新,不掌握核心的技术自然坐不到核心的位置上去。这个道理大家都懂,只是说服不了浮躁的内心。

对于一个想给自己家庭谋的幸福的前端工程师来说,全栈是必选项,只有掌握前端和服务端的同时,才能在带领团队是衡量利弊,才能不被后端同学所左右,才能在部门大局中赢得尊严和地位,才能在技术革新中保持不衰的竞争力。


而对于全栈而言有几个关键词:前端框架(Vue、React、Angular、Element-ui)、服务端框架(Node、Express、Koa)、前后端分离(SPA)、服务端渲染(SSR、Nuxt、Next)、数据库(mongodb、mongoose、MySQL)、服务端缓存(Redis)、离线(PWA)、开发语言(ES6、Typescript)、数据结构设计、算法设计、设计模式。

所以想走全栈路线的同学来说,上面的关键词都要了解一下了,可以按照这个路线去学习。

作者:快乐动起来呀链接:http://www.imooc.com/article/253076来源:慕课网

慕课网


前端为什么会流行?因为用户体验越来越得到重视,而前端技术适合做用户体验。

前端为什么会后端化?因为前端人才要生存。

事情很容易理解,前后端技术是由两个不同问题域延伸出来的技术,这也决定了各自的技术特点和应用范围。通俗地说:前端的核心竞争力是用户体验,结果却去涉及后端技术所擅长的,这就是最明显的忘记初心。后端技术栈发展几十年都是白发展的?

所以能坚守前端是非常有想法的选择。前端现在还处于混乱阶段,无论是标准性、工程性、集成性都离完备还很远,还有很多发展空间。

但一定要多理解后端技术栈的知识和技术趋势,只有这样才更容易发展前端。这也就是跨界的优势,能在前端取得成就的一定是同时精通前后端技术的。

千万不要用前端技术去解决后端问题,除非你仅仅是为了一份工作。



正宗乌龟鱼


这个没有必要刻意去弄。

时间久了,你会发现,你终归是要会的。


分享到:


相關文章: