Right arrow
Can Competitive Programming Improve Software Development Skill?
2

Can Competitive Programming Improve Software Development Skill?

Engineering
Published or Updated on
August 14, 2021
/
2
min read

Does solving coding problems at competitive programming sites like Codewars and LeetCode help you write better software? To what extent?

If you’re looking for work as a software engineer, one way to prepare is to split time between working on a software project that shows you can build complete programs, and solving coding problems of the kind they present at interviews.

What if you want to improve your system-building skills while you’re employed as a programmer? You’ll want to keep up the competitive programming practice in case you’re streamlined and need to resume the job hunt, but it would be nice to know how much solving coding problems improves software development skill.

Track Progress with a Code Quality Evaluator

The best way to find out is to track your own improvement in software development skill using a tool like Malloy and McNellis’ Code℞ program evaluator, which measures the quality of your code by traversing an abstract syntax tree representation of it.* You’d periodically run snippets of code through it and compare the quality with previous versions.

Tree at colorful sunset
Imagine this tree upside down, and you'll have a *very rough* (no.. make that *very very rough*) idea what an abstract syntax tree looks like. Breathtaking, isn't it?

This quantified self approach will take a few months of tracking, but it’s a surer way to find out than waiting for the results of a formal study. Such studies could hint at possibilities, but would miss your specific coding habits, your self-designed practice regime, and myriad other factors that influence outcomes. If you’re already developing complete systems while solving coding puzzles on the side, why not track it?

Code Evaluators Give Recruiters an Additional Metric

Tools like this would be a great complement to programming interview questions. Instead of judging a prospective teammate based only on their performance during nerve-wracking whiteboard interrogations, making them question whether they want to be part of your team, evaluate the code they’ve written before.


American football athletes
You won't see this team grill anyone with brain teasers.

* Abstract syntax trees are a way to represent source code so it’s easier for compilers to parse. For more details on how they can be used in code evaluation, see Construction of a Generic Program Representation for Automated Metric Computation.

Chris Del Campo
Wizard of Light Bulb Moments

Practiced in the art of playing video games while writing long essays. Subtly charming social mediaholic. Wannabe pianist. I like long, romantic walks down every aisle of Target.

Can Competitive Programming Improve Software Development Skill?
2

Can Competitive Programming Improve Software Development Skill?

Engineering
Published or Updated on
Aug 14
/
2
min read

Does solving coding problems at competitive programming sites like Codewars and LeetCode help you write better software? To what extent?

If you’re looking for work as a software engineer, one way to prepare is to split time between working on a software project that shows you can build complete programs, and solving coding problems of the kind they present at interviews.

What if you want to improve your system-building skills while you’re employed as a programmer? You’ll want to keep up the competitive programming practice in case you’re streamlined and need to resume the job hunt, but it would be nice to know how much solving coding problems improves software development skill.

Track Progress with a Code Quality Evaluator

The best way to find out is to track your own improvement in software development skill using a tool like Malloy and McNellis’ Code℞ program evaluator, which measures the quality of your code by traversing an abstract syntax tree representation of it.* You’d periodically run snippets of code through it and compare the quality with previous versions.

Tree at colorful sunset
Imagine this tree upside down, and you'll have a *very rough* (no.. make that *very very rough*) idea what an abstract syntax tree looks like. Breathtaking, isn't it?

This quantified self approach will take a few months of tracking, but it’s a surer way to find out than waiting for the results of a formal study. Such studies could hint at possibilities, but would miss your specific coding habits, your self-designed practice regime, and myriad other factors that influence outcomes. If you’re already developing complete systems while solving coding puzzles on the side, why not track it?

Code Evaluators Give Recruiters an Additional Metric

Tools like this would be a great complement to programming interview questions. Instead of judging a prospective teammate based only on their performance during nerve-wracking whiteboard interrogations, making them question whether they want to be part of your team, evaluate the code they’ve written before.


American football athletes
You won't see this team grill anyone with brain teasers.

* Abstract syntax trees are a way to represent source code so it’s easier for compilers to parse. For more details on how they can be used in code evaluation, see Construction of a Generic Program Representation for Automated Metric Computation.

Chris Del Campo
Wizard of Light Bulb Moments

Practiced in the art of playing video games while writing long essays. Subtly charming social mediaholic. Wannabe pianist. I like long, romantic walks down every aisle of Target.