DEV Community

Cover image for The IBM i learning roadmap: from zero to modern RPG developer
Rainierio.dev
Rainierio.dev

Posted on Originally published at rainierio.dev

The IBM i learning roadmap: from zero to modern RPG developer

I work on IBM i core banking for a living, and the question I get most from newcomers is "where do I start, and in what order?" Most people lose months jumping between tutorials. This is the order I would follow if I started again today, using free resources only.

The hour estimates are my own rough guesses for someone studying part-time. They are not benchmarks. Your pace will differ.

The roadmap at a glance

The interactive roadmap diagram is on the original post: https://rainierio.dev/learn/start-here/ibm-i-learning-roadmap

Total: roughly 190 hours to be useful, longer to be good. Stages 2 to 4 overlap in practice; do not wait to "finish" one.

The 12 articles, in order

The roadmap is a map; these are the articles that go with it, in reading order.

  1. The IBM i learning roadmap: Start here: the staged path
  2. AS400 vs iSeries vs IBM i: Why the names differ and what to call it
  3. Free IBM i lab: PUB400 + VS Code: PUB400 account and VS Code setup
  4. Libraries, objects and jobs mental model: Libraries, library list, objects, jobs
  5. Your first free-format RPG program: Write and compile modern RPG
  6. Reading fixed-format RPG you inherited: Read the legacy code you will meet
  7. CL programming essentials: Chain and schedule jobs
  8. Embedded SQL in RPGLE, done properly: SQL inside RPG programs
  9. DDS to SQL DDL migration: Move DDS files to SQL tables
  10. ILE modules, service programs and the binder: Modules, service programs, binding
  11. Expose RPG as a REST API with IWS: Call RPG from REST clients
  12. Core banking on IBM i: what it does: The domain that makes you valuable

Stage 0: Orientation (~3h)

Learn: what IBM i is, how it relates to AS/400 and Power hardware, what kind of work exists (banking, insurance, retail, logistics), and what a modern day looks like (VS Code, Git, SQL).

Read: AS400 vs iSeries vs IBM i, Free IBM i lab: PUB400 + VS Code

Why: you need to know the platform is alive and what you are signing up for. Also get a free place to practise now, not later. See AS400 vs iSeries vs IBM i and the lab article below.

Resources:

Stage 1: Platform concepts (~12h)

Learn: everything is an object; libraries (like schemas/folders), source physical files, members, the IFS, jobs and subsystems, job logs, WRKACTJOB, WRKOBJ, DSPLIB, authority basics, library list.

Read: Libraries, objects and jobs mental model

Why: most beginner errors ("object not found", "not authorized") are platform errors, not RPG errors. If you understand the library list you will save yourself weeks.

Resources:

Stage 2: RPG free-format (~40h)

Learn: **FREE fully free-format RPG: variable declarations, data structures, dcl-proc, built-in functions, dcl-f file access, READ/CHAIN/WRITE, error handling with monitor, debugging. Skip fixed-format columns for writing; learn to read them later because old code uses them.

Read: Your first free-format RPG program, Reading fixed-format RPG you inherited

Why: RPG is the language of the business logic on the platform. Free-format is what new code is written in and what teams expect from new hires.

A first taste:

**FREE
ctl-opt dftactgrp(*no) actgrp(*new);

dcl-s total packed(9:2) inz(0);
dcl-s i int(10);

for i = 1 to 3;
  total += i * 10.50;
endfor;

dsply ('Total: ' + %char(total));
return;
Enter fullscreen mode Exit fullscreen mode

Resources:

Stage 3: CL (~15h)

Learn: Control Language: variables, IF/DO, CALL, CHGVAR, MONMSG, OVRDBF, SBMJOB, DSPJOBLOG, writing small CL programs that run RPG programs.

Read: CL programming essentials

Why: CL is how jobs are chained and scheduled on IBM i. Every production batch cycle I have seen has CL in it.

PGM
  DCL VAR(&LIB) TYPE(*CHAR) LEN(10) VALUE('MYLIB')
  CALL PGM(&LIB/HELLO)
  MONMSG MSGID(CPF0000) EXEC(DO)
    SNDPGMMSG MSG('HELLO failed, check the job log')
  ENDDO
ENDPGM
Enter fullscreen mode Exit fullscreen mode

Resources:

Stage 4: Db2 for i SQL + SQLRPGLE (~30h)

Learn: SQL SELECT/INSERT/UPDATE, CREATE TABLE (instead of DDS), joins, embedded SQL in RPG (SQLRPGLE), cursors, SQLSTATE, SELECT INTO, and IBM i Services (SQL views like QSYS2.OBJECT_STATISTICS).

Read: Embedded SQL in RPGLE, done properly, DDS to SQL DDL migration

Why: modern shops move data access to SQL. It is also the most transferable skill on this list.

CREATE TABLE mylib.customer (
  cust_id   INTEGER NOT NULL PRIMARY KEY,
  cust_name VARCHAR(50) NOT NULL
);
Enter fullscreen mode Exit fullscreen mode
**FREE
ctl-opt dftactgrp(*no);
dcl-s name varchar(50);
exec sql select cust_name into :name
         from mylib.customer where cust_id = 1;
if sqlcode = 0;
  dsply name;
endif;
return;
Enter fullscreen mode Exit fullscreen mode

Resources:

Stage 5: ILE (~20h)

Learn: Integrated Language Environment: modules, programs, service programs, binding directories, activation groups, prototypes, exported procedures, binder language.

Read: ILE modules, service programs and the binder

Why: real systems are made of service programs, not single giant programs. You will not be able to read a modern codebase without this.

Resources:

Stage 6: Modernization, APIs, open source (~30h)

Learn: Git on IBM i, VS Code with Code for IBM i, Bob/build tooling, yum open source packages, Node.js/Python on IBM i, calling RPG from REST services, JSON in RPG (DATA-INTO, DATA-GEN), IBM i Services.

Read: Expose RPG as a REST API with IWS

Why: this is what makes a developer hireable in a modern team rather than a maintenance-only one.

Resources:

Stage 7: Domain, core banking (ongoing)

Learn: the business, not the syntax: accounts, ledgers, interest, end-of-day batch, ISO 20022 / SWIFT messages, reconciliation, audit trails, decimal precision, and why packed is used for money.

Read: Core banking on IBM i: what it does

Why: at the banks I have worked in, the hardest part was understanding what the numbers mean. Language skill gets you in, domain knowledge makes you valuable. There is no single free course for this; read product documentation of any bank you can, and ask business analysts questions.

Try it on PUB400

Sign up for a free profile, open a source member and run the stage 2 program above. Each time you finish a stage, write one small program that uses it. Full setup is in the next article. Note PUB400 is for learning only; no commercial use.

Best resources

Next

AS400 vs iSeries vs IBM i

Related


Originally published on rainierio.dev. The full Learn IBM i track, with an Indonesian version, is at rainierio.dev/learn.

Top comments (0)