admin 管理员组

文章数量: 887021


2024年2月6日发(作者:单片机c语言编程例子)

计算机专业相关的就业方向分为以下这些:

BD

也就是传统意义上的销售。这个相对来讲好理解,我做一个企业微信、钉钉、工具软件,希望客户可以过来付钱,那就得有销售去找到那些有潜在意向的人,并把他们转化成我们的客户。

云计算公司的销售,负责对外联系那些会采购ECS、OSS、RDS等云计算产品的互联网公司、政府单位、金融企业等;SaaS软件公司的销售负责把CRM、招聘系统、邮箱、工资系统等办公软件卖给那些中、小企业;抖音、百度、腾讯的销售负责把自己的广告位卖给宝洁、杜蕾丝这类每年花费大量营销费用在互联网上的快消公司。

解决方案架构师

有的IT产品比较简单,比如路由器、电脑、工具软件等,付钱之后看下说明书就行了。但有的IT产品就很复杂了,比如,CDN、ECS等云产品,图像、语音识别等AI产品,客户拿到之后需要组织自己的研发人员二次开发,才能真正在自己的业务上用得了,比如,一个做停车场管理系统的企业,买了基础的图像识别服务,还需要自己训练模型,然后把模型集成到自己的停车场管理系统中才可以。自己没有研发人员的中小企业根本没法玩。

这种情况下,就需要解决方案架构师出马了,他们会从客户需求出发,基于自己的产品,组合出一个可以真正满足客户需求的解决方案。比如,一个企业投资了一批停车场,解决方案架构师会告诉他这个停车场管理系统应该怎么建,需要采购哪些云服务,即使解决方案架构师自己家没有,他也会提供一个服务商名单,让企业只要出钱就好。

运营

最经典的就是在拼多多、淘宝、京东买东西了,手机屏幕就这么小,放什么商品呢?这就是运营来决定的。他要思考,最近是夏天,放泳装更好卖,冬天放羽绒服,春天放帐篷等。当然,对于大平台来说,现在这类工作普遍由算法来替代运营人工决策了,效率更好、效果更好。但商品不需要运营了,类目却仍然需要运营,比如,商家发布商品时,不能把衣服发布到快消品类目中,也不能把足球发布到女装类目中。

上面说的是电商场景,还有一些toB的场景,比如,阿里云上卖一个CDN产品,我们应该如何定价,从哪些地方去找流量,怎么提高点过来看这个产品的客户购买转化率,要不要618做个活动促销一下等。

用研

很多年前我听一个在腾讯的朋友说,QQ的产品经理们通过数据分析之后发现东莞的厂妹是使用QQ特别多的一个群体,于是就想针对这个群体做一下调研,为QQ的产品设计决策做参考。他们把这个需求发给了用研部门,用研就出去了一个团队去东莞,选择了一些愿意配合的厂妹,跟着他们贴身生活了一周,深度了解她们的生活圈子、消费习惯、对事物的认知、喜欢/讨厌QQ的什么功能,最后形成了一个高质量的用研报告。

产品经理

产品经理听起来很熟悉,好像什么背景来做产品经理的都有,但其实这个岗位是承上启下的中枢环节,上限极高。销售、解决方案架构师、运营、用研都是对客的,负责接触企业的客户、用户,但企业最终还是要把产品做好才行,那就需要产品经理把客户、用户的需求写成产品文档,安排研发把产品做出来。

根据业务形态不同,产品经理具体又可以分为商业型、平台型、用户型、工具型等等。虽然都是设计产品,但方向差异很大,商业型更侧重商业模式的设计和实现;平台

型更侧重平台能力建设,比如,电商平台、外卖平台等;用户型更侧重普通用户的使用体验,比如,微信、支付宝、QQ等。

根据做的产品不同,又有软件产品经理、硬件产品经理、SaaS产品经理等。当然,这只是人为的划分,事实上只要涉及到要把一个IT产品做出来,就需要有人来决定做成什么样,产品需要具备什么功能,各功能之间如何协调等。

比如,如果我要做一个商场的自动零售机,那需要硬件产品经理来设计这个机器的功能,比如,要卖冷藏食品就需要加空调;要卖小包装物品,就要设计比较小的货架等。

接下来还需要软件产品经理来设计这个机器的软件系统,比如,选择商品是在触摸屏上,还是用微信扫码;可不可以一次买多个商品;付款时怎么操作;卡货时会不会向附近的机器运维人员报警等。

设计师

拿我们日常使用最多的微信来说,产品经理负责决定功能,比如,首页要有消息列表,有新消息时要显示红点,群消息可以设置免打扰,用户可以设置加好友的方式等,但设计负责消息列表多宽、多高,精确到像素,新消息提醒是使用数字还是一个红点,这个点是红的还是蓝的,整个微信的背景主色调是什么等等。

一般在大厂中,还会把设计师进一步划分为交互设计师、视觉设计师、动效设计师等,交互设计师负责按钮等元素的摆放位置、文案内容等;视觉设计师负责按钮、文字的颜色、大小、长宽等;动效设计师负责软件里面的动画效果。

设计师都要有美术功底,是艺术相关专业的。

开发工程师

通常我们了解最多的就属充满争议的码农了,但其实技术岗位分为很多种,比如下面这些。

底层的芯片设计师:负责设计、开发芯片。说起芯片,我们最熟悉的是电脑上的CPU,而实际上只要带大规模集成电路的我们都称之为芯片,除了常见的CPU之外,一般还会有专门负责浮点计算,在视频、图像处理上面极其高效的GPU;硬盘、内存上的存储控制芯片;负责网络通信的蓝牙、WiFi、大型交换机、4G等芯片。

操作系统开发工程师:负责电子设备中的操作系统开发,比如,电脑上的Windows、MacOS、Linux,手机上的Android、iOS,嵌入式设备中的WinCE等。举个例子,Android系统是开源的,国内基于Android衍生了小米的MIUI、华为鸿蒙等,这些衍生系统都是在Android系统源码的基础之上做修改,比如,优化电源管理模块让手机更省电,优化摄像头模块增加美颜功能等。

中间件开发工程师:负责开发大规模的机器集群的容器、调度系统、数据库、文件存储系统、CDN、DNS、RPC框架、消息中心、注册中心、分布式缓存等。虽说各种中间件在网络上有开源的项目,任何企业都可以拉一个分支下来自己编译之后使用,但中间件工程都十分庞大,运维复杂度都很高。专业的事交给专业的人去做,一般中小企业都会采购云服务,或者购买付费版,出问题时有专门做中间件研发工程师兜底处理。

应用软件开发工程师:这个是我们见到最多的,也是市场上岗位、需求数量最多的,比如,开发微信、QQ、手机淘宝、360安全卫士等超级App的移动开发工程师,开发网站、小程序的前端工程师,开发电商系统的Java开发工程师等。比如一家互联风公司开张,不需要硬件设备,服务器、中间件可以买云服务,应用软件一定要自己开发,这些都是需要根据自己的产品功能、业务逻辑设计、开发的。

数据工程师:大型互联网公司往往会产生海量的数据,比如,淘宝的购物、微信的聊天,每天几亿人活跃在上面,他们说的话,下的单都可以挖掘出商业价值来。这些大

厂就会聘用数据工程师,负责从这些海量的数据中找到规律,去改善自己的产品,或者帮助企业的管理层决策。

我之前写过一篇文章专门分析过所谓的大数据开发工程师这个工作岗位,大家可以翻看一下,整体评价是,技术深度不高,发展天花板比较高。

算法工程师:随着计算机的计算能力越来越强,算法复杂越来越高,可以承担的工作也越来越多,鉴黄、车牌识别、人脸识别、表情识别、语音识别、机器翻译、自动驾驶等,其实现逻辑都大致相同,通过算法和标注数据来训练出一个个的模型,并把这些模型嵌入到软件系统中,作为软件的大脑,让软件从执行预设的指令进化为可以自己做决策。

针对算法工程师发展前景,我会单独写篇文章来分析,大家后续可以关注。

安全工程师:有人的地方就有江湖,网络上面也会有大量非法的行为存在,那些精通网络、操作系统、数据库等底层技术的人,可以构建出复杂的软件,也可以将别人的低质量软件攻陷掉。这些人中,有的受聘于大厂,给自己公司的软件系统做防护,我们管他要安全工程师;有的专找企业的软件漏洞,拿到之后威胁要挟,或者售卖给非法的组织来赚钱,我们管他们叫黑帽子;有的也寻找漏洞,但只为乐趣,或者刷刷自己的技能,找到漏洞之后也不谋利,只是发出提醒,我们管他们叫白帽子。

测试工程师:假如微信要加一个群聊的功能,应用软件开发工程师写代码之后会直接发布上线吗?No,需要测试工程师来测试一把,看看是不是符合产品经理的设计。比如,产品经理说群聊最多支持500人,结果应用软件开发工程师设置成了1000人;设计师说群消息提醒时要显示数字,结果应用软件开发工程师没有显示。这些统统是Bug,测试工程师会把它们挑出来,让开发去改掉,才能发布。

测试工程师的手段不同,有的靠自己模拟用户去使用来找bug,并不了解软件的运行原理,也看不懂里面的代码,我们管他们叫黑盒测试工程师;有的不但看得懂代码,还可以通过扫描、工具等找出代码中的bug,我们管他们叫白盒测试工程师。

交付工程师

假如我要卖给银行一个信用卡系统,经过产品经理的设计,应用软件开发工程师写代码,测试工程师测试过关之后,要把这个信用卡系统部署到银行的机房中。这个过程叫交付,做这件事的人我们叫交付工程师。交付工程师会根据银行机房情况,银行的使用的操作系统、中间件等,更改一下信用卡系统上的参数,让信用卡系统可以运行起来。

交付工程有两个很大的特点:驻场、对客。

需要交付的一般私有云项目居多,金融、政府类的客户很多会有自己的机房,建了自己的私有云,有自己的系统底座,比如,数据库、注册中心、存储、消息中心等。面向私有云研发的产品一般都会兼容多种不同的系统底座,而交付工程师就会针对客户私有云的环境来调整产品内的配置,让产品在客户私有云中跑起来。客户的私有云一般在总部或者信息中心所在地,那么长期出差是免不了的。

软件产品复杂度极高,没法洗发水、手机一样标准化,产品真正做出来的样子和客户的预期一般都会有或多或少的差异,交付工程师一般就会在产品交付到客户那里时做很多沟通工作。客户不懂的要解释,客户理解有偏差的要纠过来,客户没注意的要告诉他。

运维工程师

信用卡系统运行起来之后,交付工程师的工作就完成了,但银行在常年使用过程中,信用卡系统如果突然宕机了,或者出错了,怎么办?这就需要运维工程师在信用卡系统运行工作期间进行日常维护,看看监控确保正常工作,清理一下系统运行过程中产生的垃圾文件,甚至在银行下班之后重启一下,让系统恢复到最佳状态。

我最早听说运维工程师这个岗位,是早期百度刚举起时,有人这样形容百度的搜索业务用户量大:“一堆运维工程师天天拉着小车在机房换硬盘。” 在IT行业发展早期,除了银行这类对数据安全性、系统稳定性要求极高的场景,大部分面向消费者提供服务的场景对服务的稳定性要求并不高,我08年刚毕业时进入一家不到百人的小公司,就有一

个10人左右的运维团队,每天看下公司那几十台机器的运行状态,管控一下网络,值班发布一下,工作很轻松。

但随着云计算的普及,公共云使用大规模的集群服务了大量客户,其运维工作其实相当复杂,这并不是靠人工可以堆出来的,那么就只devops了。简单来说,由于运维工作的复杂性上升,已经变成一个复杂的软件工程问题,就要通过软件工程的方式来解决了。比如,机器的扩缩、容调度,状态监控,网络管控,系统发布、回滚等。

而运维工程师的工作也从直接管理机器、网络,转变为使用这些复杂的系统来管理机器、网络,排查问题,复杂度更高,整个行业内当然需要的人也更少,肉眼可见的,至少中国互联网公司没有几个云计算公司了。

技术支持工程师

有些产品卖出去之后,客户会进行二次开发,比如,我卖银行一套信用卡系统之后,银行可能会在上面做一些修改,但他不熟悉我们的代码,这就需要技术支持工程师指导一下他们怎么改。

如果单从技术复杂度来看,技术支持工程师是最低的,毕竟只是处理一些产品操作、API使用上的常规问题。按照文档、积累的知识库检索出来教给客户就好了,解决不了的就像向后方抛到研发人员那里去。我工作当中接触到的技术支持工程师主要还是以初级工程师为主。

需要对客,但处理的问题相对固定,所以对沟通能力有要求,但不会很高,能把问题说清楚就行。不过一定要有耐心,因为据我的经验,90%的问题都是使用说明不清晰,或者客户的不规范操作导致,每天工作重复碰到的都是这类问题,还是挺考验人的脾气的。


本文标签: 工程师 产品 系统 客户