I was in your situation 15 years ago. I graduated with low grades. I was hired as a designer for a small company that no longer exists, but really I was writing code. A year later I was picked up by Travelocity the travel company. They hired me as a designer as well, but after 3 months of doing no work I was involuntarily reassigned to a developer position. I just figured it out, because I enjoy not starving.
So here are the problems I frequently encounter as a self taught developer:
1) Compatibility. As a self-taught and frequent open source developer I value the no bullshit approach because I would rather do something else with my time. That generally means not revisiting the same problems over and over, which typically describes durability over convenience and reuse over patterns. Most CS developers don't want any of that as they primarily look for patterns familiar to those taught to them at school, which is generally some form of OOP. For many developers when familiar patterns are absent the first priority is to introduce familiar patterns at the expense of everything else. Sometimes people invest so much effort into these sorts of imaginary problems that they are incapable of imagining actual real problems. Joel Spolsky calls these people "architect astronauts", but I just call them expert beginners.
2) Confidence. As a long time military guy you always act with confidence. Always. When you have no idea what you are doing you then make the least wrong decision to continue moving forward because as you move forward you will learn more and your decisions will get better. Most self-taught developers just tend to do this naturally because its what they are used to. Most developers I have worked with do not do this at all ever. Initiative only applies if there is some level of comfort. Generally across the board software as an employment displays extremely high insecurity. If you are insecure in your abilities as developer then you are right there with more than half your peers. This is another indicator of friction, because people gripped with internal fear who don't have somebody putting intense pressure upon them to drive forward will primarily act in their own self interest. This one thing scares the shit out of me more than anything else in software employment.
3) Automation. The only purpose of software is automation. Software solves no other problem, but it does do a lot of other things exceptionally poorly. Self taught developers tend to at least be vaguely aware of this, because they are learning on their own time. Many CS graduates somehow believe the goal is something else. Typically that something else is what they wished software was, as though they are a small child describing how they want to be the president or an astronaut when they grow up. When you are confused about the purpose of the thing you touch for hours every day you will be likewise confused about what the output is, how to go about it, how to perceive risk, what the rewards should be, and what to do with changes.