Lummox JR made a post a while back on programming levels in ID:312975
I think I pass as an intermediate programmer, but I was wondering what would be between intermediate and advanced. What he said for advanced was,
# Programs robustly.
All the time, I never abuse usr the colon operator or goto, I use bitflags and datums where appropriate.
# Almost always chooses good design methods.
I try to, I consult others when I think mine is flawed or there may be better ones, like with loading a .dmp file at runtime.
# Can optimize code (at least somewhat).
I use bitflags and datums alot. I try not to make too many variables, I take advantage of the short circuit properties of || and && in if() statements.
# Knows many pitfalls and workarounds for them.
I'm not sure about this one, can you please explain better.
# Uses all available reference materials as needed.
I've mesmerized every proc in the DM reference and know it like the back of my hand. I also consult the forum and google when I am stumped.
# Can develop new algorithms based on old ones or the underlying theory. (E.g., an advanced programmer could figure out from scratch how to do 47-state autojoining turfs, though it might take them a while.)
That I am not at that level yet, it is very hard for me to do autojoining with BYOND's directional system.
So, what would be the requirements for a "decent" programmer or something between the lines of intermediate and advanced.