快生活 - 生活常识大全

互联网产品团队核心岗位是哪个


  作为HR,如果你要去支持产品团队,或者进入技术部门做BP,你需要搞清楚那些是核心岗位,今天,来拉通一下这块知识点。
  一、互联网产品团队的7个角色
  老板和用户就不用介绍了。
  1、产品经理
  产品经理应该是互联网公司最热门的岗位,也是被吐槽最多的一个岗位。
  比如产品经理什么都"略懂",但都不精通。写代码不如程序员、画设计不如UI(美术设计师)、做用户研究不如UE(用户分析师)、侃数据分析不如BI(数据分析师)、谈合作不如BD(商务经理)、卖产品不如Sales(销售人员)。
  从这些槽点,你大概也能得看出来,产品经理工作界面是最复杂的,沟通接口是最多的,而且前线还有用户需求和感受,后方还有老板的任务和压力。
  2、交互设计师
  交互设计师的主要职责,把产品经理的想法最有效地转化成一系列的界面展现给用户。
  所以,交互设计师的产出更多的是交互原型图,其中包括页面布局、内容展示等众多界面展现。例如:使用按钮还是使用图标?字号大小如何?如何使用tab?用户需要点击还是滑动?采用摇一摇还是吹一吹?这些都属于交互设计的范畴。
  在互联网大厂,都会设立专门的交互设计师岗位,但小作坊或初创企业就不设置了,这部分工作会由产品经理自己来做。
  3、界面设计师
  交互设计师做出来初步的交互原型稿,接下来,就轮到界面设计师制作丰富多彩的设计文件。
  因此,大家平时在上网时看到的界面、设计,都是界面设计师的作品,他们的使命就是让互联网变得更漂亮。
  因此,界面设计师主要内容包括负责软件界面的美术设计、创意工作和制作工作。此外,除了设计内容本身,配合工程师切图、配置文件也是界面设计师工作中很重要的部分。
  4、项目经理
  在大中型互联网企业中,一个产品团队动辄三四十人,需要有个角色在中间做指挥,协调所有分工的任务、时间和进展,有就是有了项目经理这个角色。
  项目经理的职责是为产品团队在做时间、人力上的协调和安排,使命是使得团队协作更顺畅,保证人力资源的最大化利用。
  BAT都有项目经理这个角色,产品经理在完成需求设计后,会在项目经理这里报备,然后由项目经理来安排技术、测试资源及整理时间排期。小企业没有项目经理角色的,一般由产品经理或技术负责人来兼顾这个角色。
  5、开发工程师
  开发工程师,传说中的 "码农",是指通过计算机语言手段实现产品需求的人。
  一般来说,有前端和后端,同时会用多种不同的实现语言。当产品经理把需求、交互明确后,开发工程师就可以根据需求把项目最终实现成为一个人们在网上使用的产品。
  后面我们会详细的展开前端和后端岗位的区别。
  6、测试工程师
  测试工程师负责前端产品以及后台应用程序的质量把关。
  具体讲,测试工程师的工作是根据产品经理的需求文档,编写测试用例,通过自动化测试(编写程序)或者手工测试对需求进行覆盖验证。
  结合测试用例,测试工程师会对产品功能涉及的每一个细节、每一个场景、每一个终端(移动端包括各式各样不同的手机、平板等设备)都进行细致认真的排查体验。
  在发现产品有质量问题时,他们会将Bug单给到开发工程师或产品经理,在修改后他们会继续测试,直到问题被解决。
  中大型互联网企业中,测试工程师是标配,但一些小型或创业型企业因为资源有限,这个职位也可能由开发工程师或产品经理兼任。
  7、运维工程师
  运维工程师负责部署后台程序及后台服务的稳定性,确保后台服务可以7×24小时不间断地为用户提供服务。
  运维工程师管理数据庞大的后台服务器以及监控这些服务器上的服务状态,如何保障服务的高可用性,是运维工程师面临的最大挑战。
  在大部分公司,后台开发工程师并不是直接将自己开发完成的软件部署到后台服务器,而是交给运维工程师进行部署,这样可以让开发工程师更关注开发。
  在一些中小型企业,后台开发工程师兼任了运维主要工程师的职责。
  以上只是标准产品团队的关键角色,其实很多互联网企业的团队中所涉角色远不止这些,比如还有数据分析师、用户分析师、客服经理等。
  二、技术部门的8个关键岗位
  如果你进入一个技术团队,你就需要进一步了解每个岗位主要工作内容,每个岗位的必备技术。
  首先,技术部门经常会说到前端和后端。
  前端,可以简单地理解为凡是运行在用户设备上的技术都可以称为前端技术,比如HTML/CSS/JS,甚至移动设备的Obj-C/Swift。
  后端,就是负责将这些东西封装在数据包中然后通过网络传送到前端,后端还有一个更重要的职能,即保存和提供用户数据,后端技术一般是用户感知不到的。
  (一)前端开发工程师
  1、岗位理解
  负责PC或者移动端网站网页的开发,以及配合后台开发人员进行页面功能整合,采用的开发语言为:HTML、CSS、Javascript(Js)。
  当我们想要设计一个Web页面,前端开发工程师可以帮助我们实现Web页面的开发,包括各种页面布局、交互、特效等。
  2、岗位必备技术
  (1)HTML HTML全称Hyper Text Markup Language,译为超级文本标记语言。HTML就是一组标签和文本的组合,是一个最基本的网页。它已经包含了网页常见的元素,比如输入框、图片、按钮、下拉菜单等。
  (2)CSS CSS又称叠层样式表,简言之是一种用来表现HTML文件样式的样式设计语言。CSS能够对网页中对象的位置排版进行像素级的精确控制,实现基础的静态交互设计;而CSS目前的最新版本CSS3能够真正做到网页表现与内容分离。
  (3)Javascript Javascript简称JS。CSS刚出现时,大家开始觉得这样静态的网页似乎略显无聊,能不能给网页加入一些可以动起来的元素?比如点击一个按钮之后变个颜色,因此JS应运而生,即为HTML网页增加动态功能,实现更炫酷的交互。
  (二)HTML5开发工程师
  HTML(简称H5)工程师除了具备前端开发工程师的技能特点,同时还需考虑移动设备上的场景,结合移动操作系统的能力进行开发。
  H5开发工程师是随着移动互联网的崛起需求量开始大增的。在很多公司,H5开发工程师和在手机开发客户端产品的终端工程师一起被归类到无线研发部门。
  1、岗位理解
  负责Android或者iPhone上的Web界面以及逻辑开发,采用的语言同样为HTML、CSS、JS。但在HTML的使用上,更多采用HTML5协议和特性进行开发。
  2、必备核心技术
  HTML5是一种用于Web应用程序开发、具有变革意义的网络技术。HTML5是HTML的第五次重大修改,目前很多移动设备上的网页都采用HTML5协议标准来进行开发。
  (三)客户端开发工程师
  客户端主要是指在PC电脑上的应用程序,基于Windows操作系统做开发的,叫Windows客户端开发工程师;基于Mac操作系统OS X的,叫OS X开发工程师。
  1、岗位理解
  负责Windows、Mac客户端界面以及逻辑开发。
  Windows客户端开发工程师一般采用的语言为C/C++,开发工具一般用微软的Visual Studio。
  OS X客户端开发工程师采用的语言为Object-C,开发工具用的是Xcode。
  2、必备核心技术
  (1)Windows客户端开发语言
  C/C++是一门基础的高级语言,不仅仅应用在客户端开发商,在操作系统,嵌入式系统,包括后台开发上都很普及,但在Windows上开发有一些区别。
  微软为C/C++开发者提供了很多基于Windows的库,很方便为Windows客户端开发者提供界面封装以及系统能力的接口,所以我们很多时候看到Windows开发者招聘要求里面,不仅仅要求熟悉C/C++,还得熟悉Windows下SDK类库如MFC、ATL等(MFC和ATL都是微软公司对Windows下对系统调用的封装)。
  (2)OS X客户端开发语言
  C/C++同样用在Mac客户端开发底层部分。界面开发一般都是基于苹果公司推荐的开发语言:Object-C。
  苹果公司也为开发者提供了基于OS X客户端开发的类库:Cocoa。苹果公司对于苹果应用有着较为严格的规定,使用Cocoa编程环境时要让程序在多方面自动遵循苹果公司的人机界面守则。
  (四)终端开发工程师
  手机主流的操作系统有两种,Android和IOS,分别是Google和苹果公司推出的操作系统,在这两个系统上开发的工程师分别为Android开发工程师和IOS开发公司。
  运行在手机上的App都是一个独立的应用程序,来自于终端开发工程师的开发,然后用户下载安装后才能运行(内置App除外)。比如Android上的应用App,需要Android开发工程师开发。
  苹果Apple Store上的IOS应用程序也是由IOS开发工程师开发完成后,上传给苹果公司,由苹果公司审核通过后,才能显示在Apple Store上供用户下载使用。
  1、岗位理解
  负责Android或者iPhone客户端界面以及逻辑开发。
  Android开发工程师采用的语言为Java,开发工具一般用微软的Android Studio。IOS开发工程师采用的语言为Object-C,开发工具用的是Xcode。
  2.、必备核心技术
  (1)Android开发 Android的App开发一般采用的是Java,终端Java和后台Java有所不同。虽然是同一个语言,但是Android Java有自身的API,更多需要了解Android系统本身。
  后台Java和终端Java语法相同,但运行环境不一样,终端Java有自己的运行环境。两者程序不能混用。
  Google也为Android开发者推出了基于操作系统的类库:Android SDK。
  (2)IOS开发 苹果公司的设备(Mac OS和IOS平台)最初采用Objective-C作为应用程序的开发语言,苹果于2014年发布的新开发语言Swift,可与Objective-C共同运行于苹果设备上(OS X和IOS平台),用于搭建基于苹果平台的应用程序。
  苹果为IOS开发者推出的开发SDK叫作CocoaTouch,与Mac客户端开发者也是不同的,CocoaTouch开发的应用不能运行在Mac电脑上的。
  (五)后台开发工程师
  前端负责与用户交互,负责数据的录入和展出。后台与前端通信,交互数据,并对数据进行处理。
  简单的说,前端工程师为用户开发精美的界面和友好的交互体验。后台工程师为用户带来丰富的内容及信息的处理结果。
  1、岗位理解
  理解业务逻辑,进行架构设计,实现前端用户接口以及后台功能的开发。同时还需要对系统进行调优,更快更准确地对数据进行处理,返回给前端用户,提升用户体验。
  后台面对巨量的用户群和大数据,所以在高并发以及可靠性、性能上都有较高的要求。所以后台开发一般都要求有较好的算法基础,能快速处理数据,对操作系统能有较深的研究,有较好的挖掘系统能力。
  后台开发工程师开发语言多种多样,跟公司的文化和历史背景有深厚的关系。
  2.、必备核心技术
  (1)腾讯后台技术——C++ 腾讯公司最初是从即时通讯业务发展起来的,即时通讯对性能要求非常高,而C++做Web开发,开发效率远不如其他语言,但是在运行效率上来说,目前基本还是最好的开发语言之一。目前腾讯的QQ以及微信后台核心功能模块大部分采用C++开发。
  (2)阿里后台技术——Java 阿里作为一家电商企业,成立之初,就要求能够实现快速开发来适应多变的运营需求。Java在高并发、安全性、开发速度、中间件、开源库等方面很有优势,即使在性能上稍显不足,但阿里的绝大部分后台仍采用Java开发。
  (3)百度后台技术——C/C++扩展PHP 百度是一家搜索公司,核心的搜索算法实现以及巨量数据处理对运行效率要求较高,因此这部分采用的是比较底层的语言,如C&C++,但同时百度的产品形态大部分都是Web形式,因此采用了PHP开发语言。PHP取得成功的一个主要原因是它拥有大量的可用扩展,比如用C/C++扩展PHP。
  (六)全栈工程师
  1、岗位理解
  掌握多种技能,并能利用多种技能独立完成产品的人。不但有前端开发的能力,还有后台开发的经验,还能对服务器进行管理和维护。
  2、必备核心技术
  以一个网站为例,全栈=前端+后端,可以是前端开发工程师,前端开发所需的语言都会,同时还是一个后台开发工程师,后台所需的开发语言也会。
  以一个App为例,全栈=终端+后端,此时,全栈工程师就是终端开发工程师与运维工程师的合体了。
  (七)运维工程师
  运维是一个公司里非常重要的岗位,如果你们公司有值班手机,一定是运维同学手里拿着。24小时不准关机的。
  互联网产品有句话说的好,线上不出故障是不现实的。现实的做法是,出了故障之后,多久能快速恢复。
  1、岗位理解
  负责保障机房服务器稳定性,如避免出现机房掉电,服务器死机等现象,同时不断提升服务的可用性,比如监控内存和CPU占用情况,有异常及时通报给相关开发人员,另一方面确保用户数据安全,如防止数据库被黑客攻击等。
  通过技术手段优化服务架构、性能调优,提升用户体验,如使用户访问网页或者App更加流畅等。
  通过资源优化组合降低成本,服务器资源是公司很大的一个成本开支,运维工程师要合理安排并使用服务器资源。
  2、必备核心技术
  (1)硬件设备
  运维工程师必须深刻了解常见的服务器架构,了解各种服务器的性能指标,能对设备出现各种问题进行排查。
  (2)操作系统
  熟悉操作系统(一般是Linux)的使用和常用命令,能解决操作系统出现的各种问题。
  (3)基础服务
  能非常熟练地对操作系统常用的软件和服务进行安装和维护,如MySQL软件等。
  (4)网络知识
  熟悉网络状态,熟练将服务器进行组网,比较快速地解决各种网络异常。
  (5)编程知识
  有一定的脚本编程能力,对硬件设备、操作系统、基础服务、网络等进行自动化检查和监控。
  (八)测试工程师
  1、岗位理解
  根据需求文档编写测试计划、规划详细的测试方案、编写测试用例;执行测试工作(包括编写用于测试的自动测试脚本以及手工测试),提交测试报告。
  对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案,提出对产品改进的建议,并评估改进方案是否合理;
  对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。
  2、必备核心技术——测试技术
  (1)测试专业技能
  测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
  ——什么是黑盒测试
  测试人员知道产品的功能设计规格,通过测试证明每个实现的功能是否符合要求。比如测试购买一个商品,黑盒测试一个正常用户点击购买最后是否正常购买到了商品。
  ——什么是白盒测试
  测试人员知道开发产品的内部工作过程,通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。比如购买一个商品,白盒测试可能会从用户购买行为开始,一步步对用户身份、商品库存、账户余额等各种步骤进行测试。
  ——什么是冒烟测试?
  如果在测试中发现了一个问题,然后开发人员会来修复这个问题。这时若想知道此次修复是否真的解决了程序的问题,或者是否会对其他模块造成影响,就需要针对此问题进行专门测试,这个过程就称为冒烟测试。
  (2)编程知识
  软件测试人员的编程技能要求也有别于开发人员,开发人员编程是实现某些功能,而测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。
  三、作为HR,如何跟技术人员沟通?
  大概搞清楚了这些关键岗位,如何跟他们保持有效的沟通呢,这里有三个小建议:
  1、学会欣赏对方的逻辑
  先看一个段子。
  老婆给当开发工程师的老公打电话:"下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。"
  当晚,程序员老公买了一个包子回来。
  段子中的开发工程师老公,脑回路是if-else模式的,简单来说就是——老婆只让他办一件事,就是买包子回来,如果没看到卖西瓜的,买一斤包子带回来;如果看到卖西瓜的,买一个包子回来。
  总体而言,技术人员是一群理性严谨、逻辑思维强的群体,跟他们沟通,重点就是要学会欣赏这用理性的美,学会用他们的逻辑,而不是责怪人家"死理性派"。
  2、学会用把专业通俗化
  HR和技术人员沟通,尽量不要讲自己的行业术语,技术人员并不一定能理解人力资源那些胡里花哨的概念,什么KPI和OKR,什么赋能与组织能力。甩这些词汇并不能彰显HR的沟通能力。
  但是,如果技术人员首先开始甩术语、甩原理,你可以先表示理解,因为这极有可能是他们的思维习惯,是长期技术交流所养成的。
  HR最需要的是耐心,尽早把他拉回来同一个次元沟通,如果非要谈到技术领域,请他们尽量用非技术专业的话进行描述,比如用举例、比喻等方式。
  3、学习方向要有针对性
  比如你们公司产品都是采用Java开发的,那就去了解一下Java相关的基础知识,如果数据都是采用MySQL的,那你就去简单了解一下这个数据库相关的知识,目标是能听懂开发人员说的话,以免陷于被动。
  还要一个建议,可以尝试参加一些技术沙龙,更好地了解技术人员的思想和发展方向,以及未来技术的潮流思路。
  只有保持跟技术人员保持信息同步,你才能在沟通上游刃有余。
网站目录投稿:南烟