I find it weird that Cemetech Contests are graded on source code. Most people have a contrived idea in their head of what good code is, and yet other people write impressive programs without adhering to those ideas
.
As an example I read in CC26 that "Quantity of Comments" is a consideration?
But I always try to write my code in a self explanatory way that doesn't require such comments. I think helping others' initial resistance to learning a code base isn't a valuable consideration when it compromises the malleability of a codebase (depends on your goals though, open source or not for example).
So I find the end result much more important than the means used to get there.
In fact, the resulting program is the best measure of source code. (If you argue for extensibility, I believe that still falls under the "resulting program" since that will tell whether you were able to add everything you wanted.)
(I also think the skill curve of programming is highly exponential and that it would be hard to find judges that can differentiate how others' code may make good professional software, and because of this exponential curve the cost of that is large. But there's no easy solution to this.)
Personal experience. When I submitted Fire and Flames to CC25, I received comments from multiple judges that I should have broken the code up into multiple files. The game was 2,000 LOC. I use text editors in such a way that there is little tangible benefit to splitting code into multiple files. Due to this feedback, I made a few future projects with code split into multiple files with intention, and I found increased resistance on file boundaries for little personal gain. Often the advice people have to give (split code into files, keep functions less than ten lines, use OOP) are things that if one adheres to it, it doesn't actually become easier to write the programs one wants to write. Because it's surface-level advice. It's not advice on how to write the code that runs your program, because that advice is hard to give well.
I'm currently developing a PC game that is 33,000 LOC, with one file containing much game logic spanning 12,000 LOC. Functions span thousands of lines and are easy to change or factor out as needed. I am still able to efficiently add features and work on the game daily.
Do not think about how such means fit your personal learned paradigm, and instead think about whether an end product is created through such means.
Source code reviews from people who have trained their brains differently, use different editor workflows, and are uninvested in the project are inherently surface level. (Uninvested in a project means not beyond a codebase's initial learning hump, which I find inconsequential)
Maybe source code review ought to not count towards final rating of a program? It can be a comment. Though with how sure people are of their ideas, it may be hard to remember to take it with a grain of salt.
As an example I read in CC26 that "Quantity of Comments" is a consideration?
But I always try to write my code in a self explanatory way that doesn't require such comments. I think helping others' initial resistance to learning a code base isn't a valuable consideration when it compromises the malleability of a codebase (depends on your goals though, open source or not for example).
So I find the end result much more important than the means used to get there.
In fact, the resulting program is the best measure of source code. (If you argue for extensibility, I believe that still falls under the "resulting program" since that will tell whether you were able to add everything you wanted.)
(I also think the skill curve of programming is highly exponential and that it would be hard to find judges that can differentiate how others' code may make good professional software, and because of this exponential curve the cost of that is large. But there's no easy solution to this.)
Personal experience. When I submitted Fire and Flames to CC25, I received comments from multiple judges that I should have broken the code up into multiple files. The game was 2,000 LOC. I use text editors in such a way that there is little tangible benefit to splitting code into multiple files. Due to this feedback, I made a few future projects with code split into multiple files with intention, and I found increased resistance on file boundaries for little personal gain. Often the advice people have to give (split code into files, keep functions less than ten lines, use OOP) are things that if one adheres to it, it doesn't actually become easier to write the programs one wants to write. Because it's surface-level advice. It's not advice on how to write the code that runs your program, because that advice is hard to give well.
I'm currently developing a PC game that is 33,000 LOC, with one file containing much game logic spanning 12,000 LOC. Functions span thousands of lines and are easy to change or factor out as needed. I am still able to efficiently add features and work on the game daily.
Do not think about how such means fit your personal learned paradigm, and instead think about whether an end product is created through such means.
Source code reviews from people who have trained their brains differently, use different editor workflows, and are uninvested in the project are inherently surface level. (Uninvested in a project means not beyond a codebase's initial learning hump, which I find inconsequential)
Maybe source code review ought to not count towards final rating of a program? It can be a comment. Though with how sure people are of their ideas, it may be hard to remember to take it with a grain of salt.