4 ms·
I usually work in phases. -explore possibilities that challenge my sense of the problem space (closely allied with reading stuff on the internet, that leads to
by tmsh 16y ago
I usually work in phases.
-explore possibilities that challenge my sense of the problem space (closely allied with reading stuff on the internet, that leads to HN, etc.)
-try out various different ideas
-come up with a pretty cool idea (using a two-dimensional array for double dispatch -- b/c you can create a nice text table of which functions are being invoked...)
-that cool idea encourages me to really solve this problem well
-i realize that at this point i really don't need to do something that extensive
-i solve it simply using closer to the bare minimum of what was needed
-i solve other simple things that i've had queued up
and repeat. in other words, there are two types of productivities that i think we as developers go through. exploratory, expansive stages. and synthetic, work stages. this probably isn't news to anyone. but they really are two different things, and you really have to balance both to be efficient. too much 'getting it done' and you'll lose interest and miss large steps figured out by others or by yourself. not to mention you'll lose the expansive 'energy' that comes from solving things abstractly and in a new way. on the other hand, too much of an 'exploratory' attitude and you not only won't get stuff done, but you'll lose the confidence you had about how well you can solve things in small steps, that build up, etc.
anyway, that's just my sense. there may be more than just two 'phases'. and the phase change is more a calibration of emphasis than an all-or-nothing switch. when i'm going through the exploratory phase i'm much more sociable, taking breaks, etc. and then i pwn in the work phase. or something. i also download and watch a fair amount of tv.
but i think part of what makes one developer more experienced than another is that they have larger phases. they've had the confidence from experience to not need to get to that work phase quite so quickly. of course, you can make mistakes, and not be ready for quite so large an explore/work phase balance -- and have to reel it back a bit, but generally speaking, one's threshold sort of increases (the more features are delivered on time, the more projects are delivered, etc.). anyway.... more important than anything is probably being honest with yourself (if you are the type who naturally tries to self-improve). anyway, this is all a bit off topic...