FWIW, I'm 40 and have been programming professionally for 15 years, and programming as a hobby for probably 8 years before that.
I still run across stuff I don't understand, all the time.
And I'm not one of those people who have "1 year of experience 15 times" instead of "15 years of experience". I'm pretty aggressive about learning new stuff and expanding my horizons. And yet the pace of change is so fast, there's always new stuff coming out, or areas of tech I'm discovering for the first time.
The moral of this little diatribe? Don't sweat it. Be curious, explore, learn, hack, and don't worry too much about comparing yourself to others. And don't assume everybody on HN is some uber-genius, super-brilliant "10x" programmer. I mean, sure, there probably are people like that here, but I'm pretty sure they are a small minority.
For another take, you might find esr's "How to become a hacker" essay useful:
Other than that, my only advice would be to start a project (open-source or not, whatever you think) that gives you a venue to challenge yourself. That is, start a project that you don't believe you're really competent to complete, and then go do it.
Something to note on thinking everybody is a super-brilliant "10x" programmer: You're not seeing the same people post deep, insightful things here on HN. There are people who know a lot about this one thing, and can write very accurately and intelligently about it, but don't know anything about HTML or desktop programming (C, C++, others), server-side logic, etc.
The same goes for each of those fields, and every other field--there are certain people who know a lot about them, and when the topic comes up they talk about them. The reason it seems like there are a bunch of super-brilliant "10x" programmers is that there are many, many of these specialized people on HN and around the web, and at least a few of them always have something to say about a topic. It doesn't mean they're all super-brilliant "10x" programmers.
"10x" is one of the more destructive memes going around. It's a subtle shift in the discussion from talking about technique and actual work, to talking about something which is being used as a proxy for "your worth as a human being".
The only work which matters is the work which gets done. You can accomplish a lot by simply doing the things that need doing. Bad code gets written and all that.
10x isn't just a meme going around ... It's even referenced in "The Mythical Man month". If you're a "productive programmer" you should never have a problem finding employment but what "productive means depends on the context. Does NASA want code quickly or do they want well thought-out and thoroughly tested code? With Etsy's DevOps infrastructure, they're pretty confident deploying several times a day.
True. In fact it's quite likely when you read a comment about some Foo technology, that Foo's creator or someone on the original Foo development team was its author. I'd say it's unlikely that four years of programming Python will make you as much of an expert as this guy http://stackoverflow.com/users/818274/guido-van-rossum?tab=a... Yes, I should hope Guido Von Rossum's answers to Python questions make him seem like a 10x guy!
Wonderful response, thanks. I have attempted a handful of open source utilities and none of them ever received any activity from others at all. I would love to maintain a project or just work with others in general since I'm working in isolated 'for myself' territory.
So then you have a networking issue too then. The people kind, not the computer kind.
To bridge that gap, you might want to see if there are tech Meetups in your area. In NJ where I am, there are two extremely active groups that throw together entrepreneurs, investors, devs and developers a few times a month for very low cost. Establish who you are, and get assistance from others, advice sharing, make new contacts, find out where the industry is going, etc.. Normally you walk out of the meetings on a better career path than when you entered.
What are these utilities and how would I find them? It might be worth investing in some SEO experimentation to make sure you're stuff's actually findable by those who'd be interested.
I still run across stuff I don't understand, all the time.
And I'm not one of those people who have "1 year of experience 15 times" instead of "15 years of experience". I'm pretty aggressive about learning new stuff and expanding my horizons. And yet the pace of change is so fast, there's always new stuff coming out, or areas of tech I'm discovering for the first time.
The moral of this little diatribe? Don't sweat it. Be curious, explore, learn, hack, and don't worry too much about comparing yourself to others. And don't assume everybody on HN is some uber-genius, super-brilliant "10x" programmer. I mean, sure, there probably are people like that here, but I'm pretty sure they are a small minority.
For another take, you might find esr's "How to become a hacker" essay useful:
http://www.catb.org/esr/faqs/hacker-howto.html
Other than that, my only advice would be to start a project (open-source or not, whatever you think) that gives you a venue to challenge yourself. That is, start a project that you don't believe you're really competent to complete, and then go do it.
Also, "read a lot".