这里有一个概念我们先要搞清楚, 前端工程师 做什么? 全栈工程师 又做什么? 人的精力是有限的,一个人不可能什么都懂。离开了项目本身,去谈全栈工程师还是前端工程师后端工程师,意义并不大。因为你会的再多,用不上也是没用的,技术更新很快,你一两年不用也就过时了。
如果力求什么都懂,那有可能都做不好。一旦产生比较沮丧的情绪,特别不利于自己的工作。
我们现在来分析一下,前端工程师和全栈工程师的工作内容。由于篇幅有限,我们只用一种 编程语言 JavaScript,作为主要的例子说明语言。
如果你是做网络程序,那网页这一部分是一定要写的啦。这一部分你至少要懂标记语言html, 脚本语言 JavaScript,也要懂css。
做好一个产品级的,你还要懂一些前端的架构,比如说你选择Angular,还是 react ?还是vue?还是其他的框架?
要懂这些框架,你首先要了解,这个框架的优点和缺点。是不是适合自己现在正在做的项目?
到此为止,如果你已经可以胜任上面的工作,那说明你是一个非常合格的前端工程师了。
这种前端工程师又称为前端全栈工程师。
就是因为他掌握的东西比较多,并且方向还都不一样。
好,那我们来看一下后端,假设你会上面的技术,你懂了JavaScript,那么 JavaScript用来做后端的,现在可选的是node js。
这一部分跟前端有一些有一些区别,就是在后端编程的时候你要了解一些 中间件 。还要了解一些涉及相对底层部分的编程,比如说文件操作的。
要了解rest API的概念, 可以提供简单易用的API接口。
数据库这一部分是必须要了解的。数据库目前主要是两种,一种是 关系型数据库 ,一种是 非关系型数据库 。
如果是关系型数据库,必须要了解SQL语言。同时不管是关系型数据库还是非关系型数据库,都要了解json数据结构。
至此你可以胜任一部分后端编程的任务了。
那这个时候我们可以称你为全栈工程师。你的领域的主要编程语言是 Java Script。如果这些能够涵盖你现在所做的项目,那就可以了。
听上去很简单是吧? 先不要高兴的太早。
如果你所在的项目涉及的技术比较多,那就不会这么简单。比如说,你的项目需要写手机端的,手机端又分安卓手机和苹果手机。这两种手机的开发平台,和开发语言又不是一样的。即使使用一些跨平台的架构也需要对这两种平台,都有很深的研究。
服务器端也就是后端编程这一块。有可能是用 c++ ,有可能是用golang,有可能是用Java, 有可能是用 python , 有可能是用dot net core 等等,不一而足。
要把这些全部掌握的话,那你就真的可以称为全栈开发工程师了。
在下有幸,对以上所有的语言和技术都很熟悉,都做过不少企业级的项目。有兴趣的,可以跟我继续深入探讨。
好的,我们这个话题先聊到这里,欢迎关注丁哥开讲,谢谢。