I'll play devils's advocate here:
I tend to think very independently, often coming up with unconventional, sometimes unorthodox, ways of solving problems.
This sounds like you usually find unnecessarily complex solutions to problems that can be solved more elegantly. Solutions so complex noone but you can understand them. And that makes you proud because you're so much smarter than everybody else.
I do not like to listen to authority such as having to code up software a certain way or following strict guidelines/formats.
This sounds like you usually write "crappy" code. Dangling pointers, inconsistent indentation, global variables named
w... And you think you don't need these useless guidelines because you're so smart.
< /devil's advocate >
If any of that description fits, you may have a great future in software development. But you'll have to learn that you can write even greater programs if you follow the sensible guidlines where they make sense. Things that are just useless for a 10 kloc program (like worrying about dangling references, variable names, indentation) suddenly become very imporant when you're working on a 100 kloc or 1000kloc program. And you'll have to accept that it takes years of practice before you can judge where the guidelines make sense and where not. Until then, you'll just have to apply them everywhere. Or write crappy code.
My advice would be to find the most complex field you can find (that interest you): e.g. compiler building, machine learning, AI, symbolic mathematics. It's a very humbling experience to find a field where you really have to study hard to understand everything. And to see how much smarter the people who invented all the things you're learning must have been. If you're as intelligent as you think, you can have a great future in that field!