I can look over someone's code and tell if they are a slumming math guy. In other words, the guy who has a PhD in some esoteric math field, but now, for some reason, has to demean himself to coding for a living. Here are a few clues I see in the code:
- You use i, j, k, l as variable names, liberally.
- Your objects have no clear separation of responsibility.
- You pass way too much between functions as member variables, globals and so on.
- You don't make any use of reasonable language features like access controls, statics, constants, or anything like that.
- Your indenting looks like you just smoked some meth.
- You have no problem have three lines of continuous equation with no temporary variables.
- All of your data structures are arrays where each index has a special meaning.
- You have functions to convert between zero based arrays and one based arrays.
- All of the variables in your functions or methods are defined at the top regardless of when they are used.