I am also self-taught. I was lucky to have many mentors in my professional life, but I also had the foresight to know that I should use my skills as an autodidact to teach myself the things that lie beyond the endless tutorials and self-help programming books. There is genuine value in those things, but they only take you so far.
I think it's wise to study the great open source projects of the world and, if possible, to contribute to them. It is also wise to continually take on projects and challenges just outside your current skills and comfort levels. Who says you can't write a database? A compiler? A video game? Your first attempts may not be professional quality or even usable outside your own little world, but they will help you grow.
A programmer wakes up in the middle of the night and asks "gee, I wonder if I could boot Linux inside a web browser on top of an emulator written in JavaScript?" An average programmer says "Ha! Maybe if I were a wizard." A master knows that anything but attempting it is an excuse in mediocrity. And then Fabrice Bellard shows us all what can be done when the shadow of "The Great Wizard" is cast aside and replaced with the pain and slow but inevitable rewards of real work and productive failure.
I think it's wise to study the great open source projects of the world and, if possible, to contribute to them. It is also wise to continually take on projects and challenges just outside your current skills and comfort levels. Who says you can't write a database? A compiler? A video game? Your first attempts may not be professional quality or even usable outside your own little world, but they will help you grow.
A programmer wakes up in the middle of the night and asks "gee, I wonder if I could boot Linux inside a web browser on top of an emulator written in JavaScript?" An average programmer says "Ha! Maybe if I were a wizard." A master knows that anything but attempting it is an excuse in mediocrity. And then Fabrice Bellard shows us all what can be done when the shadow of "The Great Wizard" is cast aside and replaced with the pain and slow but inevitable rewards of real work and productive failure.