Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

my aha moment as a developer

- I would learn some technology to a point where it does what I want

- I take what I learned to some new technology but find myself doing things from what I learned in other technologies

- this puts me in a strange loop where reality wasn't lining up with my expectations or I would do things that were more work than necessary because of learned habits

- the aha moment was when i started learning the theory of the thing I was working with

* it was key to getting out of this rut

* turns out this applies to any theory from abstractions all the way down to computational theory, type theory, automata theory, software analysis theory, hey if i ever get there maybe even software synthesis

in a nutshell i would summarize this aha moment as "you can keep doing the same old tricks and eat the cost or you can always dig deeper and see what costs can be avoided."



this might be a bit vague so to put another way perhaps I learned to zoom in before zooming out, and once I have done something, it never hurts to zoom in again and see what can be gleaned from the assertions I was making about the world at the time. in practice some things I have learned to ask myself are

- what is the shape of the input data (requirements, configuration, dependencies are also data) of the thing I'm working with and what is the shape I'm looking to produce as output of this software (could be any combination of side effects, screens, or just data)?

- on a larger feature or set of features i look for a domain language to be discovered or did I create a domain language and does it hold true?

- what are the fundamental assumptions I was making and could they be improved from first principles?

- what is the expected and unexpected behavior of what I am building today or what I built in the past and why? (learning opportunities)

- the takeaways are my assertions are only as good as my understanding and understanding requires detail, attention to detail is only as good as my checklist, and my checklist is only as good as the questions I'm asking, this helps create a habit loop where I can hopefully improve outcomes with each iteration based on deeper introspection




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: