> How much of this is impostor syndrome and how much reality? How different are other fields really? I also feel any new programming task as something foreign, for which I am not ready, basically undoable from my position. But at the same time consider myself able to get into anything and everything, and of fixing and building whatever that can be done. I cannot figure out any straight explanation for such senseless duality, nor feel I adopt the same position for anything else in life.<p>I believe this is a side-effect of the "creative" aspect of computer programming. Creative jobs tend to have impostor syndrome, because there is no piece of paper that you receive that says "this person is 100% certified to be a song writer" or whatever that creative job is. Since software engineering also has no paper certificate, apprenticeship, mastership, etc, there is no proof that you know what you are doing, and it's all a little too loosey-goosey "figure it out for that one job". There's no certainty that you're doing it right.<p>A Computer Science degree is about as much evidence of you knowing what you're doing as a warranty on a hammer and chisel is evidence that you know how to cut wood joints. Software engineering is a trade, completely distinct from Computer Science. That's why so many people in the industry don't need a degree. You learn the trade on the job.<p>It's just bizarre that we don't have apprenticeships or trade organizations to ratify someone as a Real Programmer(TM). I can hire someone with 3 years experience working as a programmer and they'll turn out to be almost incompetent. That shouldn't be possible, especially for a job that pays $140,000. But I guess it happens with construction contractors too, so maybe it's not surprising?