COBOL Developer Hiring Guide

Hiring Guide for COBOL Engineers

Ask the right questions to secure the right COBOL talent among an increasingly shrinking pool of talent.

COBOL, an acronym for Common Business-Oriented Language, is a high-level programming language developed in the late 1950s by CODASYL (Conference on Data Systems Languages). It was primarily designed for business data processing needs and has been widely used in finance and administrative systems. The U.S Department of Defense played a significant role in its creation to ensure computer compatibility across different manufacturers. Despite being one of the oldest programming languages, COBOL remains relevant today due to its robustness and efficiency in handling large-scale batch and transaction processing jobs. Its enduring legacy is testament to its design principles of readability, portability, scalability and interoperability.

First 20 minutes

General COBOL knowledge and experience

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

What is the use of 'EVALUATE' statement in COBOL?

The 'EVALUATE' statement is used to select one set of statements out of several sets based on the value of a condition or arithmetic expression.

How would you handle errors in COBOL?

Errors in COBOL can be handled using the 'ON EXCEPTION' or 'NOT ON EXCEPTION' clauses in the procedure division.

Describe the difference between 'STOP RUN' and 'EXIT PROGRAM' in COBOL.

'STOP RUN' is used to terminate the program completely, whereas 'EXIT PROGRAM' is used to return control to the calling program.

What are the divisions in a COBOL program?

A COBOL program is divided into four divisions: Identification Division, Environment Division, Data Division, and Procedure Division.

How would you define COBOL?

COBOL stands for Common Business-Oriented Language. It is a high-level programming language designed for business data processing needs.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What youre looking for early-on

Is the candidate able to write clean, efficient code?

The quality of a developer's code is crucial. They should be able to write code that is clean, efficient, and easy to maintain.

Does the candidate have experience in similar projects or industries?

Experience in similar projects or industries can be valuable, as it means the candidate will be familiar with the typical challenges and requirements.

How well does the candidate communicate?

Good communication skills are important for understanding requirements, collaborating with team members, and explaining technical information to non-technical stakeholders.

Does the candidate have experience with other relevant technologies?

While COBOL is the main focus, a candidate who also has experience with related technologies, like DB2 or JCL, could bring additional value to the team.

Has the candidate demonstrated problem-solving skills?

A COBOL developer will need to troubleshoot and solve problems in code, so they should have demonstrated good problem-solving skills.

Does the candidate have a strong understanding of COBOL programming?

A good candidate should have a deep understanding of COBOL programming, including its syntax, structure, and capabilities.

Next 20 minutes

Specific COBOL development questions

The next 20 minutes of the interview should attempt to focus more specifically on the development questions used, and the level of depth and skill the engineer possesses.

What are the different types of 'PERFORM' statements in COBOL?

There are four types of 'PERFORM' statements in COBOL: 'PERFORM', 'PERFORM THRU', 'PERFORM UNTIL', and 'PERFORM VARYING'.

What is the purpose of the 'INSPECT' statement in COBOL?

The 'INSPECT' statement is used for string handling operations such as counting, replacing, and converting characters within a string.

How would you use the 'REDEFINES' clause in COBOL?

The 'REDEFINES' clause is used to allow the same storage space to be referenced by different data items. It is used for memory optimization.

Describe the difference between 'CALL BY CONTENT' and 'CALL BY REFERENCE' in COBOL.

'CALL BY CONTENT' passes a copy of the data, while 'CALL BY REFERENCE' passes the original data. Changes made in 'CALL BY CONTENT' do not affect the original data, while changes made in 'CALL BY REFERENCE' do.

What are the different types of data items in COBOL?

There are three types of data items in COBOL: Elementary, Group, and Table data items.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the COBOL engineer at this point.

At this point, a skilled COBOL engineer should demonstrate strong problem-solving abilities, in-depth knowledge of COBOL programming, and excellent debugging skills. Red flags include lack of experience with legacy systems, poor communication skills, and inability to explain complex concepts clearly.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with COBOL.

What does this simple COBOL program do?

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'.
STOP RUN.

This COBOL program prints 'Hello, World!' to the console.

What does this COBOL code snippet do?

01 WS-DATE.
05 WS-YEAR PIC 9(4).
05 WS-MONTH PIC 9(2).
05 WS-DAY PIC 9(2).

This code defines a data structure WS-DATE consisting of three parts: WS-YEAR, WS-MONTH, and WS-DAY. It is used to store a date.

What does this COBOL code snippet do?

01 WS-NUMBERS PIC 9(3) OCCURS 10 TIMES.

This COBOL code defines an array WS-NUMBERS that can store up to 10 three-digit numbers.

What does this COBOL code snippet do?

IDENTIFICATION DIVISION.
PROGRAM-ID. THREAD.
PROCEDURE DIVISION.
PERFORM VARYING WS-COUNTER FROM 1 BY 1 UNTIL WS-COUNTER > 10
DISPLAY 'Thread ' WS-COUNTER.
END-PERFORM.
STOP RUN.

This COBOL program prints 'Thread ' followed by a number from 1 to 10. It simulates a simple threading concept by using a loop.

What does this COBOL code snippet do?

IDENTIFICATION DIVISION.
PROGRAM-ID. CLASS.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-CLASS.
05 WS-NAME PIC X(20).
05 WS-AGE PIC 9(2).
PROCEDURE DIVISION.
MOVE 'John' TO WS-NAME.
MOVE 25 TO WS-AGE.
DISPLAY 'Name: ' WS-NAME ' Age: ' WS-AGE.
STOP RUN.

This COBOL program defines a class-like structure WS-CLASS with two members: WS-NAME and WS-AGE. It then assigns values to these members and prints them.

What will be the output of this COBOL program?

IDENTIFICATION DIVISION.
PROGRAM-ID. ADVANCED.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUMBERS PIC 9(3) OCCURS 5 TIMES INDEXED BY WS-INDEX.
PROCEDURE DIVISION.
PERFORM VARYING WS-INDEX FROM 1 BY 1 UNTIL WS-INDEX > 5
MOVE WS-INDEX TO WS-NUMBERS (WS-INDEX)
END-PERFORM.
PERFORM VARYING WS-INDEX FROM 1 BY 1 UNTIL WS-INDEX > 5
DISPLAY WS-NUMBERS (WS-INDEX)
END-PERFORM.
STOP RUN.

This COBOL program will output the numbers 1 through 5. The first loop assigns each index value to the corresponding array element, and the second loop prints each array element.

Wrap-up questions

Final candidate for COBOL role questions

The final few interview questions for a COBOL candidate should typically focus on a combination of technical skills, personal goals, growth potential, team dynamics, and company culture.

How would you handle large amounts of data in COBOL?

Large amounts of data can be handled in COBOL using file handling operations, efficient memory management, and optimizing the use of data structures and algorithms.

What are the different types of 'SORT' operations in COBOL?

There are two types of 'SORT' operations in COBOL: 'INTERNAL SORT', which is performed within the program, and 'EXTERNAL SORT', which is performed outside the program.

What is the use of 'SYNC' clause in COBOL?

The 'SYNC' clause is used to align the data item on natural boundaries, which can improve data access speed on some systems.

How would you handle dynamic tables in COBOL?

Dynamic tables in COBOL can be handled using the 'OCCURS DEPENDING ON' clause, which allows the table size to change dynamically during program execution.

Describe the difference between 'SEQUENTIAL' and 'INDEXED' files in COBOL.

'SEQUENTIAL' files are accessed in the order they were stored, while 'INDEXED' files are accessed using an index, allowing for faster data retrieval.

The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

COBOL application related

Product Perfect's COBOL development capabilities

Beyond hiring for your COBOL engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in COBOL projects, and can engage in multiple capacities.