【程序人生】前端、后端、全栈工程师,分别是什么?又有什么区别?

一、前端开发 1. 开发网页上的内容展示和与用户的交互。 2. 基础技术:HTML控制页面内容、CSS视觉效果、JAVASCRIPT用户交互 3. 但是写程序的时候,大家都不会重复造轮子,而是调用现成的library来实现一些常见功能、让开发更加高效。对于前端Javascript而言,React、Vue是目前比较流行的library 二、后端开发

相当一部分的后端开发工作就是开发数据访问服务,使得前端可以调用后端服务,对数据进行增、删、查、改(CRUD——Create Read Update Delete)

比如在网站进行注册的时候,前端就会调用后端,把用户信息写入数据库。一个后端服务器是不局限于只被前端调用的,还可以被mobile app调用、被其他后端服务调用

图片[1]-【程序人生】前端、后端、全栈工程师,分别是什么?又有什么区别?-JieYingAI捷鹰AI

前端往往需要通过调用后端服务来完成对用户请求的响应,后端服务需要通过查询数据库来完成对前端请求的响应。因此,前后端的共性就是,通过调用一个比自己更靠后的服务来对前方的客户请求进行响应

图片[2]-【程序人生】前端、后端、全栈工程师,分别是什么?又有什么区别?-JieYingAI捷鹰AI

后端工程师的技术和工具

一个公司没有你很熟悉的语言和框架,照样能投,对公司来说会其中一部分就够了,很多东西都是再工作里面学的。而且两周内上手一门新的编程语言是一名职业程序员的基本素养。

如何设计一个关系型数据库,如何使用SQL query来访问数据,以及如何依靠index来为数据查询加速,可以在数据库课程中学习。

非关系型数据库No-SQL也开始用的越来越多:比如基于Json文档的MongoDB、比如基于LSM tree的LevelDB。这些数据库在某些特定的情况下可能会比关系型数据库更适合业务需求

数据库往往是一个后端系统的性能瓶颈,也就是最慢的一环。因此后端工程师在进行系统设计时会用很多办法来使得后端的性能、比如响应时间,尽量少被数据库拖后腿。比如使用MemCached这种缓存系统来加速后端读取数据的速度,比如用Kafka把数据写入异步化,提升后端写入数据的性能

三、全栈开发

自己构建和部署一个完整的、可以工作的Web App。独立编写前后端代码、配置服务器、还能设计数据库

无论那种岗位,都要考算法,因此都要刷题

四、Bonus

这里其实要说明一下,即使是全栈,也最好要有一门拿得出手的比较深入的具体方向,不然只能沦为api工程师。

国内的很多程序员,其实也会一些跨端的技术,比如说,我是 iOS 开发方向的,也认识不少 iOS开发,会 Go、Cpp、JS,与 iOS 开发密切相关的 ruby其实也是很多iOS开发回去学的。

但是写了一段时间,比如说三五年,就需要找到一个自己去深入研究的方向了,因为人的精力是有限的。这个时候,就需要去权衡自己的方向了,没有必要过于求全。就比如说我自己,是一个 iOS开发,在前端技术栈上走的是,React->ReactNative->Rax路线,Flutter也会一点;在后端技术栈上走的是Node.js以及Flask。但是我要是面试,还是会自称 iOS开发。

主要问题还是个人的精力有限,比如说我在iOS的方向上,主要是研究APM,这里面就牵扯到了很多很深入的知识,网络的相关知识要看,不然网络优化就搞不明白;操作系统的知识要看,不然OOM的问题就搞不明吧;甚至还要了解一些硬件方向的知识,不然就搞不明白如何节约电量。

如果你是在校生,学好四大基石很重要:os 计算机组成原理 数据结构与算法,计算机网络。如果你是急于转行找工作的,时间紧迫的,你那学好一门语言基础,掌握一门框架,掌握常用算法,选择一门数据库。其他的不要贪,时间不允许,以后你可以工作中逐渐深入。

老人对萌新的建议:不要一上来就想着憋个大,要整个多么牛逼的东西。如果你真的很牛逼,那这句话你可以略过。 二.技术只是解决问题的工具,你可以深耕技术,但职场发展光技术是不够的。注意目前有些卖课的,打着什么级别的课程,不要管,你学好自己的。三.碰到起着焦虑的标题,比如这个你不掌握就被淘汰,面试官看不起的,建议直接拉黑屏蔽。卖焦虑,是目前卖课商家捆绑销售的常规手段。

最后,希望你们都从编程中一直找到自己的快乐

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享