The difference between software and surgery is that in surgery you can make unfixable mistakes. Not so in software, unless your program is controlling a Therac-25 or something. The key thing to realize is that even when you go to school to learn, they can't possibly teach you "everything". You still have to learn a lot on your own after graduating.