Coding
AI is on an exponential growth curve and the evolution of AI is accelerating. This growth includes automated coding and design capabilities such as OpenAI Codex.
The upward trend in automated AI coding is raising questions like:
Is coding a good skill to have?
Will coders lose their jobs to AI?
Why are companies still using coding tests as a part of their interviewing process?
Will automated AI systems eventually take over all coding and associated design tasks?
Coding and Related Architecture Work
There’s a hierarchy of coding and associated system/network architecture skills that can be categorized as:
Networks: This can include aspects such as messaging, security, telecommunications, and internet protocols.
Systems: Computing systems and systems engineering can include aspects such as systems thinking, system scaling, client-server architectures, application programming interfaces, and cloud computing.
Data: Data aspects can span across systems or be confined within a system.
Methods: Including functions, classes, and groups of statements.
Statements: Statements express actions to be carried out. There’s a wide variety programming languages and coding program statement constructs.
Jobs and work that focus on the lower levels of the above hierarchy are at the most risk. AI is getting very good at generating Statements, Methods and Data management processes. Systems engineering and Networks are on the horizon. AI will increasingly perform much of the work of coders and system developers. However, new jobs will emerge and be supported by AI. Humans will focus more on aspects of work that use and compliment what AI can do.
Requirements and Specifications: In order for AI systems to produce satisfactory results, they need to be guided by humans. As the sophistication of AI increases, some of this guidance will be generated by other higher level AI models, including AI agents. However, human guidance will remain in the loop.
Modeling: The modeling process includes aspects such as: model selection, parameter settings, training, fine-tuning, testing, evaluation, and deployment.
Inputs: AI systems require inputs to guide their outputs and performance. This includes aspects such as data, prompts, and parameter adjustments.
Results Evaluation and Quality Management: This can include statistical measurements and judgement.
Revisions and Selections: AI systems can produce results that are incomplete and/or incorrect, requiring revision by human experts. AI systems can also produce multiple, differing solutions that require human experts to select the best option.
Alignment: AI systems need to be aligned with enterprise and human objectives.
Interview Coding Tests
While LLMs can generate code, they don't replicate the problem-solving process, communication skills, and depth of understanding that human engineers bring to the table. Companies use interview coding tests to explore candidate capabilities in a number of areas:
Problem Solving Skills: Coding tests assess a candidate's ability to analyze problems, devise solutions, and implement them efficiently. This process demonstrates critical thinking and algorithmic skills that are essential for software engineering roles.
Communication and Collaboration: During live coding interviews, candidates are expected to discuss their thought processes, explain their approaches, and collaborate with interviewers. This interaction helps evaluate communication skills and teamwork potential.
Code Quality and Optimization: Coding tests allow interviewers to assess a candidate's ability to write clean, efficient, and bug-free code. They can evaluate how well candidates optimize their solutions and handle edge cases.
Fundamental Knowledge: These tests help verify a candidate's understanding of core computer science concepts, data structures, and algorithms, which are crucial for building scalable and efficient systems.
Real-world Simulation: Coding tests, especially when conducted live, simulate real-world problem solving scenarios that engineers encounter in their daily work.
In Summary
Given all of the above, here are some answers to the questions about the future of coding:
Is coding a good skill to have? Yes. Although AI can generate code, human coders are still needed for selecting the best AI generated code, and augmenting/modifying that code.
Will coders lose their jobs to AI? Some will. However, those who adapt, leverage AI, and move up to higher levels of code creation should be safe.
Why are companies still using coding tests as a part of their interviewing process? Because the knowledge of coding languages and code development capabilities is still important and coding tests help employers assess many aspects of candidates.
Will automated AI systems eventually take over all coding and associated tasks? For the foreseeable future, this sees unlikely. However, AI capabilities will continue to improve.