On the not calling yourself a programmer part: It may be a local thing, but the term engineer was usurped by government to essentially refer to someone who does things by the book. As such, engineer has come to mean someone who has trouble seeing the bigger picture and won't break some rules to deliver something amazing.
Obviously that is not true of many engineers, but the damage to the term is already done (again, perhaps only locally). I find it hard to take programmers who call themselves engineers seriously as a result, even if they are really good at what they do. My advice is not call yourself an engineer if you develop software. You want to use a title that makes people think you do amazing things.