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

On the other side of 40 here, I definitely know what you mean, but I also think you can cultivate a beginner's mind and openness to ambitious ideas while still leveraging your experience to see around corners and avoid dead ends. Two ideas:

First, remind yourself that software is malleable. You don't need to build it perfectly the first time, and in fact you will always need to modify it as you go, so don't get stuck in analysis paralysis. You're good at writing code, so leverage that skill to iterate quickly.

Second, don't equate growth with chasing more and more powerful abstractions. Remember, "all abstractions are leaky" in the same way that "all models are wrong, but some are useful". IMHO valuable software comes from concrete use cases. So as you get more experienced you should be able to write simpler code that provides more value. Let the abstractions emerge from practice and experience rather than obsessing over them before you understand the problem.



When starting to lead a team I was shocked at the amount of times I had to redirect from overcomplicated ideas and over optimization. Even more than that, I had to constantly remind the team that we needed to get something working before we got something perfect. Pragmatism came slowly for me but learning it early would, I think, serve anyone well.




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

Search: