2 ms·
Via lots and lots of bad designs. Oh and then more bad designs. Slowly, you start to realize what didn't work, so you try something different. Read about a new
by junon 4y ago
Via lots and lots of bad designs. Oh and then more bad designs.
Slowly, you start to realize what didn't work, so you try something different. Read about a new pattern, try it. Realize why it doesn't work in specific cases.
Slowly, you start to find things that do work. And you start to reuse them. And sooner or later, your code becomes more robust. You start seeing less spurious bugs. Your programs seem cleaner and faster.
You start to notice themes and patterns, some of which are a bit complex to even verbalize - almost like a muscle memory. You start seeing these themes across many types of systems.
Revisiting programs later on, you realize old mistakes you made, which further solidifies the "feeling" for what's good and bad design in which cases.
There's no real shortcut here. It's just a matter of experience. The only thing aside from simply writing more code is to read more code (whatever form this might take).
I highly suggest getting involved in OSS.
- rjmill 4y agoWell said. To add on to this, I recommend keeping a journal about your design thoughts and experiences. By putting your thoughts into words, you can further solidify the "feeling" of good/bad design into something that you can explain to coworkers.