精华内容
下载资源
问答
  • Java后端开发简历

    2018-09-08 00:28:36
    Java后台简历模板,希望可以帮到学弟,祝你一路顺风,
  • 后端开发中的英语—每日一更

    千次阅读 2018-09-05 11:40:07
    invocation 调用 invoke 调用 recursion 递归 importer 进口商,提供商 proxy 代理 JUC 线程池包 RPC:Remote Promote Controll 远程过程控制 ...Balanced binary tree 平衡二叉树(AVL树...

    invocation 调用

    invoke 调用

    recursion 递归

    importer 进口商,提供商

    proxy 代理

    JUC 线程池包

    RPC:Remote Promote Controll 远程过程控制

    trim 修剪

    increment 自增,decrement 自减

    replication 复制,复用

    Balanced binary tree 平衡二叉树(AVL树)

     

    Do what you say,say what you do. 做你说过得,说你做过得。

    Nothing for nothing. 不费力气就一无所得。

    Life means struggle. 生活就是斗争。

    展开全文
  • 前端工程师和后端工程师对于互联网应用开发来说,前端开发和后端开发是工程师的两大工作领域,这点已经是很多同学的常识。于是,经常有人会问,前端工程师和后端工程师都是做什么的?薪资如何?未来的行业发展前景...

    前端工程师和后端工程师

    对于互联网应用开发来说,前端开发和后端开发是工程师的两大工作领域,这点已经是很多同学的常识。于是,经常有人会问,前端工程师和后端工程师都是做什么的?薪资如何?未来的行业发展前景怎样?相信这些对于很多现有的软件从业人员,或是准备入行的门外汉们来说,都是模糊不清的。下面我们就首先来介绍一下二者对技术的要求和职责的范围。从根本上区分它们。

    bfc12edce62768aa427bccf2c4c40400.png

    什么是前端工程师

    前端工程师主要负责面向用户界面的处理。

    在一个网页或者App的页面上,用户能够看到的内容、图片、段落布局、链接、图标以及按钮等等,都属于前端的范畴。在互联网应用出现的早期,并没有所谓前端工程师的岗位细分。这些工作有些是由美工负责, 有些是由程序员负责。那时候,完成页面设计,所需要的技术无非是HTML、CSS和JavaScript脚本语言,也就是俗称的“三剑客”。

    6ad550b3301dab730016170e1f4e41ef.png

    后来随着硬件的发展,客户端的能力被不断提升。更伴随着Web2.0的普及,以及移动互联网的兴起,人们不再满足于让客户端仅仅负责应用内容的展示,更会把一部分运算迁移到客户端来完成。我们会将一些原来服务器端处理的功能迁移到客户端。比如状态管理,以减轻后端的数据吞吐量,提高后端的数据处理效率。再比如路径管理,在传统的多页应用程序开发中,一般都是后端来返回某个页面,前端只负责显示。而现在的应用开发中,一般都是单页应用开发,这样路径的处理就在前端进行了,提高前端应用的处理效率,增强用户体验。

    同时在手机端,因为不同的终端设备在显示方式、显示能力上的差异,更是有了诸如屏幕适配、自适应布局等新的需求。于是,HTML5技术族系就诞生了,相应的,也出现了专注于完成此类工作的程序员群体,于是,前端开发领域应运而生。

    0dfa55331b55995703b55edc77a3fb5d.png

    当然,前端工程师手中最有力的武器,依然是升级版的“三剑客”。

    1387ffaabcf3a7be6ce8de6dba4f706e.png

    但是仅仅使用“三剑客”,开发效率和代码数量都是惊人的,而面对应用的爆炸式增长,以及需求的频繁更迭,各种的框架、工具也就越来越多,以提升开发的效率。

    前几年前端开发用到的技术,除了HTML5、CSS3、JavaScript之外,无非是Jquery、Bootstrap、Node.js 、AngularJs等技术。从开始的切页面,到复杂的前端单页应用,Node服务端应用,移动端React-Native等。

    而苦逼的是,这个领域的开发技术迟迟无法稳定下来,不仅工具、框架的迭代速度很快,而且大的技术体系和新的技术族系,也在不断的发生变革,甚至是颠覆式的革命。于是,前端工程师,一直在疲于应付,疲于追赶。

    57fb6e91916deeb7a3e9649a5f5e685e.png

    近10年间前端技术经历了3次大的变化。2010年--2015年前端主要使用的技术是Android和IOS。2016--2019年使用的技术是HTML5、CSS3、ES6、JavaScript、Vue、RN等。2019年中Google在全球移动者开发大会上,推出了新的前端技术Flutter。这三次变化可以说是翻天覆地的。核心编程语言改了又改,变了又变。比如,Android用的是Java、IOS用的是Objective-C,后面都变成了JavaScript。最后到了Flutter又换成了Dart。这对于前端工程师简直是毁灭性的打击。甚至有些前端工程师在GitHub上公开留言老子学不动了。

    1426b3c8b6b52e1b5353ec290a8dc5af.png

    4f01cae8730de19fbdc4aad95cee8a30.png

    另一方面,前端开发因为涉及的领域比较片面。只负责进行数据展示,不负责核心业务开发,创造的价值有限。所以在后续晋升通道上,天花板也会较低,局限性较大。比如,大神尤宇希(前端著名框架VUE的作者)在加盟阿里巴巴时,只拿到了P9(阿里的技术职级体系)。很多前端工程师为他们的领袖打抱不平。

    d35eae1d1814a680c568431614f06f0d.png

    e10ab7e4db8f2592704bff8a22b27f2a.png

    于此同时,由于前端开发的工作目标,是让用户在PC或手机屏幕上,看到的产品内容更棒,更吸引人,因此,前端工程师要有一些美学的天赋和产品的感觉。这对于很多理工科出身的同学来说,也是不太容易建立的。 

    什么是后端工程师

    后端工程师主要是开发服务器端运行的代码,是用户不可见的。

    14e1a4e9610619decae6d80481905934.png

    打个比方,后端的工作就像盖楼房的地基部分和框架部分。通常,后端工程师需要搭建后端的支撑服务容器;针对于不同行业进行相应的功能接口设计;完成具体的业务逻辑实现。在具体的功能实现部分可以采用Java、Python等编程语言来实现。

    后端开发使用的Java编程语言,主要用到的是包括但不限于JVM、高可用、高并发、Spring、SpringMVC、Hibernate、Mybatis、Http协议、Tomcat服务器等技术。而Python编程语言同样擅于开发后端应用,所使用的主要技术有Django、Flask、爬虫、Numpy、Pandas、Nginx、Matlab、Ternado等。随着云计算、大数据、人工智能的发展,又涌现了Docker容器技术、Serverless、Hadoop、Flink、Pytorch、Tensorflow等新型架构。后端开发的比重、重要性又有了大幅度提高。

    6a3d885575634feb72bcc27bdba70d77.png

    后端开发主要负责系统核心业务实现,是一个系统的灵魂。所使用的编程语言Java(1995年诞生)、Python(1989年诞生),都非常稳定(甚至比好多同学们岁数都大)。随着大数据、人工智能的发展,作为主力编程语言的Java、Python。他们更加会大放异彩。

    最后由于项目开发过程中,往往后端的功能模块比较多,业务也较为重要,所以相应的所需要的开发人员数量也会较多。而前端工程师,主要负责数据显示,所以需求量较少。一个公司前后端人员比例大概为1:5。而后端工程师往往能够接触到系统的核心业务和核心数据流程,因此,对项目组的重要性也会相应大一些。

    当然,做一个好的后端工程师,也是会有很多的技术、框架需要掌握和学习。只是和前端相比,技术的变化不那么大,也不易发生颠覆性的技术革新,程序员只需要随着技术的发展,对现有的知识体系进行迭代和更新就好了。

    从后端工程师的任职要求来看,除了需要掌握必要的技术之外,对程序员的算法能力、数据建模能力、逻辑能力要求比较高,而这些,正是理工类学生所擅长的。

    123f0766daff6bbfa3e39e2a5d780c96.png

    前端工程师和后端工程师的薪资对比

    一般来说,由于工作内容的复杂性和多样性,对于初级前端工程师的工资相对来说要低于后端工程师的工资,但是这个差距并不是很大。但随着工作年限的增加,后端工程师的上升空间要比前端要高。此外由于前端技术更新的频率,给程序员积累提升的周期比较短,这方面也限制了前端工程师的发展。下面统计了北京,深圳,上海,杭州几个软件行业比较发达城市的薪资数据,可以看到后端方向的工程师薪资普遍比前端要高。

    b69c7f7ef0fa6d3ab3bb892ea09a16ae.png

    8d8c1c20cc15a7bcaa75eece7a62055a.png

    22a7060cb33ea4e66e72cbb4b53f26ce.png

    3e70ebb0fdd299f20eb05acf9f130d60.png

    结束语

    前端工程师是在技术的发展中所产生的一个细分的领域。其实对于很多企业来讲,这种细分的界限并不十分清晰。例如,最近企业中流行的所谓“全栈工程师”,就是要求后端工程师也要有一定的能力,去承担前端开发的任务;前端工程师,也要了解后端应用开发的细节。在这个融合的过程中,前端工程师的地位略显尴尬,毕竟,专业的互联网美工,也会具备一定的编码能力,而后端工程师,由于他们的技术知识体系相对完善,对公司业务的底层核心更为了解,也有能力分担前端的一部分工作。因此,前端的“领地”也就不断的被蚕食和侵占。

    前端和后端哪个更重要,哪个更有价值,一直众说纷纭。也许这样的争论还会持续下去,直到这两个领域彻底融合统一,形成共识。

    05a1e5617a5d9f6e22b45b538de988e3.png

    对于有志于从事软件开发的同学来说,前端和后端只是企业中两个不同职能的岗位,无论从事哪个岗位,只要你技术过硬,项目开发能力突出,都能有所发展。只是我们建议,对于编程的初学者,还是应该从后端入手,毕竟无论是Java还是Python,都是成熟而完整的编程体系,对于同学们打好编程基础,训练编程最基本的技能,都能起到事半功倍的作用,在未来的职业发展中,也会有更广阔的用武之地。

    展开全文
  • 不管是小程序的横空出世,还是Web应用...再看看后端开发工程师的薪资随便一看,这薪资真心不低呀!当然,这还取决于你的技术。在一线城市,有2 年工作经验的前端开发工程师工资差不多10K~15K,如果你会些后台技术,...

    不管是小程序的横空出世,还是Web应用的大量涌现,它们都掀起了一波“前端开发需求热”,给前端开发工程师们带来了春天。几乎整个互联网行业都缺前端工程师,无论是刚起步的创业公司,还是上市公司乃至巨头。那么这么热门的职位到底有多值钱呢?

    2cee3e80df1e2e1bb34a77faca84a7ed.png

    再看看后端开发工程师的薪资

    08b57d90167aad7cabcddbe87cd600cf.png

    随便一看,这薪资真心不低呀!当然,这还取决于你的技术。在一线城市,有2 年工作经验的前端开发工程师工资差不多10K~15K,如果你会些后台技术,并且前端技术很牛逼的话,20K是没有问题的。

    web前端工程师作为众多互联网公司比较青睐的对象,起薪和平均薪资与其他互联网行业职位相比,虽然排名是前8位,第一位是管理岗,第二位是数据开发,第三位是人工智能,而前端开发排在了第七位。看2018年的趋势,2019年依然如此。

    前端开发行业薪资水平高,并且前景可观,为什么会出现这样的趋势呢?

    现在学习前端都不只是单纯的只学习前端了,更多人会选择全栈,全栈工程师,英文叫Full Stack Developer,是指掌握多种技能,并能利用多种技能独立完成产品的人。说白了就是啥都懂的人,左青龙右白虎老牛在腰间,人挡杀人佛挡杀佛。想想,一个项目从前到后要包含多少技术?

    就拿TalkingData来 说,就至少有H5、JavaScript、CSS、Java、Kafka、MongoDB、Redis、MySQL/MariaDB、Vertica、 Hadoop、Spark、Tychron等等,这些研发目前需要数据可视化团队、计算平台团队、存储平台团队、数据挖掘团队和运维团队来共同完成。

    要是 出现这么一个全能王,把活一揽子全部接下来,那要省掉多少沟通代价和薪资成本。

    我们指的前后端,一定是web开发的前后端,属于web业务开发。不然写中间件、大数据的后端,写web 3D引擎、前端框架设计的前端,都属于脱离传统web开发的范畴了。我指的是同水平的情况下,因为个体的差异十分大,但是普遍一个P6/7的前端跟一个P6/p7的后端是一个价格。一定程度上上持后端薪资更高的观点也是对的。为什么?如果你算一下阿里前端的平均薪资和后端平均薪资,一定是后端高。

    从事前端的会说前端比后端工资高,从事后端的也肯定会说后端比前端高,也有的人会说刚起步前端的薪资会略胜一筹,但到后面只是单纯的前端的话估计比不上后端,能认清现在这个形式的估计都会说全栈是最高的。其实不管是前端还是后端只是个敲门砖。很多年轻的小伙伴们都有一些执念,比如打算写一辈子Java成为Java大牛,走向人生巅峰,其实想法是好的,但是不可取。普通的web开发,即使前端写出花、后端写得上天了,也无法靠纯技术走到高P。请时刻认知到自己处于计算机难度的最底层就行了,因为前后端技术本身没什么高深的,基本上都是工业界实践的结果。你看到很多xx公司从xx实验室、xx高校挖了个深度学习专家、数据科学家,你见过挖了个某教授来做web开发了?

    所以,不管是前端还是后端,只是你之后发展的敲门砖,传统web开发没有难度可言,想走高P懂前后端,是最最起码的要求。

    展开全文
  • 一文看懂Web后端开发

    千次阅读 多人点赞 2021-03-20 23:53:34
    一文看懂Web后端开发 前言 由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么...

    一文看懂Web后端开发

    前言

    由于网络上系统地介绍后端开发的文章实在太少,而最近有恰巧有许多同学问我“什么是后端开发?”、“你为什么喜欢后端开发?”、“做后端都需要学什么?”,那么我们就来讲一讲,到底什么才是后端开发。

    定义

    后端开发Back-End Development,也称服务端开发服务器端开发等)是创建完整可运行的Web应用服务端程序(服务端程序和资源合称为后端,即在服务器上运行的、不涉及用户界面的部分)的过程,是Web应用程序开发的一部分。后端开发者使用JavaGolang等语言及其衍生的各种框架、库和解决方案来实现Web应用程序的核心业务逻辑,并向外提供特定的API,使得Web应用能够高效、安全、稳定地运行。

    说人话!

    好吧,如果你看了定义仍然很懵,那我就用一些非常易于理解的表达形式来说一说“什么是后端开发”。虽然这些表述可能并不严谨或完全正确,但是我相信这样一定能使你明白什么是后端开发。

    这里我们拿前端来类比一下,因为我相信绝大多数看到这篇文章的人都已经对“什么是前端开发”、“什么是前端”有一定了解了:

    1. 前端就相当于我们的肉体,后端就相当于我们的灵魂和思想;
    2. 前端是如何操作游戏,后端是具体的游戏规则;
    3. 前端是用户能看到的,后端是用户看不到的;
    4. 前端是跑在浏览器上的,后端是跑在服务器上的;
    5. 前端采集用户的输入,后端处理用户的输入;
    6. 前端开发是写代码给用户看,后端开发是写代码给服务器看。

    是不是这样一讲就明白了?那我们接着往下看。

    具体职责

    1. **实现Web应用程序的实际业务逻辑。**即:实现Web应用程序的具体功能(如注册、发表和查询信息等)或Web应用程序在服务端执行的具体操作。这是后端开发这项工作的主要内容;
    2. **使用API和创建API。**后端需要向前端提供前端所需的数据,也需要使用第三方API来完成业务逻辑(如完成某个功能需要通过API调用其他应用、在使用框架进行开发时需要使用语言和框架的API、操作数据库时需要使用数据库或ORM框架的API等)。因为在后端开发的过程中经常需要与API打交道,所以有人也把后端开发称为“API开发”,就像有些人将前端称为“GUI开发”一样;
    3. **优化。**在用户量达到一定程度后,就会出现诸如响应慢等各种问题(不理解的话想想你们大学的选课系统);同时,随着代码行数的增多,许多架构上的缺陷可能也会随之暴露出来,如代码逻辑混乱、模块划分不正确等。此时就需要后端开发人员对Web应用程序进行优化,如重构、分布式部署、优化业务逻辑、单体应用拆分成微服务等;
    4. **架构设计。**虽然一般只有高级的后端开发人员和架构师才需要关注架构问题,但是架构设计是后端开发中非常重要的一环,因为它决定了如何组织代码、某个模块负责解决什么样的问题、系统的扩展性和可维护性如何、业务逻辑如何进行组织等,也会一定程度上影响到业务逻辑的具体实现(比如微服务和单体架构这两种架构下,同一种业务逻辑的实现可能完全不同)。

    特征

    1. 后端是工作在服务器上的,负责通过API向前端或其他系统提供其所需的信息(如数据等);
    2. 后端开发实际上是开发Web应用中对用户不可见的部分(如核心业务逻辑、数据库等),大多数的后端开发都是不涉及用户界面的(除了在前后端不分离的架构中将前端的静态页面通过模板引擎改造成动态页面时);
    3. 通常情况下,一个Web应用的绝大多数代码都属于后端代码,因为后端承担了Web应用实际的业务逻辑;
    4. 后端开发的压力通常比前端开发要大,因为后端是Web应用的“灵魂”,它影响着Web应用的方方面面,除了业务逻辑之外还需要考虑安全性、稳定性、可维护性、可扩展性、伸缩性等问题。

    技术

    1. 程序设计语言。许多语言都可以用于后端开发,比较流行的是JavaGo。例如我所使用的就是Go语言,也曾经使用过Java。此外,由于后端开发中经常需要和数据库打交道,所以作为后端开发者,还需要懂SQL语言(如果使用了NoSQL的话,也需要懂NoSQL数据库的语言);
    2. 数据库。数据库作为一种简单易用的持久化机制,可以让用户的信息不因为断电等故障而丢失,Web应用开发中经常需要用到数据库,甚至许多简单的Web应用本质上都只是“数据库的可视化系统”,也因为绝大多数简单的业务逻辑本质上都只是对数据库的增删改查(即CRUD);
    3. 框架、库和解决方案。想要高效率地开发Web应用,框架、库和解决方案是必不可少的,比如MVC框架、ORM框架、RPC框架、微服务开发框架、云基础设施(如Service Mesh、容器编排工具等)、运行时环境/容器(如Docker)、消息队列(Message Queue,MQ)、日志收集和分析工具等;这部分有一些框架是可以跨语言通用的,比如gRPC(RPC框架)、Istio(Service Mesh),也有一些是某种语言专用的,如Spring Cloud(微服务开发工具,JVM技术栈专用)、Gin(MVC框架,Go语言专用);
    4. 架构和指导思想。架构是后端开发中非常重要的一部分,作为一名后端开发者需要了解常见的架构,如三层架构、SOA、微服务架构、六边形架构等,还需要了解常用于后端开发中的指导思想,如设计模式、MVC模式、DDD、CQRS/ES等;
    5. 包管理工具/项目管理工具。因为后端开发中经常要用到各种框架和库,所以用于管理这些框架和库的管理工具是非常重要的。每一门语言都有自己的包管理工具,如Java的Maven,Go语言的go mod等;
    6. 基础知识。不管是前端开发还是后端开发,都需要对操作系统、计算机网络、数据结构等基础知识有一定了解,还需要了解对应语言的编码规范、重构等知识,这可以帮助你理解框架和库,也能帮助你写出更高质量的代码;
    7. 开发方法。实际上这个也可以说是属于指导思想的一部分,包括CI/CD、敏捷开发、DevOps等;
    8. 版本管理工具。相信我,几乎没有人能离开这玩意。最常用的是Git

    误解

    有不少人其实对后端开发误解很深,以下是一些常见的误解:

    1. 后端开发就是CRUD/后端开发太简单了;
    2. 不同系统的后端面临的问题高度相似;
    3. 后端开发很枯燥;
    4. 后端的逻辑比前端复杂;
    5. 对于后端开发者来说,设计业务逻辑是一件很简单的事情;
    6. 后端开发的工作太单一了/后端不是一个综合的领域;

    这些误解有时候会劝退一些有意从事后端开发的同学,我们现在就来澄清一下这些误解:

    1. 我不否认很多简单的Web应用确实就是CRUD,但是绝大多数的Web应用都不仅仅是CRUD。至于“太简单了”,能说出这话的人一定没做过后端,或者只做过CRUD,或者是超级大牛。如果不是超级大牛的话,请说这话的人写一个能撑住五万并发的秒杀系统出来,并做压力测试,然后再看看这句话;另外,后端开发是一个非常综合的领域,既有非常抽象的架构和指导思想,又有具体的解决方案和业务逻辑,还涉及到许多计算机底层问题(如多线程、网络、I/O等)。并且,虽然后端技术稳定,但也不至于学了点东西就可以到哪里都通吃,例如,如果你没听说过云原生、微服务、Serverless等新技术的话,那说明你已经很久没有跟上后端技术的发展了;以及,如果你现在还在用JSP,那我敢肯定你一定没有意识到诸如前后端分离之类的新问题;
    2. 这个说法也完全不对。不同的系统所面临的具体问题是完全不同的。先不说对一个具体的需求可能有很多种不同的解决方案(如针对单点登录(Single Sign On,SSO)问题就有长连接(虽然我没见过落地案例)、共享Session、JWT等方案),有时候甚至当你拿到一个需求时,可能连要解决什么问题都搞不清楚,这也就是为什么诸如DDD这样的系统分析方法一直备受关注,且重构也经常在各种规模的Web应用中都引起重视,因为用户需求往往不是那么明确,可能会引导我们做出错误的设计;
    3. 记住,枯燥的是CRUD,而不是后端。后端开发的技术含量实际上是非常高的,也非常有意思,充满了未知与挑战。像微服务、云原生、DDD、CQRS/ES、高并发、负载均衡、缓存、消息队列、多线程、微服务监控、Service Mesh等技术,每一项都值得我们去研究,而这些技术中有很多都是在大型Web应用中被频繁使用的,如果你真正了解后端开发的话,是绝无可能说出“后端开发很枯燥”这样的话的。请记住,并不是不涉及界面的工作就一定很枯燥;
    4. 在大多数的系统中是这样的,但是有些Web应用的前端逻辑复杂程度可能不亚于后端,甚至可能还会超过后端,比如像石墨文档这样的多人协作文档系统,还有ProcessOn这样的在线绘图系统,其前端逻辑可能都是非常复杂的;
    5. 参见2。能说出这话的人一定没重构过一个“大泥球”一样的应用,也没设计过一个用户需求非常模糊的系统(比如用户只给了一条需求:做一个CMS(内容管理系统),你觉得简单你可以来试试,然后用它一个月,如果你不是个有经验的后端开发者的话,我相信你一定会被你自己所写的这个系统逼疯,恨不得将它完全重构);
    6. 参见1和2。如果后端开发还不综合的话,那什么才是综合的呢?

    我不否认做一个只会CRUD的后端开发者很简单,但既然对后端开发感兴趣,那我们就要有更高的志向,不能把自己框死在CRUD里。

    这里送给各位未来的后端开发者一句话:“我等采石之人,当心怀大教堂之愿景”。如果自己一个人完成一个简简单单的CRUD项目,你可以有自己的想法,例如在其中应用DDD和CQRS,或不断地优化它以达到最佳状态;如果迫于工作经验而不得不CRUD,你也可以用业余时间去提升自己的技术,让自己有更光明的未来。

    什么样的人适合做后端?

    说了这么多,那什么样的人才适合做后端开发这份工作呢?

    1. 讨厌写用户界面或与用户界面打交道的人。有很多人是因为讨厌写界面(尤其是CSS这种反人类的东西)才来做后端开发的。这里没有界面,讨厌与用户界面打交道的人不妨尝试一下后端开发;
    2. 细心的人。后端开发实际上比前端开发更需要细心。就如前文所述,后端是Web应用程序的“灵魂”,后端开发中的许多问题都决定着Web应用的“生死存亡”,尤其是数据校验多线程/多进程异步编程事务/分布式事务与第三方系统的交互等,这些问题有非常非常多的细节,且既复杂又非常重要,一旦在细节上出现问题(如数据校验不完全或加锁解锁的逻辑出现错误),轻则出现错误的数据或业务逻辑不能正常运行,重则直接导致整个Web应用挂掉或出现安全问题(如数据校验不完全导致的文件上传漏洞、函数使用错误导致的远程命令执行漏洞等)。所以如果你想从事后端开发,那足够细心绝对是一个必要的条件;
    3. 喜欢与机器打交道多于与人打交道的人。与前端开发是“写代码给人看”的不同,后端开发是“写代码给服务器看”(或者说给前端/第三方系统看)的。虽然这两个说法都不太严谨,但是后端开发更多的就是与服务器打交道(如降低资源使用率、提高Web应用程序的运行效率等等),而不是与人打交道(如提高页面的美观程度、思考用户的使用逻辑和心理等等);
    4. 想编写实际的业务逻辑的人,或喜欢算法和逻辑的人。前端的逻辑更多的是交互逻辑,如点击某个按钮应该弹出什么窗口、怎么把数据渲染成用户想要看到的页面等,而后端的逻辑更多的是实际的业务逻辑,如完成某个功能需要怎样做、请求某个API应该返回什么样的数据等。如果你和我一样写前端时因为总是接触不到实际的业务逻辑而感到不爽,那么大后端欢迎你;
    5. 好奇心强、自学能力强且有终身学习的觉悟的人,或者喜欢钻研技术的人,或喜欢充满挑战性的工作的人。后端看似简单,实际上技术含量是非常高的。就如前面所说,现在的后端可不仅仅是CRUD,而是随着互联网和云计算技术的发展而不断改变,Web应用程序在需求不断变化的过程中功能变得越来越强,架构变得越来越复杂,对性能的考验也越来越严峻,技术含量自然也就越来越高。作为一名后端开发工程师,需要有不断学习新技术的觉悟,还需要有一定的自学能力,因为不是什么技术都有人教你的,在学习和使用最新技术时对着英文文档啃是常有的事;
    6. 对系统架构感兴趣或想要成为架构师的人。虽然不可否认的是由于前端至今没有“一统天下”的解决方案而使得前端开发人员经常会比后端开发人员更早地接触到架构的部分,但是传统意义上的前端说白了也就是浏览器那“一亩三分地”(前端同学别喷我,这里仅仅说的是传统的Web前端,“大前端”是不算的哈),而后端技术的天花板则是“地球上人类的数量”(接触过高并发的同学看到这句话应该很有感触吧,哈哈),而核心的业务逻辑往往存在于后端,后端的优化压力往往比前端更大,这就使得初级的后端开发者在进行开发时需要对系统的架构有一定了解、高级的后端开发者需要经常思考系统的架构设计的问题,这也使得后端开发者更容易成长为架构师;
    7. 沉得住气的人。除了有第5条中提到的“后端的技术含量实际上是非常高的”这一原因之外,还有一个原因就是后端并不是“所见即所得”的,经常需要你编写几十甚至几百行代码、做无数复杂的配置才能把Web应用运行起来(注意,是运行,写业务逻辑的话需要更多代码),另一个原因是后端开发的门槛比前端要高——你至少得掌握一门语言和这门语言在后端开发方面的一些框架或库才能开始开发。所以,后端开发者必须要沉得住气,不能因为写几行代码看不到任何效果就想放弃;
    8. 对系统的基础设施(如框架、库和解决方案等)感兴趣的人。据我所知,许多在云原生方面有深刻造诣的大佬都是从后端开发者成长起来的,许多框架的作者曾经也是后端开发者。如果你碰巧像我一样对框架、库和解决方案(如Spring BootSpring CloudGinKubernetesIstio等)十分感兴趣,那么可以从成为一名后端开发者开始,在编写业务代码的过程中慢慢体会框架的重要性和所用框架的优缺点,以及如何设计一个好的框架。

    虽然你并不需要满足以上每一项才能成为一个后端开发工程师,但是如果你发现你满足上面的某一条或某几条,而且你还没有找到自己的方向,那么不妨来尝试一下后端开发。

    我为什么喜欢后端开发

    先简单介绍以下我的经历吧。我从2019年1月开始接触前端开发,于2019年8月正式转向后端开发,并一直从事后端开发至今。我喜欢后端开发的原因,其实很简单:

    1. 我反感写界面,痛恨GUI编程,每次一写界面我就想遁地。后端开发不需要考虑界面的问题,这里没有界面,只有API;
    2. 我喜欢写实在的业务逻辑,不想总是隔着个API而“任人摆布”,解决实际问题对我来说简直棒极了;
    3. 我喜欢与机器打交道,可以写一天的代码而不感到无聊,但我不喜欢与人打交道,尤其是面对面交谈非技术问题时总会感到不自然(当然,聊技术我能聊一天都不嫌烦);
    4. 我想要成为一名架构师,想成就优秀的设计,而后端开发能更多地接触到系统的架构和设计;
    5. 接触到后端开发后,我发现我对这一领域内的绝大多数事物都感兴趣,如云原生、DDD、Service Mesh、系统架构等;
    6. 写前端会让我感到痛苦万分,因为我审美诡异、不擅长思考用户的使用逻辑、不擅长编写交互逻辑,写出来的东西又丑又反人类。而当我开始写后端时,我发现我的思考方式经常和真实的业务逻辑出奇地一致,有时候还能在做项目的过程中发现当前所使用的工具的不足,并且思考如何才能设计得更好;
    7. 做后端开发做了一年左右,我越来越感觉到我喜欢这份工作。

    如果你也和我有一样的想法,那么你说不定也非常适合从事后端开发的工作。大后端欢迎你的到来。

    结语

    很多人对后端开发的误解源于缺少一篇系统地介绍后端开发的文章。虽然作为一个仅仅入行一年半(截止到2021年3月)的菜鸟,我对后端开发的理解肯定还有许多不足与偏颇,这篇文章也并不那么“系统”,但我仍希望这篇文章能帮助到其他同学了解后端开发或消除对后端开发的误解,抑或找到自己的方向而走上后端开发这条路。

    如果发现文中的错漏之处,欢迎发表评论或联系我进行改正。希望能帮到更多对后端开发感兴趣的同学。

    展开全文
  • (给前端大学加星标,提升前端技能.)作者:吕小鸣https://juejin.im/post/5d7990a16fb9a06ad16f9d55前端架构师,听起来就是个很高大上的职位,在大多数程序员的眼中,架构师一般从事后端开发,Java或者C++出身,它们...
  • 计算机程序员 前后台 英文怎么说

    千次阅读 2021-03-05 13:30:44
    展开全部计算机程序员:Computer programmer,前后台:foreground-background1、Computer programmer读音:英 [kəmˈpjuːtə(r) ˈprəʊɡræmə(r)] 美 [kəmˈpjuːtər ˈproʊɡræmər]中文:计算机程序设计...
  • 后端开发岗位要求汇总

    千次阅读 2020-08-15 14:27:08
    后端开发岗位要求汇总 一、前言 ​ 2020年,是一个“多灾多难”之年,我们经历了疫情,经历了美股熔断,经历了全球大放水,同样经历了各种活久见的事情;不过,还好国内疫情已经没有那么严重了,剩下的就是等待疫苗...
  • 什么是后端开发

    千次阅读 2018-11-19 10:58:54
    英文:https://dzone.com/articles/what-is-back-end-development ...在Web开发的篇章中,我们主要讨论Web开发,因为它涉及与最终用户的直接互动——我们可以称之为“前端Web开发”。 在大多数应用中,非用...
  • 一个后端软件工程师的基本工作职业是完成后端程序的设计与开发。而后端开发的工作流程往往包括以下几个方面。 确定需求:后端的需求从产品经理来,在确定产品需求的过程中,后端工程师必须确定产品需求是否存在逻辑...
  • python适合后端开发,因为Python是一种计算机程序设计语言,既可用于前端也可用于后端开发,在Python中编写后端可以简化为编写各个模块,其间的连接随后由前端部分中的用户操作确定和控制。Python是一种计算机程序...
  • java后端开发(一):基本认知之web开发是什么

    千次阅读 多人点赞 2018-08-05 13:22:10
    数据库设计学完后,接着来了解一下到底什么是web开发,在脑海中形成宏观的感受。本文主要讲述web开发的相关背景知识
  • python后端开发工程师 深圳市超频三科技股份有限公司 深圳市超频三科技股份有限公司,超频三,超频三科技,超频三 职责:1、负责集成各种维度的数据源,使用各种数据获取技巧,转换、分析、调度、存储数据,为公司业务提供...
  • 这一篇的主题是「Linux C/C++ 服务器/后台开发学习路线」。 这样的文章相信大家都见得不少了,写之前也非常忐忑,能不能和其它人写得不一样, 也定下了一个目标,这篇文章,不能是简单的堆砌学习资源和书单推荐,更...
  • Web后端开发入门(1)

    万次阅读 多人点赞 2018-07-10 20:23:48
    Web概述: 在英语中web表示网页的意思,它用于表示Internet主机上供外界访问的资源。Internet上供外界访问的Web资源分为: 1.静态Web资源(如html页面):指web页面中始终不变的数据。 2.动态Web资源:指web页面...
  • 1、Web开发使用Python的一个基本应用就是进行Web开发,在国内,大一些的使用Python做基础设施的公司有美团、饿了么,以及搜狐等,在国外,Googe在其网络搜索系统中广泛应用了Python并且聘用了Python之父,另外,...
  • 后端开发面试总结

    千次阅读 2018-03-27 22:50:09
    一个中文占两个字节,一个英文字母占一个字节   多线程有两种实现方法,分别是继承 Thread 类与实现 Runnable 接口 同步的实现方面有两种,分别是 synchronized,wait 与 notify   servlet...
  • 2020年后端开发的3个首选编程语言

    千次阅读 2020-03-14 18:38:54
    3 top picks for backend development ...2020年后端开发的3个首选 Three month into the new year and yet the forecasts for 2020 do not seem to end. While predicting the future of such a dynamically ch...
  • 后端开发之组织架构各部分概念及联系基本概念1.1 集团1.2 公司1.3 部门1.4 岗位1.5 员工1.6 角色1.7 客户 基本概念 1.1 集团 集团”是“集团公司”的俗称,比如“××集团”,全称肯定是“××集团有限公司”或“×...
  • 字节跳动后端开发实习生一面凉经

    万次阅读 多人点赞 2020-01-15 15:49:33
    寒假投了字节跳动广告部的后端开发实习生,简历通过筛选后HR打电话通知我,让我第二天下午2点进行电话面试。 1点半我就进入了面试房间,1点50的时候面试官也进来了,然后我们开始了面试。 第零部分:自我介绍。 ...
  • 点击上方 "编程技术圈"关注,星标或置顶一起成长后台回复“大礼包”有惊喜礼包!每日英文Never abandon an old friend. You will neve...
  • 这篇文章主要介绍了java实现简单的英文文本单词翻译器功能,涉及java文件读取、字符串分割、遍历、判断等相关操作技巧,需要的朋友可以参考下本文实例讲述了java实现简单的英文文本单词翻译器功能。分享给大家供大家...
  • 无论做前端开发还是后端开发,网络知识是必备的知识。这部分知识是基础中的基础,是我们必须掌握的内容。网络相关的问题也是在面试过程中经常被问到的内容。本文主要梳理了一下网络相关的主要知识点及面试中经常被问...
  • C++后端开发面试题

    千次阅读 多人点赞 2018-10-29 08:07:26
    后端开发面试题 #后端开发面试知识点大纲: ##语言类(C++): ###关键字作用解释: volatile作用 Volatile关键词的第一个特性:易变性。所谓的易变性,在汇编层面反映出来,就是两条语句,下一条语句不会直接...
  • Python爬虫即使用Python程序开发的网络爬虫(网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。其实通俗的讲就是...
  • magento2后端开发

    2018-08-22 17:04:34
    magento2后端开发英文文档。
  • 也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。全栈工程师不管在哪个语言中都是人才中的人才,而Python web全栈工程师工资基本上都高出20K,所以如果你能力足够,首选就是Python web全栈...
  • python适合后端开发

    2020-11-21 03:18:53
    python适合后端开发,因为Python是一种计算机程序设计语言,既可用于前端也可用于后端开发,在Python中编写后端可以简化为编写各个模块,其间的连接随后由前端部分中的用户操作确定和控制。Python是一种计算机程序...
  • 它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。 官网地址为:http://www.miniui.com/ 六、拼图 拼图是优秀的响应式前端CSS开源框架,国内前端框架...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,595
精华内容 17,438
关键字:

后端开发英语