Humble also!
Humble also!
That's actually my main complaint about Facebook right now. It's been slapped together by college-level programmers, who are just about the least talented level you can bother considering as employable. If anything, I wouldn't be surprised if their stance on privacy weren't an ideological one but a technical one, i.e., they couldn't figure out how to make their bodged together system keep from leaking information like a sieve, so they called it a feature rather than a bug.
I sometimes have the opposite feeling: "Hey, I did so much interesting stuff back then, and learned a lot. Am I still at the same level?"
My abilities may have been lower back then, but I sometimes get the feeling that the rate of progress was higher.
I'm trying to correct that now, and I'm starting to see results, but it's slow, especially now that I just moved to a new city. One of the ways that I've used to force myself to get things done is to set up disincentives for failure, i.e. I will buy the hosting for a project as soon as I have the first prototype done, so the longer it takes me to finish, the more money I'm wasting having an unfinished project sitting around. Another way is to start releasing my code on CodePlex, which tends to force me to document things a lot better. Of course, those are things that are more suited to my personality: the perfectionist in me was what prevented me from releasing, so forcing myself to release brings out the completionist in me.
Really, what I need is my own personal secretary/intern to keep notes for me and finish the dirty work on my projects :D
Have you tried specifically scheduling some time for secretary/itern-mode?
I guess it's protection so if someone finds a glaring mistake, or several, they can just say "I told you so!".
At a certain point, you have to stop thinking about what your skill level is and start just doing. Spolsky used the term Architecture Astronaut, which I definitely was going in to my first job out of college. Now, I rarely think about architecture up front, I think about requirements and the fastest path to them, with the post step of eliminating repetition. This ties into YAGNI and 7 Habits and OODA and all kinds of different decision making strategies that it just feels right through and through. Architecture seems to fall out from that and makes up for a lot of my own failings for design.
Point being: we're all at certain level X, and our relative level compared to other people isn't important, it's what we do with our personal level to develop and deploy projects. I've seen pure procedural code written in object oriented languages that got the project done and got it done well. I've seen object oriented systems with perfectly defined abstraction hierarchies fall over on itself. Don't get me wrong, I'm not arguing against OOP with those examples, just saying "Code Elegance" be damned, you can't argue with "Shipped".
Where was I going with this? I forget... oh well.
I don't know, maybe it's cultural. In 13 years in the industry I never ever met anyone who bluntly referred themselves as "talented programmer". And a few actually had grand egos..
But good luck to them with the project anyway. I like the idea, just that the opening line was sorta gross.
The worst thing is being aware of it, though. "Man, I suck... which must mean I'm awesome! Which must mean I suck..."
It's a horrible infinite loop.
hehe