Software development is huge, it’s everywhere, into everything. It’s easy to get lost. Am I a kernel developer, an enterprise developer, or a game developer? And it’s easy to feel disillusioned when we find our skills and knowledge lacking on certain tasks as we resort more and more to Google and Stack Overflow. On top of technical knowledge we also need domain knowledge: 3D maths, physics, finance, hardware, accounting, etc. No matter how good our coding skills are, in the wrong domain with an incompatible skill set, we live in quiet desperation.
This is a nice talk by David Heinemeir Hansson in which he discusses, among other things, how he got into software development and the type of developer he is. He accepts his limitations, and focuses on what he can do.
I think it’s important for us to consider our skills, temperaments and preferences so we pursue a career that is both suitable and purposeful. We can’t do everything.
I also agree that developing software is like writing, or poetry. It seems to me, all these disciplines benefit from being concise and fluid.