The route of a self taught software developer is one tough ride, so be prepared.
If you are really passionate and curious about computers and want to explore and learn the magic behind how it all works, and you love solving problems — you better get a college degree. But, if you can’t afford one, or you hate college, you can go the less walked path and become a self-taught software developer.
But the truth is that truly successful self-taught software developers are quite rare, since the learning curve is huge and if you apply for a job you’ll compete with people who have achieved a computer science degree (which isn’t that easy to achieve).
As a self-taught software developer you will be forced to outperform your college software developer peers. Which will increase your chances of achieving something great, or creating something the world needs. This “weakness” will turn into your strength.
Ideally, your drivers for a successful career as a self-taught software developer would be curiosity, the urge to explore the unknown and learn new exciting things. However, this isn’t always the case. For a self-taught software developer it’s very easy to fall into a trap called the imposter syndrome, which means — you feel like you don’t deserve to be a part of your software development team. You feel unsure of your ability to perform software development tasks, and fear creeps in. This less friendly thing will be another catalyst for your rapid growth (or will lead to your failure — you choose).
As a self-taught software developer you will always have doubts whether you made the right choice(unless you made the big bucks), maybe the normal safe path of a attaining a college degree would be much easier and would make your life less stressful and less risky.
The software development field is unique in the sense that it’s available to everyone. Everybody these days have access to a computer, so theoretically speaking, everyone can learn how to program. Since software development is available to everyone, you better acquire a unique skill-set and be an expert of that. That way you will separate yourself from the crowd. You should find a niche that most people don’t have access to, or require enormous amount of energy to achieve.
Otherwise, you’ll be more easily replaceable — which is bad.