
Ask HN: Good habits to learn more during work - dduru
I hope the title is quite self-explanatory. I am the only junior developer at my first job (they normally don&#x27;t hire fresh grads) surrounded by medium-high experienced developers. I learnt quite a bit (code structure, architecture, migration struggles, etc.) throughout my time but think that I could make more of my time during work.<p>I am especially curious about some habits that I could try start doing in order to learn more from my surroundings. I do occasionally take time to read through the commits of my colleagues.<p>Any tips (even the smallest) would be much appreciated.
======
bradstewart
Always be looking for the "why" behind everything. And I mean everything:

Why is marketing requesting this feature? Why was this meeting scheduled? Why
was this pattern used in the code here? Why was a different pattern used over
here? Why was this release successful? Why was this one late? Why did this
production problem happen?

If you don't understand something, ask.

Building software systems is a complex process. Millions of decisions are
made, from big items like what language and frameworks to use, to smaller
choices like how a specific input is validated, or how logic is split into
functions.

As you learn through experience, you build intuition--you start making
intentional decisions automatically because you know it's a good idea. These
are often not captured in specs or requirements docs, but are very important
to the project.

Understanding "why" will help you build your own intuition.

As a follow up: a lot of things are done intentionally, but at least as many
are not. Were the imports in this file ordered this way on purpose? Why is
this a separate method if its only called from one place? If nobody on the
team knows "why" something was done a specific way, it was usually
unintentional.

The intentional things are what you want to build your intuition around. You
will start to see the effects of those decisions appear as the project
continues.

For the unintentional things, try to identify consequences (both good and
bad). Was this a happy accident? Did this cause a bunch of pain? Or was it
really inconsequential.

This will help you know where to focus--which decisions would benefit from
additional time and scrutiny and which should be done as quickly as possible--
when developing yourself.

EDIT: Forgot the conclusion....

