I have spent more than a decade in the software industry. I have worked on a variety of things in a variety of roles; software engineer, system architect, product owner and others. Some of the work I have done became successful prototypes, some are important features of interesting consumer appliances and most are definitely living somewhere out in the world. I definitely have contributed something to the world and made a few people live a lazy life (with the help of a robotic lawnmower for example). But I always have the feeling that I haven't done much.
I remember the post examination discussions in school. There would be guys who would claim they had got everything right only to be proven wrong on result day. I always had a bad feeling about the exam although I would eventually end up first or second in my class. But results were much more tangible and at least that gave some comfort. Work though is not as easily measurable. How do I grade my level of expertise in feature A of product B when there are not many open source references to compare with? So, the end result is that I continue to feel that there was something more I could have done with my work. And as always, you meet people who are fully content with their work. And then I wonder again, maybe I haven't done that much.
Learning helps but not fully. In the past few years, I gained a masters degree while working, completed several courses on Coursera, Udacity and others. These have continuously kept me updated in technology terms and definitely made me better as a software engineer. But learning without regular reinforcement erodes slowly. I could solve every math problem in school but definitely would struggle today and that doesn't feel so good.
But I know there exists a solution because I have seen glimpses of it. Every time I worked on a project where I had to continuously learn something and use that learning right there, at that instant, there was no such self-doubt. So, the solution seems to be build, build and build. Like my son playing with Lego all the time. Kids don't reflect much. They just do stuff. And they are always happy. The only question then is, what do I build? Which, seems like a comparatively easier problem to solve.