揭秘前端后端算法工程师的日常是什么样的?运维

我们邀请了算法、前端、后端三位工程师,来看看他们的工作日常。

01推荐算法工程师的日常

阅谦

大家好,我是来自大淘宝技术的一名推荐算法工程师。

Chrome

查看业务数据报表

每天到公司,我的第一件事情就是查看最新业务数据报表,这包括大盘的数据、AB的数据和各个细分维度的数据。了解最新数据情况可以指导我们下一步工作的展开。算法的优化是一个不断迭代试错的过程,及时获得反馈并进行调整是非常重要的一环。

进行数据分析和建模

业务方案和算法模型的部署和发布

推荐算法工程师是需要面对线上流量的,而所有的业务逻辑和算法模型从离线到在线都需要经过一个发布的流程,通常是先灰度,再小流量,然后逐步扩量最后全量。公司的中台团队开发了诸如TPP,BE,RTP等平台,算法工程师可以聚焦于算法和业务本身,工程性的工作由平台完成。在这些平台的网页端,我们可以快速完成业务方案和算法模型的发布工作。

学习充电

DingTalk

PyCharm

PowerPoint

IntellijIDEA

IntellijIDEA是一个javaIDE。除了算法模型和数据处理外,整个推荐系统的链路从用户请求到来到诸如画像获取,召回,排序,重排等模块的串联也是需要算法工程师来实现的。公司里一般通过编写java代码实现,所以给即将入行推荐算法的同学们的建议是除了Python外再学一下java或者cpp吧!

02前端开发工程师的日常

时川

加入阿里第6年,目前负责集团内用户量最大的页面搭建平台:斑马。用户在淘宝浏览各种商品活动页面的时候,中间有很多页面就是通过这个平台发布上线的。我的日常的主要工作就是围绕淘宝的搭建服务能力建设展开。

严格意义上来说,我是一个“围绕前端工作”的工程师,或许叫做“面向运营交付前端页面解决方案工程师”更合理一些,日常工作总的来说可以分为两部分:

1.搭建平台服务支持

2.产品建设和技术探索

搭建平台服务支持

大白话讲就是答疑,解决使用平台产品的技术研发同学和业务运营同学遇到的问题,一般会基于自己负责的系统链路,或面向业务运营,或面向技术开发。由于我负责的平台比较特殊,这两部分都有涉及。

面向研发的服务支持

一般从业务的技术选型阶段就会开始介入,提供基于搭建体系的专业技术方案支持,包括基础的前端框架方案、页面的渲染服务(SSR、CDN等)、面向个性化场景的数据网关服务能力等,涉及的面会比较多,因此必须了解整个技术生态和服务体系。

运营服务支持

产品建设和技术探索

作为一个平台的产品、技术负责人,从产品的整体发展规划,到面向内部运营的搭建平台研发、面向终端用户的基础渲染方案架构都需要参与,真·全(省)栈(钱)工程师无疑了。

1.产品规划及演进。基于用户业务场景和需求,不断演进搭建服务的能力,让平台上的业务能够更快的交付上线,同时作为淘宝搭建服务的重要组成部分,斑马也是搭建基础服务和上层业务的桥梁,这期间会持续把业务能力做剥离和抽象,推动底层的基础搭建服务能力进行迭代。大白话翻译就是:我兼职PD~。当然整个项目组的同学都会参与到这项工作中来,因为都是前端线的技术研发,我们建立了一套基础的产品方案评审流程,从基础的技术方案实现,到产品交互流程优化,按照双周的节奏进行评审、研发、发布。

3.消费者端渲染方案探索。这是一个技术侧比较纯粹但是关联链路比较多的部分。核心目标是让终端用户更快地访问到页面,目前主要是和大促会场的同学共建,将双十一等大促活动中通过考验的极致方案通用化,覆盖到更多的业务,关键词:Rax/Weex(没错)/FaaS/EdgeRoutine/CDN

除了工作还有什么?

2.奶娃。工作日会争取在6点左右下班回家,常规陪玩陪练(我不会告诉你我家学的二胡,每次开练都怕楼上楼下的邻居打进来),双休日条件允许的话一般会周边一日游(家住杭州但是基本不去西湖那种),比较喜欢去野外探索,不仅环境好,还人少,小朋友们也能更多接触大自然;

3.折腾鱼缸。几年前迷上草缸,后来又添置一个原生缸,虽然缸都不大,偶尔坐在草缸前面看水草冒泡泡其实挺解压的,家里小朋友也喜欢缸里的小鱼小虾,放个照片吧;

03后端工程师的日常

松香

我的具体工作内容如下——

开发工作

广义的开发工作的内容非常复杂,涵盖的范围也非常广,从最基础的开会讨论环节(例如需求评审或设计评审)到狭义的开发环节即代码Coding实现到测试和上线都是属于开发工作的一部分,详细来说开发工作包含了如下内容:

需求评审

在项目中,需求分析是最开始的工作,同时也是最重要的工作。在这一步骤中,开发人员需要和产品经理,测试等人员就项目目标、需求理解、系统原型、术语定义等达成一致。

系统设计

在理解项目的目标之后就可以开始做系统设计,其中包含了技术选型(项目使用什么语言,使用什么框架,数据持久化选用sql/nosql,数据库又该选用什么),模块拆分(大到网关/入口/功能/基础设施的架构分层设计,小到具体功能间的耦合拆分设计),细节设计(通过诸如时序图,类图等描述某个功能或者设计的关系与流程,定义交互协议的数据格式),设计评审(通过团队内外评审的方式查缺补漏看看设计是否有错误或者是不恰当的地方)。

这一步在整体开发工作中有着至关重要的作用,一个好的系统设计可以非常有效地减少编写代码时的思考和工作量。

代码实现

在完成系统或者是方案设计后,就可以按照预先定义的流程进行代码编写和实现,在完成编写后需要邀请1位以上同学进行CodeReview评审代码的质量与逻辑的完备性。

测试回归

对于开发人员来说,测试主要是代码层面和功能实现层面的测试,前者主要是编写unittest单元测试以方法或者类的维度验证代码的正确性,后者是功能编写完毕后进行全链路的测试从入口开始编造流量看整体效果是否和预期一致,通常这步也需要专业的测试人员介入,在出现异常问题时,需要进行debug和问题修复。

功能上线

任何一个功能或系统上线都是复杂的,引入流量前需要配置关键业务节点上的监控,发布过程中最开始先beta灰度并进行功能验证,确认功能正常,指标监控平稳后可以开始作分批发布(如果是大规模的系统集群),在发布过程中与完成后需要实时紧盯监控指标以防止出现线上问题。

效果验证

项目上线后就可以通过服务端的埋点日志数据进行筛选统计,查看上线后整体功能是否满足预期的目标。

文档记录

写文档是一个开发人员工作的本职工作,上述的每一个开发步骤都应该在项目文档或者是系统文档中予以记录。

运维工作

运维工作包括日常运维,包括系统容器的状态的管理(重启/置换/扩容/缩容),大促运维(预算申报,预案管理与演练,重保节点配置等)

答疑工作

每个人负责的系统应该都只是一个系统链路的一部分,这种时候对于你的业务方就需要提供答疑工作:帮助完成系统接入,帮助排查问题,解答功能细节等等,现在在阿里巴巴内部这部分工作逐渐转为由自动化答疑和排查工具来完成,但免不了出现疑难杂症需要开发人员介入解决。

工作外的充电

对新人的建议

新人做的第一件事情就是熟悉环境,包括同事间的相处风格、公司技术栈、中间件等等。在适应完成后一般主管会给你分配一些简单的任务比如一个模块功能的实现,新人就需要通过这样一个任务去落地,包括功能效果的实现,团队和上下游业务的熟悉了解等等。

最后给新人的一些建议就是要在工作中要多沟通交流,刚入职的时候对整体的业务和技术栈甚至包括自己担任的职责和负责的范围等等都会有疑惑,这是非常正常的一件事情。这种时候多和主管或者是mentor作沟通交流不断明确你的工作的目标和当前的进度情况,这样新人落地也会更加顺利一点。有时候新人在技术实现上会遇到困难,这种时候除了需要靠自己多思考学习外同样需要多和同事讨论,向资深员工学习请教也会让你工作更加顺利。

工程师的工作日常,没有那么多的轰轰烈烈,大多时候是日拱一卒,反复且平淡。因为拥有目标,拥有方向,所以只需保持认真与专注,然后心无旁骛,一往无前。

THE END
1.前端工程师和后端工程师的区别有哪些?后端开发人员通常的工作是从数据库或其他数据源写入、读取和处理数据,因此拥有 SQL 等技能会非常重要。后端开发人员——至少对于 Web 开发也需要擅长他们正在使用的技术栈的服务器端语言。前端工程师和后端工程师的区别有哪些?前端工程师和后端工程师的区别1、职能不同前端工程师是互联网时代软件产品研发中不可缺少的...https://edu.iask.sina.com.cn/jy/5bqdahCOsbJ.html
2.前端工程师和后端工程师之间有什么区别前端工程师和后端工程师之间有什么区别 1、前端开发: 网站的“前端”是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关HTML、CSS、Java文件后呈现而来。前端开发,就是要创造上面提到的网站面向用户的部分背后的代码,...http://www.qiuxue360.com/edu1572/news/100892/
3.Web前端开发和后端开发的区别Web前端开发和后端开发的区别 web前端分为网页设计师、网页美工、web前端开发工程师首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责网页美工只针对UI这块儿的东西,比如网站是否做的漂亮web前端开发工程师是负责交互设计的。 web前端分为网页设计师、网页美工、web前端开发工程师,首先网页设计师是对网页的...https://www.imooc.com/article/8139
4.前端开发工程师和后端开发工程师哪个就业好?在互联网行业蓬勃发展的今天,技术岗位的需求持续增长。其中,前端开发工程师和后端开发工程师都是热门的职业选择。那么,究竟哪个就业更好呢? 一、前端开发工程师 工作内容。前端开发主要负责用户界面的设计和实现。使用HTML、CSS和JavaScript等技术,将设计师的设计稿转化为可交互的网页或移动应用界面。关注用户体验,确保页...https://www.bwie.com/jsgh/721.html
5.前端(前台)工程师和后端(后台)工程师的区别杰凡IT我们作为普通用户经常看到类似的页面。这就是属于前端工程师打扮的页面哦 二、后端工程师:负责数据提供 1 2 像页面中的这些问题,肯定属于动态的,要实时更新的,不能说让前端工程师写死,那整个网站永远都没有变化的话,用户怎么能忍呢。所以这就需要咱们强大的后端工程师,也就是服务端工程师做数据处理咯。比如:用户...https://www.cnblogs.com/jf3q/p/7451593.html
1.后端和前端工程师有什么区别通过岗位职责、工作内容,告诉你后端和前端工程师的区别?还为你对比后端和前端工程师的学历要求、经验要求、工资待遇,为你揭晓后端和前端工程师哪个好? 最新招聘岗位职责工资收入 后端 前端工程师 岗位要求: 1、计算机相关专业; 2、熟悉php、go语言,并能进行项目开发; 3、了解thinkphp6开源框架; 4、熟悉 mysql、red...https://www.jobui.com/gangwei/pk/houduan-qianduangongchengshi/
2.WEB前端后端简单区别,通俗理解后端开发工程师前端开发现在一般指的就是web前端开发工程师,其负责是网站前端页面也就是网页的页面开发,简单的说网站前端负责是东西是网站用户可见的东西,如网页上的特效、网页的布局、图片、视频等内容。网站前端工程师的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并和后端开发工程师配合做网页的数据显示和交互。https://blog.csdn.net/yinghuo110/article/details/79057513
3.前端工程师的职业规划在前端开发中,产品设计是非常重要的环节,因此,前端工程师需要了解产品设计的基本原理和流程。这可以帮助你更好地理解和实现产品设计,并与设计师和产品经理更好地协作。 7、了解后端技术 前端工程师需要与后端工程师密切合作,因此,了解后端技术是非常有益的。了解后端技术可以帮助你更好地理解和实现前后端的交互,更好...https://www.xycareer.com/knowledge/8850.html
4.前端开发工程师岗位职责(通用25篇)前端开发工程师岗位职责 10 1.参与产品前端(web)功能设计与开发,包括参与前端框架的`设计与实现,以及各业务模块前端代码开发; 2.和后端工程师协作完成产品实现; 3.深入分析和解决前端遇到的各种技术、性能、跨终端兼容问题; 4.根据业务需求,封装高复用、可维护性好的前端组件,持续提升页面兼容性和性能。 https://www.yjbys.com/hr/gangwei/3823230.html
5.想成为互联网设计师?先来看这篇超全面的介绍!优设网大型互联网公司人员配备较为齐全:高管负责决策、用研团队负责研究用户对于产品的反馈、产品经理负责制定产品发布的时间表、交互设计师负责优化交互图、视觉设计师优化交互并设计视觉后输出切图和标注并且完成设计规范、前端工程师负责实现界面还原和与数据库的对接、后端工程师负责程序构架和数据库结构、测试工程师负责测试整...https://www.uisdc.com/internet-designer-introduction/