4 ms·
1) Spend significant time understanding "why", not just "how and what" things are going on in your local problem, and also do the same at least 2-3 layers above
by im_down_w_otp 10y ago
1) Spend significant time understanding "why", not just "how and what" things are going on in your local problem, and also do the same at least 2-3 layers above and below you in the stack. You should be able to walk away from any significant piece of work with functional expertise in at least two domains related to your local problem.
2) Carve out the time and space to make 3-5 variations of a unit of work before considering it minimally complete for iterating and building upon.
3) Pay really close attention to feelings of pain and/or drudgery when implementing something. Very often those are signals your design and separation of concerns are wrong, because you're fighting uphill against your problem space.