前端程序员,后端程序员、全栈工程师岗位做什么
发布于 2021-05-13 08:59 ,所属分类:区块连和PHP开发学习资料
各位小伙伴大家好!
本期视频是向大家分享关于互联网公司前端程序员,后端程序员、全栈工程师岗位的一些认知和见解。在互联网公司岗位主要有项目经理,产品经理、UI设计师,前端工程师,后端工程师,安卓工程师,IOS工程师,测试工程师,运维工程师系统架构师,数据库管理,IT工程师,相信大家对前端程序员,后端程序员、全栈工程师分别都是什么,会很感兴趣吧。
我们找工作到底选前端还是后端呢?今天的视频就来给大家一一解答,如果你是第一次看我的视频,欢迎我,首先什么是前端开发?简单来说前端开发就是开发,网页上的内容展示和与用户的交互,这里的内容展示指的是你在网页上能看到的,图片、文字、视频、数字等信息,那与用户的交互指的就是,用户在页面上通过点击按钮、输入文字等动作,对网站提供数据输入,然后前端对用户的输入进行响应,比如更新验证页面上的内容,举一个更具体的例子,就是如果你在我的视频下面点个赞,页面对你点赞这个动作做出了响应,就是在后台数据库里面把我的点赞量加一,并且在页面上显示视频点赞量加一之后的数量。前端开发用到的基础技术就是htm,css和javascript,这三者分别用来控制网页里面的内容、视觉效果和用户交互,下面分别简单介绍一下,HTML并不是一门编程语言,他是一种用来定义结构化数据的标记语言。
你在浏览器上看到的网页其实就对应一个HTML里面的文件,这个文件里装的就是html 的代码,浏览器的职责之一就是通过你输入的网址,从网站上下载对应的HTML代码,并且把代码渲染成你肉眼看到的样子,前端工程师的工作内容之一就是编写HTML代码,或者使用一些技术来为页面动态的生成HTML代码,任何一个网页,你都可以通过浏览器的开发者工具,来查看他的HTML代码,我们随便打开一个网页,在电脑上按下F12键,你会发现它其实就是有一堆各种类型的script和尖括号标签组合嵌套而成的。
视频的标题对应于HTML代码里面一个title开头类型的标签,css的代码用来指定每个HTML页面样式和显示,以什么样的外观和风格来展示,比如长宽位置颜色居中还是分散,还有作品的显示属性,css 的代码会被浏览器读入,并且渲染成你肉眼所看到的效果。
前端开发中真正编程的部分是javascript,网页如何与用户交互,如何与后端交互,都是通过JavaScript的代码实现的,就像HTML代码和css 代码是被浏览器执行一样,HTML里面的JavaScript代码也是交给浏览器来执行,这里插一句javascript 与java并没有什么关系。两者之间的特性差的很远,这就好比老婆和老婆饼差的很远,雷锋和雷峰塔差的很远,说回正题,大家在写程序的时候,不管用什么语言,通常都不会重复造轮子,而是会调用该语言现成的library库来实现一些常见的功能,让开发过程更加高效。
对于前端javascript 开发,React是目前比较流行的library库,也是在工作中做前端的时候会用到的,react这个library库,不仅可以用来实现与用户的交互逻辑和事件响应,事实上,页面上几乎全部的HTML到代码都可以通过react来生成,这种在浏览器端生成的HTML代码进行渲染的方式叫做client-side rendering。与之相反的就是serverside rendering,也就是页面完整的HTML代码是全部由网站的前端服务器生成好了之后再发给浏览器。这里提到的前端服务器,前端服务器的逻辑可以通过任何编程语言来实现,比如JAVA、javascript、python、php 甚至是scheme,只要服务器的行为遵守http 的协议就可以了,client-side rendering和server siderendering两种方式各有优缺点,因此前端工程师在开发网页的时候,需要结合实际情况选择最合适的页面渲染方式,除了react,另外一种比较流行的javascript library库,就是vue,目前在国内用的比较多,以上介绍的这些就是前端开发的一些常规技术,html 浏览器和前端服务器的工作原理,一般会在学校里面的计算机网络这门课里面介绍,其他比如 java, Javascript、CSS、HTML、React、VUE这些都主要靠自学了。
讲完了前端,现在讲讲后端,什么是后端开发呢?相当一部分的后端开发工作,就是开发数据访问服务,使得前端可以通过调用后端的服务,对数据进行增删改查,从而实现前端对用户的请求响应。比如你在一个大型网站注册的时候,这个网站的前端就会调用它的后端,把你的用户注册信息写入数据库,一个后端服务其实不局限于被前端调用,它还可以被移动应用调用,还可以被其他的后端服务调用,在大型互联网公司,数据中台就是被抽象独立出来的后台服务,类比一下,前端往往需要通过调用后端服务来完成对用户的请求响应,而后端服务往往需要通过查询数据库来完成对前端请求的响应。从这个类比你可以看出前端和后端的共性。都是通过调用一个比自己靠后的服务来对前方客户的请求进行响应。后端工程师的工作范畴很广,几个比较常见的就是设计后端服务的a p i,设计后端服务的架构图,设计后端服务的数据库,写代码实现后端服务的业务逻辑。同时你还需要保证你设计的后端服务高可用,就是访问量很大的时候,仍然不宕机,并且对客户请求的响应时间很短,或者说吞吐量高,单位时间内能处理的请求数量多。
如果要从头搭建一个新的后端服务,那么整个过程需要进行大量的系统设计,也就是后端工程师面试的时候会问到的“系统设计”,做系统设计非常考察平时知识的积累。
,后端工程师平时一般需要与哪些技术和工具打交道呢?首先就是后端服务器了,和前端服务器一样,后端服务器也可以由几乎任何一种编程语言实现,只要能把正确的数据返回,可以调用者就可以了,主流的编程语言也有各自流行的web framwork,也就是现成的轮子,来帮助大家站在框架的肩膀上,快速的实现一个后端的服务。比如基于java的Spring Boot和Dropwizard,基于Javascript的有express,基于python 的flask ,这几个webframwork,每一个框架在不同的大厂都有使用,不同的公司具体选择哪种框架,一定程度上是看创始人最喜欢哪种语言,哪种框架用的最熟练,还有一些后端服务的框架,可以支持你多种编程语言来开发,而不是绑在一门特定的语言上,比如gRPC 这个远程调用框架,支持你用Java,Python,C++,Go等语言来开发,说了这么多的语言和框架,如果你想去某个公司做后端开发,公司一定要求候选人对他们后端使用的语言特别熟练吗?一般来讲不会。
我找工作的时候看到岗位描述里面,有我不会的语言和框架也无所谓,照样投。对公司来说,你会其中一部分就够了,很多东西都是在工作里面学的,而且事实上两周内上手一门新的编程语言,是一名职业程序员的基本素养,除了开发和维护后端服务器,后端工程师还会花大量的时间在数据库上,不管是为你的后端创建服务,创建数据库,还是为数据库的性能调优,或者是分析里面的数据,目前最常用到的数据库是关系型数据库,比如在工业界被广泛使用的MySQL和postgreSQL,如何设计一个关系型数据库,如何使用Sql Query来访问数据,如何依靠index 来为数据查询加速,这些知识点在学校的数据库课程里面也会介绍的,然而学校数据库课程里面介绍的比较少,但是近年来又没用越来越多的是非关系型数据库,也就是大家常说的No-SQL数据库,比如基于JSON格式的MongoDB,例如基于LSM Tree的Level DB,这些数据库在某些特定的情况下可能会比关系型数据库更适合你的业务需求,大家一般也是在工作中去学习他的原理和特性,数据库往往是一个后端系统里面的性能瓶颈,也就是最慢的一环。因此后端工程师在进行系统设计的时候,会用很多办法来提高后端的性能,比如响应的时间尽量的少,避免数据库拖后腿,比如使用redis、maxscale这种缓存系统来加速读取数据的速度,比如有用Kafka把数据写入异步化,提升后端写数据的性能,开发就大致介绍到这里,后端开发关联的其他重要环节,比如性能监视,比如DevOps,这些一般在公司都是由运维团队配合完成,此处略过。
下面来讲一讲全栈工程师,全栈工程师通俗点说就是全干,要求能够自己构建和部署一个完整的可以工作的系统,比如网站、移动APP、小程序等,能够独立编写前端后端代码,能够配置服务器,还能够设计数据库
对于准备找工作的你,不管是申请哪种岗位,面试的时候都会考算法,所以是都要刷题的
如何高效刷题准备算法面试,刷题网站 推荐 https://www.algoexpert.io ;
系统设计书籍推荐DesigningData-intensive Application和Grokking the System DesignInterview
关于工作岗位选哪个比较好呢?有很多小伙伴问我,前端和后端哪个的发展前景比较好,专业选哪个比较容易入行,或者女孩子适合做哪个,对于我而言,参加工作以后,陆续接触了互联网公司的各个岗位,前端后端都做过,也没有觉得哪个更容易或者是哪个更好,区别只在于使用的技术和考虑的方面不同。前端主要考虑用户体验,后端主要考虑底层业务逻辑,平台稳定和性能,最主要是看你喜欢做什么,你是喜欢做用户看得见的部分,还是去考虑用户看不见的部分呢?
很多人觉得女生审美好,适合做前端,可是公司里有统一的界面规格,你做什么都会直接调用相应的组件。library库里面的按钮,字体边框长啥样、内容排序,这些都不是个人决定,而是由PM和UI设计师决定。
最后即使你选择了某一个方向,你在以后的工作中也会陆续了解到其他方向,这个就要看自己喜欢什么,想做什么。
如果你想转前端或者是后端,可以看看公司里有没有机会,也可以自学寻找其他的机会。
总之,你之前的工作经验不会白费
对于公司而言,公司也喜欢技能多的员工,一份工资请会两个岗位技术的人,公司领导眼里,满眼都是小红星。
对于求职者来讲,先取得一份工作,工作后再根据个人兴趣和擅长的领域,慢慢发展成主前端、主后端或者全栈,这个就要看个人的能力和发展规划了。
好了,大家看到这里是更喜欢前端,后端还是全栈呢?欢迎在我的视频下方留言,与我一起讨论哦。
如果你喜欢我的内容,别忘了点赞、评论加。
因为你的,就可以第一时间获取我们的更新哦,本期视频就到这里了,感谢大家
本文参考链接:
https://blog.csdn.net/u011640713/article/details/78422832 Java程序员最全面的学习路线图
https://blog.csdn.net/lihefei_coder/article/details/109385280全球最火的程序员学习路线!
https://www.runoob.com/coder-learn-path各类程序员学习路线图
https://www.runoob.com/w3cnote/front-end-engineers-required-skills.html
相关资源