引言

每个应届生都希望自己有良好的职业发展,当他们发现前路难通时,便会寻找更好的出路。

“转码”曾经是个很火热的话题。在互联网行业高速发展的年代,转行学代码,入职大厂,升职加薪,是许多人的可以成真的梦想。而现在,行业进入平台期,不少人也开始迷茫,现在转码还值不值?

这样重要的人生选择题,我无法替他人回答。但作为一个从事了数年ABAP开发工作、甲方乙方和freelancer都做过的普通ABAP程序员,对于ABAP,本人可以给出明确的结论:转行做ABAP程序员,不值得。

本文假设读者已经知道ABAP是什么。(即ABAP是SAP公司开发的编程语言,专门用于SAP软件环境,主要用于开发SAP应用程序等等)

本文链接:https://www.cnblogs.com/hhelibeb/p/17908963.html

哪些宣传在欺骗我们

虽然ABAP是个很小众的开发语言,网上却不时有人宣传它的诸多好处,把ABAP开发说成是不为人知的好工作。譬如,

  • ABAP简单好上手,是SAP系统核心语言,是入行SAP的好选择
  • 使用SAP的公司都是大企业,入行后可以进入大企业工作
  • 大公司工作环境和待遇好,所以ABAP程序员的薪资水平高
  • 国外有很多企业需要ABAP,ABAP程序员学成后可以移民
  • 互联网行业工作强度太大,ABAP程序员工作轻松
  • Java程序员只会调包,35岁后找不到工作;ABAP程序员懂业务,越老越吃香
  • ABAP程序员可以转行业务顾问甚至从事高大上的咨询工作

高明的欺骗总是真真假假。应该承认,上面的某些话并非谎言,但是它们只在某些时间、某些前提下才成立。有些好处属于过去,有些现在可行但未来不可行,有些则不能兼得。

下面,我想谈谈ABAP的一些过去、现在和未来,最后总结这些宣传语的不当之处,以及它们存在的原因。

ABAP的衰落趋势

ABAP曾经在SAP系统中有统治性的地位,单靠ABAP,开发者就能完成用户界面(客户端/网页)、应用层和数据库(Open SQL/ABAP SQL)相关的开发,这意味着ABAP程序员可以独立完成一个SAP系统内的应用。在这个阶段(R3~NetWeaver),ABAP非常重要,但这已经是很久以前的事情。

随着时间的推移,前端和后端的需求更加专业化,ABAP已经难以适应。大约十年前左右SAP推出了Fiori和HANA,它们逐渐在用户界面和数据库方面占有越来越重要的地位,ABAP只能在应用层保留自己的位置。相应的是,Javascript和SQL在SAP开发中的占比越来越高。

另一项对ABAP打击很大的变化是云。同样在2010年代,SAP转向云,收购了多个云产品,并且发展了SAP BTP、S4/HANA Cloud等产品。ABAP难以满足云产品中的一些要求,如开放性、CI/CD、分布式等,因此它也日渐不重要起来。

市场需求变化

TIOBE - 编程语言排名 很好地展现了ABAP的没落历史。在2006年,ABAP排名第15,作为一个SAP专门语言,这个排名相当难得,也反映了ABAP曾经的成功。而在2023年12月的排行中, ABAP仅排名44位,马上就要跌出统计范围(前50)。

在招聘方面,虽然本人没有查到长期的统计数字,但因长期关注招聘信息,可以感觉到ABAP的需求在最近几年逐渐走低。2021年因为特殊原因可能形成了一个短暂的需求高峰,而2023年则很可能是多年来的需求最低点,考虑到ABAP的长期衰落,对于2024和更远的未来的需求,我完全不乐观。

待遇和发展前景

根据统计局数字,2022年工资最高的行业是信息传输、软件和信息技术服务业。应该承认,作为广义的IT行业一份子,当前ABAP程序员的待遇在全社会中不能算差。

然而,在IT行业内部和SAP行业内部,恐怕就不是这样了。ABAP程序员的工资可能只能和C#程序员这种非互联网行业程序员比比,在SAP行业内部,ABAP则是公认的地位、待遇最低的位置,基本上要比业务顾问低一级。比如在一个项目里,如果业务顾问普遍是Senior职级,那么ABAP是达不到Senior的,只有ABAP Lead才是Senior。

至于发展前景,我们已经知道,ABAP的应用越来越窄,需求越来越少,而供给至少不变甚至变大。在这样的背景下,期待通过ABAP入职世界500强大公司,享受良好待遇,对于大多数新人而言是不现实的,尽管这在2010年代并不难。

此外,过去SAP业务顾问往往从ABAP做起,是因为只靠ABAP就可以可以独立完成SAP应用,也就是说,懂ABAP能帮业务顾问更好地完成工作。而现在开发工作更加分化和专业化,AI也使得读代码成了容易无比的事情,懂ABAP对职业发展的帮助已经非常小。如果一个人的目标是做业务,为什么他不直接去做业务,反而要在ABAP上面蹉跎呢?

国产化软件的崛起

由于ABAP是SAP的专用语言,它的生死是依赖于SAP系统的。对于SAP系统,国产替代是个热门议题。据说信创要求很多企业在2027完成对SAP的替代。对此行内人士意见不一,有人认为国产软件(如MetaERP)很快就可以替代SAP,甚至出海发展;有人认为SAP博大精深,非几年间所能替代。个人认为,无论是否替代成功,它对于ABAP的冲击都是巨大的,因为替代行为本身就会让资源会流向替代方向。

本人亲历过某家世界500强公司的替代SAP的项目(虽然只是SAP CRM,一个不太好用的SAP产品)。可以总结的几点是:

  1. SAP业务顾问几乎都顺利转移到新系统,而且继续保有自己的地位,ABAP开发则比较难。
  2. ABAP开发就算转型,也不如原本就做新系统的开发有优势,除非本来就精通Java/JS等开发(但既然如此为什么要做ABAP?)。
  3. 如果不能转型,则最好的结果是一切不变,不能期待升职加薪,更大的可能性是被裁员。

结论

经过上面的分析,我想在最后总结几个有关ABAP的基本事实。希望对ABAP有兴趣的新人能不被宣传所误导:

  • 对于SAP来说,ABAP曾经很重要,但从2010年代开始越来越不重要,衰落仍在继续。
  • ABAP已经越来越不适合作为进入SAP行业的入口。
  • ABAP程序员当前的待遇尚可,未来不乐观,绝不是越老越吃香。
  • ERP国产化的未来是未知数,无论如何需要考虑到替代行为本身对资源的占用。
  • 不能期待学了一门语言就能进大公司、享受高待遇,如果本来就进不了的话。
  • 工作强度和具体的行业、公司、领导都有关系,编程语言的影响不是那么大。

其实还有一些地方可以展开讲讲,比如说最近程序员移民的难度上升,比如SAP和ABAP本身的技术演化引起的开发人员代际差异等等。篇幅原因这里就不展开了。

只希望新毕业的网友们不要被培训机构忽悠,混淆了过去和现在、搞混了应然与实然,盲目相信“500强”、“越老越吃香”等宣传语,在迷茫中签订培训合同,然后进入这个夕阳行业,培训后领着每月1800的基本工资沦为苦工。希望大家都能找到更好的路。

2024年 为什么不建议新人学习ABAP的更多相关文章

  1. 给Web前端初学者的一些建议和学习路线

    做web前端开发能有10多年的时间,晚上编辑一篇文章,给初学者说一些建议.   学习 HTML,CSS 应该先跟着基础的视频学一遍.然后就需要做大量的练习,案例,案例是非常重要的,应用到实处,做各种常 ...

  2. 从零开始,SpreadJS新人学习笔记【第3周】

    表单&函数 阔别多日, SpreadJS新人学习笔记,本周起正式回归!(在断更的这一个月中,我为大家先后录制了14期SpreadJS产品入门系列学习视频,希望帮助那些正在学习和使用 Sprea ...

  3. 新人学习微信小程序开发之框架篇

    大家好我是智哥,一名专注于前端领域的一名码农. 咱们今天主要来说说微信小程序, 最近一段时间微信群里的小程序,小游戏各种分享是突然一下子就爆发了,现在来看小程序作为微信的重磅功能无疑又是下一个风口.咱 ...

  4. Java新人学习(li)

    一.项目中搭配使用SVN和Git 安装SVN:安装熟悉Git:安装maven,修改setting.xml文件:安装eclipse,配置jdk.maven路径: 建立自己的Git仓库,熟悉常用的Git命 ...

  5. Unity3D 新人学习的一点感想

    想到那里写到那里吧 1.Unity3D的优点大家都知道:组件化.c#语言.可见即所得. 当初刚开始学习的是cocos2dx,c++的货,觉得还是写的不错的,也是国人开发的,真的代码很容易懂,直接看引擎 ...

  6. 新人学习selenium哪些资源比较有帮助?

    为什么学习selenium? selenium现在基本上成了页面自动化测试的标配,具体理由我在selenium 3.0发布这篇文章里已经说明过了.当一个东西成为标准以后,那么它的能量和潜力都是巨大的. ...

  7. 屏幕分辨率测试工具(舍弃)---chrome开发者工具devTools(强烈建议系统学习)

    2019-01-25 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  8. 团队项目建议 - 英语学习 App

    在这几年推广<构建之法>软件工程教学的过程中,我看到很多老师在讲软件工程的时候,虽然讲了很多年,但是手头没有任何项目,学生或者现想(得到一些大而无当,无法在一学期内完成一个可用版本的项目) ...

  9. 新人学习Android开发遇到的小问题总结

    1. IDE搭建: 搭建android的IDE时,先注意是什么版本的系统,64/32位系统. 通常使用的是Eclipse for android,Android Studio由于还需要FQ,网速慢,所 ...

  10. 前端新人学习笔记-------html/css/js基础知识点

    即将毕业的软件工程大学生一枚,秋季招聘应聘的是Android,今年来到公司实习,要求做前端开发,所以一切只有现学,现在根据视频来学习,然后开这个博客记录一下自己的学习过程,废话不多说,开写. 4月6日 ...

随机推荐

  1. QA|外部调用类方法总报错missing 1 required positional argument:'self'|UI自动化

    外部调用类方法总报错missing 1 required positional argument:'self' 原因:实例化这个类 实例化错了,少了括号() 解决:改成如下就可以了 参考学习:调用类方 ...

  2. Java语言与其环境:常见问题解答

    Java语言与其环境:常见问题解答 在本博客文章中,将深入探讨Java编程语言的特点和环境,解释一些常见的关于Java的疑问. Java语言的特点是什么? Java是一种高级编程语言,它具有以下几个主 ...

  3. DesignPattern-part2

    title: "modern C++ DesignPattern-Part2" date: 2018-04-10T19:08:49+08:00 lastmod: 2018-04-1 ...

  4. win11安装ubuntu(by wsl2)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本机情况 省吃俭用入手了ThinkPad T14,打算 ...

  5. 解决软件安装无法自定义文件夹,自动安装在C盘 (Windows系统)

    其实就是软链接的简单应用 1.软件已经自动安装 2.完全退出当前软件 3.通过软件图标的属性找到其实际的安装目录 4.进入该软件的安装目录 5.将该软件整个剪切(你没有看错)到指定文件夹(自定义的安装 ...

  6. MySQL系列之备份恢复——运维在备份恢复方面、备份类型、备份方式及工具、逻辑备份和物理备份、备份策略、备份工具使用-mysqldump、企业故障恢复案例、备份时优化参数、MySQL物理备份工具

    文章目录 1. 运维在数据库备份恢复方面的职责 1.1 设计备份策略 1.2 日常备份检查 1.3 定期恢复演练(测试库) 1.4 故障恢复 1.5 迁移 2. 备份类型 2.1 热备 2.2 温备 ...

  7. Kubeflow基础知识

    kubeflow 基础知识 kubeflow 简介 kubeflow是谷歌开源的MLOps开源平台,其中包含的不同组件代表了机器学习生命周期的不同阶段. 下图是kubeflow组织ML工作流程: ku ...

  8. oj练习题程序编程题

    打印图形Description按要求输出由*组成的图案Input无需输入Output输出下面由"组成的图案卡 11 print('*') print("***") pri ...

  9. [WPF]原生TabControl控件实现拖拽排序功能

    在UI交互中,拖拽操作是一种非常简单友好的交互.尤其是在ListBox,TabControl,ListView这类列表控件中更为常见.通常要实现拖拽排序功能的做法是自定义控件.本文将分享一种在原生控件 ...

  10. 【虹科干货】Redis Enterprise vs ElastiCache——如何选择缓存解决方案?

    使用Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案,二者各有什么优势?又有哪些区别呢? 为了提高 Web 应用程序和数据驱动服务的性能与效率,使用 Red ...