您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

时间:2021-05-19 12:06:14  来源:今日头条  作者:退休的龙叔

各位读者朋友们好,我是龙叔,1名退休老码农,如果从工作算起的话我的码龄有18年,今天我来对前端、后端、全栈这3个方面分享一下我的见解,对于准备学编程或者刚学编程不久的小友,让我来给你们拨开迷雾。

看完这篇文章,你对前端、后端、全栈一定会有一个很全面的认知!


一、前端

(1)何为前端

简单来说,前端开发就是开发网页上的内容展示和与用户的交互。内容展示指的是你在网页上能看到的图片、文字、视频、数字等信息,那与用户的交互指的就是用户在页面上通过点击按钮、输入文字等动作对网站提供数据输入,然后前端对用户的输入进行响应,比如CSDN页面上的内容。

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

举一个更具体的例子,就是如果你在我的文章末尾点个赞,那么页面对你点赞这个动作做出了响应,就是在后台数据库里面把我的点赞量加1。并且在页面上显示视频点赞量加1之后的数量。

(2)前端常用的技术

前端开发用到的基础技术就是htmlcssJAVAScript,分别用来控制网页里面的内容、视觉效果和用户交互。

HTML并不是一门编程语言,它是一种用来定义结构化数据的标记语言。你在浏览器上看到的网页其实就对应一个HTML文件,这个文件里装的就是HTML的代码,而浏览器的职责之一就是通过你输入的网址从网站上下载对应的HTML代码,并且把代码渲染成你肉眼看到的样子前端工程师的工作内容之一就是编写HTML代码,或者使用一些技术来为页面动态的生成HTML代码。任何一个网页,你都可以通过浏览器的开发者工具看到它对应的HTML代码。

如果你仔细查看一段HTML代码,你会发现它其实就是有一堆各种类型的尖括号标签组合嵌套而成的。拿我前些日子的文章来举例,在这篇文章上,文章的标题对应于代码里面一个title类型的标签,文章的视频就对应于一个video类型的标签,我的头像和图片对应于一个嵌套在超链接标签里的image标签,而文章里的文字对应着yt-formatted-string类型的标签。


 

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

CSS的代码则是用来指定每个HTML的标签以什么样的外观和风格来展示,比如颜色、字体、长宽、位置、居中还是分散、显示属性等等。CSS的代码也是被浏览器读入,并且渲染成你肉眼所看到的效果。有时候PM会想把页面里面一个按钮的大小和颜色进行微调,改动这个按钮对应的CSS代码来实现的。

前端开发中真正编程的部分是JavaScript。网页如何与用户交互,如何与后端交互,都是通过JavaScript的代码实现的,就像HTML代码和CSS代码是被浏览器执行一样,页面里面的JavaScript代码也是交给浏览器来执行。这里插一句,JavaScript与Java并没有什么关系,两者之间的特性差得很远,这就好比是印度跟印度尼西亚一样,两者之间没有什么关系。

不管用什么语言,通常都不会重复地造轮子,而是会调用该语言现成的库(library)来实现一些常见的功能,让开发过程更加高效。

对于前端加web的开发,React是目前比较流行的库(library),React这个库不仅可以用来实现与用户的交互逻辑和事件响应,事实上页面上几乎全部的HTML代码都可以通过React来生成,这种在浏览器端生成HTML代码进行渲染的方式叫做Client-side Rendering,与之相反的就是Server-side Rendering,也就是页面完整的HTML代码是全部由网站的前端服务器生成好了之后再发给浏览器。

这里提到了前端服务器,就顺便说一下,前端服务器的逻辑可以通过任何编程语言来实现,比如Java、JavaScript、phpPython甚至是Scheme,只要服务器的行为遵守HTTP的协议就可以了。Client-side Rendering和Server-side Rendering两种渲染方式各有优缺点,因此前端工程师在开发网页的时候,需要结合实际情况选择最合适的页面渲染方式。

除了React,另外一种比较流行的JavaScript 库就是Vue,在国内用的比较多,比如B站的HTML代码用的就是Vue。

以上介绍的这些就是前端开发的一些常规技术,HTML浏览器和前端服务器的工作原理,一般会在学校里面计算机网络课程教,CSS、JavaScript和React就主要靠自学了。


二、后端

1.何为后端

讲完了前端,现在来讲讲后端。什么是后端开发呢?相当一部分的后端开发工作就是开发数据访问服务,使得前端可以通过调用后端的服务来对数据进行增、删、查、改,也就是大家经常听到的CRUD,从而实现前端对用户的请求响应。

比如你在一个大型网站注册的时候,这个网站的前端就会调用它的后端,把你的用户信息写入数据库。一个后端服务其实不局限于只被前端调用,它还可以被mobile App调用,还可以被其他的后端服务调用。类比一下,前端往往需要通过调用后端服务来完成对用户。请求响应,而后端服务往往需要通过查询数据库来完成对前端请求的响应。从这个类比你可以看出,前端和后端的共性都是通过调用一个比自己靠后的服务来对前方客户的请求进行响应。


 

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

后端工程师的工作范畴很广,几个比较常见的就是设计后端服务的AP、架构图、数据库,以及写代码实现后端服务的业务逻辑,同时你还需要保证你设计的后端服务highly available,也就是访问量很大的时候仍然不宕机,并且对客户请求的响应时间很短,或者说吞吐量高,单位时间内能处理的请求数量多。如果要从头搭建一个新的后端服务,那么整个过程需要进行大量的系统设计,也就是后端工程师面试的时候会考到的系统设计,做系统设计非常考察平时知识的积累。

2.后端必备技能和工具

(1)后端服务器

那么后端工程师平时一般需要与哪些技术和工具打交道呢?首先就是后端服务器了,和前端服务器一样,后端服务器也可以由几乎任何一种编程语言实现,只要能把正确的数据返回给调用者就可以了。

主流的编程语言也有各自流行的Web框架,也就是现成的轮子,来帮助大家站在框架的肩膀上,快速地实现一个后端服务。比如基于Java的Web框架有Spring Boot和Dropwizard,基于JavaScript的有Express,基于Python的有Flask,这几个web框架每一个都有大厂在使用,不同的公司具体选择哪种框架,一定程度上是看创始的程序员们最喜欢哪种语言,哪种框架用的最6。

还有一些后端服务的框架可以支持你用多种编程语言来开发,而不是绑在一门特定的语言上,比如gRPC这个远程调用框架,支持用Java、C++、Python、GO等语言来开发。

这么多的语言和框架,如果你想去某个公司做后端开发,一定需要对他们使用的语言和框架很熟练吗?一般来讲,不会。对公司来说,你会其中一部分就够了,很多东西都是在工作里面学的,而且事实上2~3周内上手一门新的语言,是一名职业程序员的基本素养。

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

(2)数据库

除了开发和维护后端服务器,后端工程师还会花大量的时间在数据库上,不管是为你的后端服务创建数据库,还是为数据库的性能调优或者是分析里面的数据。

目前最常用到的数据库是关系型数据库,比如在工业界被广泛使用的MySQL和PostgreSQl。如何设计一个关系型数据库?如何使用SQL query来访问数据,以及如何依靠index来为数据查询加速?这些知识点在学校的数据库课程里面也会介绍到。

然而学校数据库课程里面介绍的比较少,但是近年来用的又越来越多的是非关系型数据库,也就是大家常说的No-SQL数据库,比如基于JSON文档的MongoDB,比如基于LSM的LeveIDB。这些数据库在某些特定的情况下,可能会比关系型数据库更适合你的业务需求,可以在工作中去学习它的原理和特性。

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

关于服务器和数据库,过几天我会专门更新文章来详细介绍,感谢的小伙伴可以关注我。


三、全栈

何为全栈?全栈就是全干,就是自己能过构建和部署一个完整的可以工作的Web APP,能够独立编写前端、后端代码,能够配置服务器,还能够设计数据库,基本上前面所提及的前端和后端技能及工作内容你读得掌握。

不过薪资也会比较高,比前端工程师或后端工程师都要高,虽然1个人要干2个人的活儿,但一般情况下还是拿不到2个人的钱,当然了,技术牛逼的话1个顶好几个普通程序员。


 

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

四、一些建议

(1)主做前端?主做后端?还是做全栈工程师?

我觉得你不需要这么早下结论,你只要去工作就可以了,在工作中学习,最后你自己会从中发现适合你的方向。比如我自己,从一开始刚出来工作时主做前端开发,后面做着做着遇到了瓶颈,技术和薪资都没怎么提升,后面自己去认真学了后端,加上一些机遇,部门里刚好做后端的离职了紧缺人,让我顶上去,结果我一顶上去就没下来过,虽然工资没有翻倍,但也加了不少,自此成为全栈工程师。

(2)面试刷题必不可少

不管你是面试前端还是后端,都会涉及算法的考察,刷题是必不可少的,刷题的网站有很多,比如牛客网、力扣、赛码等等,都是很不错的。


 

对前端、后端和全栈感兴趣的人,建议都看看!18年老程序员忠告

在这里插入图片描述

(3)前端和后端哪个更容易?

从我这么多年的程序员生涯来看,我并不觉得前端和后端哪个更好或者更容易,区别就在于使用的技术和考虑的方面不同。前端主要考虑用户体验,后端主要考虑底层业务逻辑、平台稳定和性能,最主要是要看你想做哪一部分?你是喜欢做用户看得见的部分,还是考虑用户看不见的部分。

(4)女生更适合做前端?

我经常听到有些人说“女生审美好,更适合做前端”这种话,我就纳了闷了,这跟性别审美有关吗?我以前做前端的时候,公司里面都有统一的界面规格,做什么都直接调用库里面现成的component,按钮、字体和边框长啥样,内容排序都不是我决定,是PM和UI设计师决定,你的审美也肯定没有设计师专业。

我就纳了闷了,这跟性别审美有关吗?我以前做前端的时候,公司里面都有统一的界面规格,做什么都直接调用库里面现成的component,按钮、字体和边框长啥样,内容排序都不是我决定,是PM和UI设计师决定,你的审美也肯定没有设计师专业。

所以并不是女生就更适合做前端。



Tags:程序员   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  Tags: 程序员  点击:(1)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  Tags: 程序员  点击:(8)  评论:(0)  加入收藏
什么是shellshell是c语言编写的程序,它在用户和操作系统之间架起了一座桥梁,用户可以通过这个桥梁访问操作系统内核服务。 它既是一种命令语言,同时也是一种程序设计语言,你可以...【详细内容】
2021-12-16  Tags: 程序员  点击:(16)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  Tags: 程序员  点击:(20)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03  Tags: 程序员  点击:(15)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  Tags: 程序员  点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  Tags: 程序员  点击:(14)  评论:(0)  加入收藏
序言:前段时间织梦因为版权的问题在网上闹得沸沸扬扬,也提醒了众多开发者选择cms上应该谨慎使用,今天给大家展示一款自己搭建的内容管理系统,不用担心版权的问题,而且非常容易维...【详细内容】
2021-11-30  Tags: 程序员  点击:(31)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  Tags: 程序员  点击:(42)  评论:(0)  加入收藏
一、Java 线上诊断工具 ArthasArthas是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。工具的使用场景:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我...【详细内容】
2021-11-17  Tags: 程序员  点击:(35)  评论:(0)  加入收藏
▌简易百科推荐
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  just do丶IT公众号    Tags:国企   点击:(1)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  博士聊IT    Tags:程序员   点击:(8)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03    财经杂志  Tags:程序员   点击:(15)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  云南贤哥在深圳    Tags:程序员   点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  findyi    Tags:程序员   点击:(14)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  郭主任    Tags:程序员   点击:(42)  评论:(0)  加入收藏
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  章大千    Tags:编程语言   点击:(40)  评论:(0)  加入收藏
北漂小伙李强(化名),在北京互联网大厂工作7年,月薪3万,离职回老家开摄影店,亏了200万。李强出生于山西一座名不经传的小城市,互联网专业大学毕业的他,没有听父母的劝言回到家乡考公...【详细内容】
2021-10-29  霸王课  今日头条  Tags:程序员   点击:(51)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  编程的艺术    Tags:   点击:(29)  评论:(0)  加入收藏
软件工程专业有Web开发、移动终端开发、大数据开发、计算机系统工程师、视频开发工程师、计算机软件应用工程师等就业方向。第一,Web开发。Web开发包括前端开发和后端开发。...【详细内容】
2021-10-19  辰新   企鹅号  Tags:软件工程   点击:(79)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条