As someone who entered the field with a non-CS degree, I can tell you about my own experience. I graduated with a degree in physics without any programming experience and now work at one of the big tech companies. If I had to do it again with programming in mind, I would absolutely take computer science in school and do as many internships as I could to gain work experience.
With a STEM non-CS degree it was an uphill battle for years, and it would have been even more so without a degree at all. There's a huge amount of luck involved, and I spent a lot of time working outside of my day job to build skills and a portfolio to get my first real programming job at a startup.
I also never want any additional reason for a potential employer to pass on my resume, and not having a CS degree is potentially one of them. I have been able to offset this with the classes I've since taken and fortunately the name recognition of my current company, but it would have been nice to have had it from the start.
While this job does provide a lot of upward mobility in our current culture, I will also say that it's not a job for everyone like some recent loud groups will say. It sucks and is really hard and to be really good you have to be able to not care about that enough for the days when you really really do something great.
If you can get a CS degree without going into unreasonable debt, do it. Especially if your real goal is something like becoming the next Robert Moog. Weather you do or don't though, you should probably be writing code today and tomorrow.
When I hire someone, I pretty much ignore their degree. Why? Because I've seen CS grads who don't know how to program very well at all, and I've seen English grads that are programming gods.
I think it comes down to passion. If you see programming as just a job, you'll have a hard time self teaching it to yourself. If you see it as a pleasure, an art form, the learning will happen without you even realising it!
Words of wisdom from someone in my team: programming is infinitely more fun when the pressure is off.
My observation is that around half the people I've worked with in this industry have a CS degree, and most of the rest have an engineering/maths/physics degree. There are a few people who don't have typical qualifications (myself included) or no degree at all, but as a general rule I would say it's less common.
If you don't have a degree, it doesn't matter - but you will still need to demonstrate that you can do the work. Having 1-2 substantial Github projects in your portfolio is a good way of achieving this, along with studying online courses such as CS50 so that you know basic data structures/algorithms.
Nevermind; International students can't get the same offer to pay off the tuition after getting a job.
Meanwhile, I'll just continue learning on my own.
unions bad! does work life balance really matter? are conservative ideologies really better fundamentally? these are viewpoints you can EASILY inculcate in a teenager given the right amount of motivation(responsibilities,perks,money,being treated as an adult etc etc)
i can't see how a company would NOT abuse this. it's a golden opportunity to create drones that work perfectly ONLY in your culture
Teenagers deserve time to think about stuff and to adults.
All the material I've been through has been shallower and less useful than what I could have found online or in a book.
If you don't have a degree, you'll struggle for sometime while you build enough contacts in the industry where the degree stop mattering and references get you through the door without even an interview.
You simply have to lot better to get any recognization in the industy but in networking skills and technical experience.
I am a self taught drop out who never sat through an interview, worked in 5 companies. Now i am a CTO of one startup.
I had major imposter syndrome in the beginning but now I'm a key contributor to the product. You learn a ton on the job so it's important to apply for one before you feel completely 'ready'
But if you have the experience and some kind of portfolio to show it off, especially in web and mobile development, you can get jobs without a degree. These technologies are still changing faster than colleges can track.
A formal course in software engineering is not CS. SE courses focus on theory, principles, design, rather like other fields of engineering, e.g. mechanical or civil. A lot of programming is required for exercises and projects but the courses only cover languages and tools in passing. Of course, there are huge differences in how SE is taught in different universities.
If you are serious about programming as a profession, study engineering. The job has changed enormously over decades, but engineers train for adaptability.