今天小编和大家聊聊互联网企业技术岗位都有哪些?各个技术岗位都需要具备哪些能力?一些互联网企业对各个岗位的要求与岗位职责的设定?包括大家比较关心的岗位薪资福利情况。
互联网企业中技术岗位被认为是核心岗位之一,常见分类有开发工程师,测试工程师,架构师、运维工程师、数据工程师等等,但是也有很多企业会设置更为细分的技术岗位,例如:DBA、BI、中间件工程师、AI工程师、CAD工程师等等。
开发工程师岗位(二说),说到开发工程师岗位在很多人脑中就会浮现出两个词“程序猿”、“码农”。但是这样说不全面,开发工程师岗位也会区分很多种类,下面我们逐一介绍。
前端工程师、移动端工程师、后端工程师、嵌入式工程师(偏硬件居多,也有叫智能制造工程师的)等等。当然还可以按照技术语言或领域不同再进行细分,例如:java、python、go等等,不过在小编做软件开发的年代没有这些岗位区分,用现在流行的词儿“全栈/全站 工程师”,最多区分硬、软件开发工程师。
今天说的岗位:移动端工程师岗位,近10年间移动端互联网产品逐年递增,用户也都适应了移动端的产品体验,所以各企业也都推出了自己的移动端产品,那么移动端工程师岗位的需求也在不多增加,不过近4、5年移动端工程师的技术要求和岗位需求也发生了很大变化,我们下面详细介绍一下
1、移动端工程师技术语言体系
移动端开发技术大体可以分为:移动端web技术、原生开发技术(Native)、混合开发技术(或者叫做跨平台开发技术,hybrid)三个大类
移动端工程师技术语言体系
①移动端web技术,在移动应用诞生之前,手机上其实有一个手机网页版的概念,以前也叫做手机门户/网站(因为大部分之前是手机网页宣传用,也叫做WAP),后来随着移动设备和web技术的发展,诞生了各种各样可以通过web技术完成的正在意义上手机应用程序(webApp),到现在其实会web开发的前端工程师,也可以利用各种成熟框架中提供的原生插件直接开发移动端应用。小编之前讲的前端工程师岗位就可以通过一定程度的学习掌握移动端web技术核心能力,然后成为移动端工程师或者说可以同时胜任两个岗位。不过单纯的web技术实现的移动应用在用户体验上和原生比起来还是有一定差异(比如很多大型手游的功能没有办法实现,主要还是交互体验上的差异和对复杂画面和业务的渲染能力),并且很多移动端的应用市场也不接受这种方式应用程序(产品)上架。
不过也有破局的办法,例如PWA,Google提出的一个概念,其实有点类似微信小程序的概念,不过PWA的提出是在小程序之前,但是与小程序不同,PWA 是秉承着 Web 的开放精神而生的,它试图打破各个公司的界限,让web回归自由与开放。通过PWA技术实现的应用也可以被搜索引擎搜索到了,以后你的应用将不再以各种应用市场作为唯一的传播渠道。更具体的移动端web技术,在小编之前讲的前端工程师篇章中已经有了,在此不做赘述。
②原生开发技术(Native),通过原生开发技术实现的移动端应用程序就叫做原生APP(Native APP,简称App),也就是在Android、iOS等移动平台上利用官方提供的开发语言、开发类库以及开发工具等进行App开发。比如Android App就是指使用Java或Kotlin开发语言在Eclipse或Android Studio的开发工具上直接调用Android SDK API开发的App。
而iOS App就是指通过Objective-C或Swift开发语言在Xcode的开发工具上直接调用iOS SDK API开发的App。目前原生开发仍然还是主流的开发方式,在移动端开发崛起的这么多年来,原生开发技术积累了海量的资源和现有应用,这些如果没有足够强的利益驱动是不会被轻易换掉的。其次,移动端OS(操作系统,手机系统)的很多Api是很难被它的替代技术所调用的,即使能通过某种方式调用他们,其调用过程往往也很繁琐,开发代价也比较大。最后,原生的交互体验还是目前在移动端应用中,实现效果最好的,例如手游。
③混合开发技术(hybrid),也叫做跨平台开发技术或者混合开发技术。简单解释一下就是将web和原生技术结合起来,通过简单的web语言编写前端,原生技术提供各项功能,这样可以节省开发成本提升开发效率,web部分就实现了跨平台应用的效果。这里的跨平台指的是Android和iOS两个移动OS。淘宝就是典型的混合开发实现的APP。混合开发技术的诞生主要原因就是,由于企业业务需求变化较快,需要不断的更新APP功能,但是又受限于应用市场上架审核等不确定性影响,做不到及时上线投入生产。
另外一个原因就是原生成本较大,需要维护两个开发团队(Android,iOS)来进行开发工作。混合开发发展到现在阶段,其实已经产生了很多相对成熟的开发框架了,例如:PhoneGap,Ionic,React Native,Cordova,Xamarin,AppCan,Dcloud,uni-app,APICloud,Flutter,Wex5,Qt,MLN等等,这些框架基本都是使用 HTML5 + CSS + JavaScript 开发,并且提供了丰富的UI库,不过各有特点。具体可以搜索《混生开发框架对比》这篇文章进行了解。
对于一个企业来说,如何选择这3种开发方式呢?同样企业选择了那种方式就会招聘具有对应技能的员工。其实对于企业来说选择哪种方式还是比较难的,因为技术没有好坏,只有是否适合企业当前业务,或者当前条件下是否适合企业,可能有成本,时间,业务变化节奏等等因素的影响。
技术种类 | 优势 | 劣势 |
移动端web技术 | 1、学习成本低,前端工程师可以胜任 2、开发成本低,技术通用性强 | 1、交互体验较差,不适合复杂交互场景 2、受限于手机端浏览器,兼容性成本高 |
原生开发技术(Native) | 1、技术成熟,稳定度高,UI库丰富,组件丰富 2、交互体验优势明显,手机OS兼容成本低 | 1、开发成本大,Android和iOS不兼容 2、受限于应用市场发布更新 |
混合开发技术(hybrid) | 1、跨平台,开发成本较低 2、调用集成方式简单,技术学习成本相对低 | 1、受限于技术深度,大部分依赖框架,如果框架不够丰富,需要自己封装,有难度。 2、开发出来的APP的性能问题,需要前期有明确架构设计规避 |
直接点说吧,如果企业业务变化快,前期又想试错,建议用混合开发技术方案;如果不差钱,又对交互体验有要求就用原生;单纯的移动端web模式目前已经不太适合做APP了,用WAP方式,做门户,分享等简单推广的站点还是合适的。
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除