7 comments

6

This happens in all fields, not just programming. IMHO it's actually what differentiates those good at their jobs, and those who aren't. No matter what we do, the best at anything are always trying to figure it out and get better as they go along. You can have all the degrees imaginable, but that doesn't automatically translate into someone being confident in a particular job they've taken on.

8

I am the wisest man alive, for I know one thing, and that is that I know nothing. - Socrates

Think like that in any field and you'll go far, because you'll always be striving to be better.

2

Absolutely what I was trying to convey ... and well said me friend!

4

Some companies not only expect programmers to work 50- and 60-hour weeks, but tell them that real programmers love programming so much that they do it in their spare time, too.

I want to write beautiful, perhaps pointless programs in my spare time, not the ghastly, boring enterprise CRUD pieces I get paid to write 9-5.

2

Man, this hits the nail on the head. In fact, I think this is the antidote to impostor syndrome: If you have proven to yourself that you can write programs that you consider to be beautiful. Then, whenever there is some performance review or criticism or anything that would make you feel self-doubt, your brain instantly recalls your ability to write beautiful programs and then is able to divert the self-doubt to something external, or something internal that has nothing to do with programming ability. E.g. you will think "I'm a fantastic programmer, BUT it would have been impossible to perform well given:

  • the shitty codebase I had to work with
  • the messy and contradictory business logic in the specification
  • the wrong tools for the job
  • insufficient time or resources
  • how little I am paid

OR (internal reasons not related to innate programming ability):

  • my laziness
  • my lack of interest in the assignment
  • my lack of communication abilities
  • my inexperience working on shitty codebases with shitty tools in shitty environments

Even with the latter set of internal reasons it's not likely to make you feel like an impostor. You're a good programmer, but you just hate your job. And who doesn't?

Probably you will have to write your beautiful programs in your spare time, but (rarely) there are little opportunities to squeeze in a fragment of beautiful code at work. It won't help to program in your spare time if you are trying to commit to open source projects or something, and not allowing yourself the freedom to be an artist about it.

Looking back, I never realized it, but if I did poorly on something programming related I always instantly had a rebuttal like one of the above which could place blame on something not related to by innate ability. Especially in college. Once I hit the working world and had long stretches of working on CRUD pieces-of-shit, my confidence started to slip a little bit. But as long as I periodically find some little opportunity to feel that "magic" again of being able to write insanely cool and beautiful little bits of code, I will feel rejuvinated. Sometimes I can squeeze it in at work or sometimes I have to do something outside of work. But it really works.

As a side note-- this is how many working artists stay strong in the face of criticism and market pressure. They retain some little sanctuary where they get to enjoy their own ability and believe what they are doing is beautiful and worthwhile for its own sake. Examples might be: practicing material that they aren't currently working on for their job, creating goofy side-pieces that aren't intended for any practical purpose, performing or creating material for friends or in a volunteer or philanthropic capacity, etc.

This is something that school and jobs won't teach you, and sometimes will actively mock. I remember trying to do something the "right" way on the job once and a project manager said to me "we aren't trying to create the Mona Lisa, here." You have to learn this on your own and be willing to maintain your belief that you, as a programmer, are a working artist, and deserve to be called an artist, even in the face of harshest criticism and embarrassing failure.

3

Feels pretty good to know that I'm not alone in feeling that way. As upperclassmen, all my classmates started seeming more confident with their programming ability, while I never really made it out of the mindset where I feel like I don't know enough and was just kinda winging it.

0

What do you want, a trophy? Odds are, yes, you are terrible at programming. In fact almost everyone is terrible at their jobs. Why not apply all of that energy wasted on worrying about not having good skills and invest it in, oh I don't know, oh yes I do: work on your skills.