I generally equate elegance with conciseness, so when I'm coding I generally try to stick with the simplest/shortest solution. That means that I'll avoid factoring things out into reusable generic functions until I can actually save lines by doing so. I find that doing this lets you pick out which parts of the code are naturally similar, which in turn leads to more natural code reuse and organization, versus guessing that a generic function with a generic interface will be useful, even though you are currently using it in one place.
So I do start from inelegant code, but I clean it up as I go as I see fit, and generally, I try to avoid committing messy code. Then again, at my job, my coworkers place no value in rewriting code for the sake of making it better, so if I (or more often, one of my coworkers) commit bad code, I'm pretty much stuck with it. I hate my coworkers.
I would hate to have a programming job. Other people's code ugh.
I'm noticing in this refactor, some places I tried to make a very generic function. I look at them now like "Why does this exist?" I was probably trying too hard.
DBuck-Eye
I generally equate elegance with conciseness, so when I'm coding I generally try to stick with the simplest/shortest solution. That means that I'll avoid factoring things out into reusable generic functions until I can actually save lines by doing so. I find that doing this lets you pick out which parts of the code are naturally similar, which in turn leads to more natural code reuse and organization, versus guessing that a generic function with a generic interface will be useful, even though you are currently using it in one place.
So I do start from inelegant code, but I clean it up as I go as I see fit, and generally, I try to avoid committing messy code. Then again, at my job, my coworkers place no value in rewriting code for the sake of making it better, so if I (or more often, one of my coworkers) commit bad code, I'm pretty much stuck with it. I hate my coworkers.
MSGhero
I would hate to have a programming job. Other people's code ugh.
I'm noticing in this refactor, some places I tried to make a very generic function. I look at them now like "Why does this exist?" I was probably trying too hard.