IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'.
STOP RUN.
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.
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.
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.
Errors in COBOL can be handled using the 'ON EXCEPTION' or 'NOT ON EXCEPTION' clauses in the procedure division.
'STOP RUN' is used to terminate the program completely, whereas 'EXIT PROGRAM' is used to return control to the calling program.
A COBOL program is divided into four divisions: Identification Division, Environment Division, Data Division, and Procedure Division.
COBOL stands for Common Business-Oriented Language. It is a high-level programming language designed for business data processing needs.
The quality of a developer's code is crucial. They should be able to write code that is clean, efficient, and easy to maintain.
Experience in similar projects or industries can be valuable, as it means the candidate will be familiar with the typical challenges and requirements.
Good communication skills are important for understanding requirements, collaborating with team members, and explaining technical information to non-technical stakeholders.
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.
A COBOL developer will need to troubleshoot and solve problems in code, so they should have demonstrated good problem-solving skills.
A good candidate should have a deep understanding of COBOL programming, including its syntax, structure, and capabilities.
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.
There are four types of 'PERFORM' statements in COBOL: 'PERFORM', 'PERFORM THRU', 'PERFORM UNTIL', and 'PERFORM VARYING'.
The 'INSPECT' statement is used for string handling operations such as counting, replacing, and converting characters within a string.
The 'REDEFINES' clause is used to allow the same storage space to be referenced by different data items. It is used for memory optimization.
'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.
There are three types of data items in COBOL: Elementary, Group, and Table data items.
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.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'.
STOP RUN.
01 WS-DATE.
05 WS-YEAR PIC 9(4).
05 WS-MONTH PIC 9(2).
05 WS-DAY PIC 9(2).
01 WS-NUMBERS PIC 9(3) OCCURS 10 TIMES.
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.
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.
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.
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.
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.
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.
The 'SYNC' clause is used to align the data item on natural boundaries, which can improve data access speed on some systems.
Dynamic tables in COBOL can be handled using the 'OCCURS DEPENDING ON' clause, which allows the table size to change dynamically during program execution.
'SEQUENTIAL' files are accessed in the order they were stored, while 'INDEXED' files are accessed using an index, allowing for faster data retrieval.
Back-end App Developer
Front-end Web Developer
Full Stack Developer (Java)
Full Stack Developer (.Net)
Full Stack Developer (MEAN)
Full Stack Developer (MERN)
DevOps Engineer
Database Engineer (AzureSQL)
Database Engineer (Oracle)
Database Engineer (General)
Solution Architect (.NET)
Solution Architect (Java)
Solution Architect (Ruby)
Solution Architect (Python)
AI Engineer (Python)
Sr. AI Engineer (Python)
AI Strategist (Python)
Business Intelligence Engineer
Systems Analyst
Mainframe Developer (COBOL)
Mainframe Developer (General)