首先明确什么是底层开发,这个界限很难划分,有人说搞音视频底层编解码就是底层了,但是我们看来不是这样,下面还有rom中音视频模块,再下面还有driver,最后到物理硬件。那么我们姑且这么划分,以是否有大量的的业务逻辑为界限。业务逻辑,一般就是和产品形态紧密连接。以音视频为例,上层播放应用,会接入数据、UI等产品需求。下层播放内核,主要以播放器为中心,对音视频数据注入,解码,渲染。

我们从几个方面看下应用层和底层

1、市场需求

应用层工作机会往往较多,如10个工作,9个是应用层相关。毕竟企业或是公司都是商业化,都是围绕产品开发。而底层是支撑应用层。很多公司也不需要底层开发。因为完全可以用第三方的解决方案。可以在一定程度上节省公司人力物力。所以很多底层开发都是在稍微具有一定规模的公司才有。从这点上看,底层的确有点坑。

2、开发难度

一般底层开发都是用c/c++实现,应用层开发很多都是java/php等这些高级语言实现,不排除一些工业级软件使用c++开发,从上手来说,熟练c/c++相比于熟练java开发,周期会更长。但并不是说java就不好,java能写那么多很棒的应用,这点上c/c++比不上的。但是一般有些特色一点的东西,如在Android平台上,都会放到Native中开发。一方面是效率提升,另外就是安全。

3、发展方向

底层走的是窄、精路线,工作年限越长,对于个人专家能力越有提高。应用层走的是广、多路线。工作年限越长,对软件

架构设计越强,当然也是可以锻炼专家能力。应用层变化多,参与变革的机会会多很多,底层改动少,不是特容易有这样机会。完全看个人兴趣。

4、薪资待遇

这里只讨论专家工程师,不讨论走管理路线的。底层待遇比应用层多,随年限增加,呈趋势。

最后,不要认为底层有前途,做应用层一样有前途。有人说,做底层,看起来很厉害的样子,这些都不是重点。重要是投入进去,精益求精。上层的东西更有意思,更有发展空间。不仅是要面对灵活多变的需求,各种功能,把这些东西组织成一个产品就是非常考验能力的。光谈技术,怎么搭建架构?要做一件事情有多种选择的时候,如何选择?如何保证稳定性?如何保持扩展性?如何不在不必要的地方浪费精力?如何提高开发效率?而底层,眼前的一些细节就已经让人很伤脑筋了,好不容易解决,也没有办法去考虑能不能做得更好更可靠。老做底层,很容易只见树木不见森林。至于收入方面,很可能底层开发因为技术更新慢,所以更容易积累,单纯做技术的时候薪水就容易上升。而做上层,技术更新快,新涌入的人也多,得持续努力学习,开拓视野。做完底层的人,更喜欢做上层,这样既然能领略森林之美,当然是森林更适合你。

iOS赞赏通道:

上层应用开发是否真的没有底层开发有前途?相关推荐

  1. 搞web开发,还是搞底层开发?

    我自动化出身,所以比较喜欢底层的东西. 但是,现在想一想,目前的领导,40来岁的人,都是搞汇编和C出来的,所以他们都是搞底层出来的,所以,他们对于底层很熟悉. 我是不是应该搞web开发,他们没有搞过的 ...

  2. GIS底层开发的定义

    今天听一个朋友在群里说到了底层GIS开发的定义,觉得挺好玩,就转过来了 1.结合具体行业的二三维二次开发,基于主流GIS平台:(二次开发,不属于底层开发) 2.在现有三维GIS平台的扩展接口上,渲染具 ...

  3. linux内核epub,Android底层开发技术实战详解——内核、移植和驱动(第2版)[EPUB][MOBI][AZW3][42.33MB]...

    内容简介 本书从底层原理开始讲起,结合真实的案例向读者详细介绍了Android内核.移植和驱动开发的整个流程.全书分为21章,依次讲解驱动移植的必要性, Goldfish.OMAP内核和驱动解析,显示 ...

  4. tensorflow支持python3.7吗_前端开发行业真的会被AI取代吗?

    作者 | 殷圣魁 来源 | 58架构师(ID:architects_58) 前言 相信不少人看过一篇人工智能已经能实现自动编写HTML,CSS的文章,人工智能开始取代前端的一部分工作.前端开发行业真的 ...

  5. 前端开发行业真的会被AI取代吗?

    作者 | 殷圣魁 来源 | 58架构师(ID:architects_58) 前言 相信不少人看过一篇人工智能已经能实现自动编写HTML,CSS的文章,人工智能开始取代前端的一部分工作.前端开发行业真的 ...

  6. iOS底层开发消息发送与转发流程

    iOS底层开发消息转发流程 一,cache缓存读取流程分析 首先我们上一章已经了解到对应的cache_t的数据结构 _bucketsAndMaybeMask:指针类型,存放buckets的首地址 _m ...

  7. 安全底层开发工程师需要学习哪些内容

    网络协议 网络安全底层开发工程师需要对网络知识有深入了解,以便更好地理解网络安全领域的挑战和开发相应的解决方案.对于TCP.UDP.ICMP和ARP等协议,您需要了解以下方面的内容: TCP(传输控制 ...

  8. linux底层开发视频教学,ARM Linux嵌入式音视频设备底层开发

    摘要: 随着科学技术的快速发展,嵌入式系统早已成为电子信息和计算机行业发展重点.嵌入式设备已经广泛的融入我们的世界. 本文的研究对象是以ARM为核心的嵌入式音视频设备.本文完成了该系统的底层开发.本文 ...

  9. Android嵌入式底层开发技术

    目录 第一章 Android 操作系统概述 Android 软件架构介绍(五层架构)(填空题) Android的子系统 Android 应用程序开发过程(2种形式的开发,开发过程) 第二章 Andro ...

  10. Android底层开发学习笔记 第一天

    今天,开始学习Android底层的开发.(注:我是新手小白,纯粹学习笔记,大神们可以直接略过了) 第一部分 编译运行我的第一个Android system. 准备工作: 下载源码:包括u-boot源码 ...

最新文章

  1. 详解LINUX 的DHCP服务
  2. 【原】iOS学习之UITabBar的隐藏
  3. React Native登录注册页面实现空白处收起键盘
  4. tf.InteractiveSession()与tf.Session()
  5. ML之Kmeans:利用自定义Kmeans函数实现对多个坐标点(自定义四个点)进行自动(最多迭代10次)分类
  6. Sentinel-Go 集成 Nacos 实现外部动态数据源
  7. Temporal Segment Networks(TSN)实验及错误日志
  8. net 控制台 定时_.NET Core实现基于Quart.Net的任务管理
  9. 多重继承之虚继承(主要是为了解决产生的数据冗余问题)
  10. docker安装zookeeper_Docker安装Zookeeper以及Zookeeper常用命令
  11. note_maven的基本使用
  12. 《深度学习Python实践》第12章——审查分类算法
  13. Java中StringBuffer类的常用方法
  14. 一款优美的windows cmd命令行工具cmder
  15. 【办公自动化】国土“三调”用地分类“一键”转南京分类
  16. tlwn726n无线网卡Linux驱动,tl-wn726n无线网卡驱动下载
  17. zencart模板修改的地方
  18. 没有打不了的补丁切不了的面
  19. linux下安装php并配置运行环境
  20. 数据库中对存储过程的理解

热门文章

  1. entity framework 调用 oracle 序列_Weblogic T3 反序列化漏洞(CVE20192890 )分析
  2. Antlr4 简单入门
  3. 算法笔记_面试题_21.数据结构相关_模板及示例十几道
  4. 论文笔记_S2D.75_2021-CoRL_TANDEM_基于深度多视图立体视觉的实时跟踪和稠密建图
  5. 算法笔记_什么是算法/算法分析/减而知之/分而治之/动态规划
  6. 线性代数【一】:行列式的概念与计算
  7. spring-data-elasticsearch (elasticsearch 6.7.0) @Document 和 @Field 注解详解
  8. 1、win7 scala安装及idea中scala配置
  9. Oracle DBHelper 第二版
  10. 关于信息安全工作方法论的一点猜想