Before you call yourself a complete programmer you must at least learn a good amount of Common Lisp. Now Common Lisp might never get you job but it will make you think differently about programming forever. Once you learn some Lisp at reasonably well it will give you a look at programs should be written and you WILL make better programs because of it.
I would say to try to expose yourself to as many programming paradigms
as you can. Learn what agent-based programming, class-based programming, event-based programming, functional programming, prototype-based programming is.
Learn parallelism - both thread-based and task-based.
Not every language makes every paradigm intuitive to use, so try to use different languages so you get an idea of what closures, polymorphism, anonymous functions, templates are really like.
I'm fortunate to have a job where I'm exposed to large projects that range from Node.js to C++ to Perl to PL/SQL.
Understand that everyone is an expert on something else - while one programmer may be an expert on cryptography, another may be an expert on compiler technology, network architecture, graphics rendering, memory management, databases, or artificial intelligence. Do not disrespect someone because they make a simple mistake or ask what you think is a dumb question - they may be experts and highly respected in their own fields.