引言

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

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

这样重要的人生选择题,我无法替他人回答。但作为一个从事了数年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. java与es8实战之三:Java API Client有关的知识点串讲

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<java与es8实战>系 ...

  2. 遗传算法解决航路规划问题(MATLAB)

    遗传算法 文章部分图片和思路来自司守奎,孙兆亮<数学建模算法与应用>第二版 定义:遗传算法是一种基于自然选择原理和自然遗传机制的搜索(寻优)算法,模拟自然界中的声明进化机制,在人工系统中实 ...

  3. Shell产出01|定时清日志脚本|Shell

    需求:每天定时清理空间占有率为x%的文件系统,包括PAMS和PMTS #!/bin/bash : <<EOF @Time:2023/03/22 @Author:Chase 版本:定时任务实 ...

  4. defined('BASEPATH') OR exit('No direct script access allowed'); 的作用

    起到保护.php文件的作用, 如果直接访问此php文件会得到"不允许直接访问脚本"的错误提示 如果你是用ci框架或者其他的什么, 就建议加上, 如果你怕别人恶意攻击你的话

  5. 【Qt6】列表模型——抽象基类

    列表模型(Item Model),老周没有翻译为"项目模型",因为 Project 和 Item 都可以翻译为"项目",容易出现歧义.干脆叫列表模型.这个模型也 ...

  6. ​python爬虫——爬取天气预报信息

    在本文中,我们将学习如何使用代理IP爬取天气预报信息.我们将使用 Python 编写程序,并使用 requests 和 BeautifulSoup 库来获取和解析 HTML.此外,我们还将使用代理服务 ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (99)-- 算法导论9.3 5题

    五.用go语言,假设你已经有了一个最坏情况下是线性时间的用于求解中位数的"黑箱"子程序.设计一个能在线性时间内解决任意顺序统计量的选择问题算法. 文心一言: 为了在线性时间内解决任 ...

  8. Django框架项目之课程主页——课程页页面、课程表分析、课程表数据、课程页面、课程接口、前台、后台

    文章目录 1-课程页页面 课程组件 2 课程主页之课程表分析 课程表分析 免费课案例 创建models:course/models.py 注册models:course/adminx.py 数据库迁移 ...

  9. Redis系列之——使用常见问题

    文章目录 一 子进程开销和优化 二 fork操作 三 aof追加阻塞 一 子进程开销和优化 1 cpu 开销:rdb和aof文件生成,属于cpu密集型 优化:不做cpu绑定,不和cpu密集型的服务一起 ...

  10. CalledFromWrongThreadException

    更新UI的位置不正确,线程解析数据    handler. mssage 中更新 android.view.ViewRootImpl$CalledFromWrongThreadException: O ...