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.
- The IBM i learning roadmap: Start here: the staged path
- AS400 vs iSeries vs IBM i: Why the names differ and what to call it
- Free IBM i lab: PUB400 + VS Code: PUB400 account and VS Code setup
- Libraries, objects and jobs mental model: Libraries, library list, objects, jobs
- Your first free-format RPG program: Write and compile modern RPG
- Reading fixed-format RPG you inherited: Read the legacy code you will meet
- CL programming essentials: Chain and schedule jobs
- Embedded SQL in RPGLE, done properly: SQL inside RPG programs
- DDS to SQL DDL migration: Move DDS files to SQL tables
- ILE modules, service programs and the binder: Modules, service programs, binding
- Expose RPG as a REST API with IWS: Call RPG from REST clients
- 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:
- IBM i product page: official overview of the platform
- PUB400: free public IBM i system for practice
- Barrett Otte, IBMi-Book: a developer-written book that covers the platform end to end
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:
- Barrett Otte, IBMi-Book: clear explanations of objects, libraries and jobs
- IBM RPG Cafe beginner tutorial: walks through basics on a real system
- nicklitten.com: long-running community site with many beginner explainers
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;
Resources:
- COMMON RPG Bootcamp: structured course on modern RPG
- K3S RPG tutorial: step-by-step RPG lessons
- RPGPGM.com: hundreds of practical, short RPG articles by Simon Hutchinson
- IBM RPG Cafe beginner tutorial: official starter tutorial
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
Resources:
- IBM i documentation, CL topic: the official command reference (verify exact page for your release)
- nicklitten.com: practical CL walk-throughs
- Barrett Otte, IBMi-Book: covers CL basics in context
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
);
**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;
Resources:
- IBM Db2 for i documentation: the SQL reference (verify the current page)
- RPGPGM.com: many embedded SQL examples
- Barrett Otte, IBMi-Book: SQL on IBM i chapter
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:
- COMMON RPG Bootcamp: covers procedures and modular design
- IBM ILE documentation: official reference (verify the current page)
- RPGPGM.com: service program and binder articles
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:
- Code for IBM i docs: the VS Code extension for IBM i by Liam Allan
- IBM ibmi-oss-examples: GitHub examples for open source on IBM i
- Seiden Group learning resources: training material and modernization articles
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
- COMMON RPG Bootcamp: structured modern RPG course
- K3S RPG tutorial: free step-by-step lessons
- IBM RPG Cafe beginner tutorial: IBM's own starter
- RPGPGM.com: deep archive of practical examples
- nicklitten.com: community explainers
- IBMi-Book: free book by Barrett Otte
- Code for IBM i docs: your editor
- PUB400: free practice system
Next
Related
Originally published on rainierio.dev. The full Learn IBM i track, with an Indonesian version, is at rainierio.dev/learn.
Top comments (0)