I don't have a degree. I make an above market salary in NY for a software engineer. I have worked as a developer, and now I specialize in software security. I'm very happy with my career, and I haven't considered going to school at all. I'm especially happy not having any debt (I don't brag about this though, because I think it's off putting and I still think most people should get a degree). I recognize that I'm an exception however, and I wouldn't recommend someone follow my path unless they're very good at exercising control over their time without supervision.<p>A few notes:<p>1. I'm good at what I do, and I constantly try to improve my skillset. I think that comes across to people, so no one has ever expressed any concern with my education whatsoever. In fact, anyone who I have spoken to about it has explicitly stated they don't care (this goes for people at large recognizable BigCos to small Series As).<p>2. I network very well. I learned early on that having a mentor and knowing how to be charismatic and connect with influential people is better than spending time fixing up your rèsumè and then submitting it to a job ad. I've also found these people don't care about the credentials.<p>3. I still recommend most people go to school. People have this tendency to see exceptions to the rule such as myself and think, "Hey, look, you don't need school!"<p>No, you don't, but how else with you learn? You need a plan. You need a passion. You need discipline. Those words are overused a lot, but to cultivate a skill like programming outside the classroom really does require passion. I sat down for hours a day when I was in high school, reverse engineering things I came across, reimplementing things, tinkering, reading from the same algorithms textbooks people use in top schools.<p>To be honest, the only real difference is that I read my textbooks from home and didn't pay as much for them. That's the sort of person you need to be. Again, not bragging, just a real point - evaluate if you are this sort of person with this sort of dedication before you drop the regimented structure of school.<p>4. I'm very open about my background and don't hide it. It's never been a problem and I specifically don't hide it because I'm confident in my skillset. For what it's worth, I still receive recruiting inquiries on LinkedIn several times a week.<p>5. You do not need to go to school to learn almost every discipline of what is typically called "software engineering." You can learn almost all of computer science online. You have in your pocket the most self empowering tool since the invention of the printing press. You can, at a whim, learn every single algorithm. You can learn to implement every algorithm, and their corresponding time complexities, within six months (three months if you are really studious).<p>Think about what you can do with three hours of free time a day and the entire internet at your fingertips. I walked through learning several programming languages, algorithms and data structures, algorithm design, optimization, computer architecture, operating sytems, networking, etc. etc. by spending a few hours every single day. The difficulty is not the availability of the information, the difficulty forcing yourself to just sit down and do it.<p>My bottom line is that it's still better to go to school. For example, I still recommend my young relatives go to university, because I think it's very rare for people to really succeed in teaching themselves without structure imposed on them. But on the other hand I do feel very happy about my choices because I know my skills are strong, my knowledge isn't lacking and I saved quite a bit of money. I don't regret it at all. It's never held me back, and it doesn't have to hold anyone back, but you need the discipline and passion to make it work.