Crushing the Impostor Syndrome
cyclonelife.net
cyclonelife.net
It's easy to forget that there are a lot of programmers diddling with enterprise java and php on a day to day basis, not doing anything particularly mind-blowing, just dutifully closing their tickets.
(a) Learning in any area means learning, among other things, how much there is to know. This makes one feel humble (at best) - yet in reality one's own knowledge is probably way above average by the time you get to this perspective.
(b) Some people who appear competent (and in some cases think themselves competent) really aren't. Don't assume too much in either direction!
Impostor syndrome can mean that you have difficulty taking pride in your work (since all you can see are the problems with it), which makes it difficult to share your knowledge - which isn't good for other people who might want to know about it and learn from it, and isn't good for your reputation and career growth.
Impostor syndrome can also mean that it's hard for you to ask questions (and admit that you don't know something!), since you're worried that you don't know as much as you should, which makes your work harder.
Not taking pride in your work and not asking questions also means that you're not really being the best role model for people looking up to you - your coworkers, people who work for you, volunteers who help with your project, etc.
(This is based on what I learned from the impostor syndrome presentation described at http://adainitiative.org/2013/06/kicking-impostor-syndrome-i... .)
It's very true, though. Historically men are not allowed to have feelings or ask for help or show weakness. I think this is changing, but I have zero evidence (even anecdotal) to draw from.
I totally agree with "If I don't make things as good as I can, why do them at all?" as I've thought along the same lines.
The worst part are the mistakes that inevitably occur during each 'phase'. When you're riding the ego trip, it's very easy to slip and make a fool of yourself or cause someone else feel stupid when they're not, while on the other end of the spectrum you make poor decisions because you feel like you're not good enough.
I went to a presentation of this talk at OSCON last week, and there was a big audience of both men and women of various ages and backgrounds. I'm pretty convinced that educating people about impostor syndrome is important to a happier, more diverse, and more productive tech community; it's holding too many of us back.
Well, we're all standing on the shoulders of giants, so that last part might be framed very pessimistically. But I just don't want to be programmer that either brings a comparatively little to the table or even a net negative of contribution on bad days, who has to have some mythical 10X programmer in my vicinity (on, say, my team) in order for me to get anything remotely useful done.
It's only partly about self-esteem: if I don't have a talent for this gig, I want to find out about that so that I can get out gracefully. So it's not just a question of thinking positive and getting better self-esteem, it's also a question that has practical implications.
The form is paper-based, because it requires a number of signatures to make it legally binding. They brought in a consultancy to move the whole thing online. They've been at it for a year and a half. I started wondering what it was that's so difficult.
The consultancy created a form in which fields, guidance and rules were hard-coded. Part of what took them 18+ months is that the client kept making changes to form guidance.
I got myself a printed version of the form and used it to create a form-builder, which simply generates HTML. A non-technical business admin can change field sequences, guidance, and business rules using a simple UI, and publish those in real time. That took just 3 days.
When I demonstrated my proof of concept I got those 10x comments. Guess what. I'm a festering pile of shit as a programmer. But I've been doing this for 20 years, and have solved this little problem many times in those 20 years. I didn't write much code. I just copied and pasted stuff I had lying around, renamed some entities and methods, and put it onto a server.
It really is just experience.
Programming isn't just about writing great code, it's about solving problems. Sure, one problem to solve is having code be extensible/maintainable, but it isn't the only one.
I don't care what shiny new code is written with the latest framework; if it doesn't solve a business problem, it's bad code.