Here's perhaps some unexpected and unsolicited advice... so pretty clearly you aren't going to have a hard time with the CS curriculum (assuming that's what you intend to study) so my $0.02 is - find a second or even third major to augment your skill set. If you are already able to get to this level on your own, you'll likely breeze right through a typical undergrad CS course of study. So consider other courses of study that might be a bit more of a challenge / might give you an even broader skill set four years from now when you enter the workforce or consider grad school.

i did this and regret it (38 now and have a technical CS startup), i studied electrical/computer engineering but what i should have done was gone to a better CS school or get approved for accelerated course work. the main problem for 18 yo me was lack of visibility into what a good CS program looked like, as opposed to just knowing more than the CS teachers at an eng school not ranked for CS. also, take as much math as you can.

you should be studying: lisp ocaml haskell, interpreters (SICP), compilers, type systems, transaction processing, effect systems, FRP, concurrency NOT java guis python SQL databases webdev gamedev .. whatever

Can you expand upon why you chose those particular things to focus on? I’m genuinely interested and don’t have a traditional CS background so I’d like to know what I’m missing.

(Serious question. I’m not being snarky)

As a self-taught seeker who spent 20 years in search of a better way, this is where I ended up for the heart of computer science. Most software engineering topics I picked up on the job — even distributed systems — but the actual computer science aspects I had almost zero exposure to at work. I had to seek those out, which meant rejecting the commercial methods/doctrines/thinking and escaping from Conway's Law which has infected anything touched by money. "It Is Difficult to Get a Man to Understand Something When His Salary Depends Upon His Not Understanding It"

I now see actual CS exposure in industry as rare broadly (you'd have to work in a research org, which is both rare and also requires a PhD or other credential for one to be selected for the opportunity). Furthermore, the bulk of the CS literature & papers I encountered is embedded in those three programming languages. Now editorializing: I think Haskell is like "the periodic table of computation" as well as basically "math notation for computational structures." These deep science-y topics are hard to learn outside of school, the material is dense and there's no clear and accessible trajectory to get there, and to even identify such at trajectory you need role models and teachers of which kind industrial programmers aren't exposed to.

In conclusion, I'd likely have gotten to where I am today at age 30 instead of 38 and regret the lost time wandering in the swamp of silicon valley arrogance. FWIW my startup is a CRUD Spreadsheet, we apply functional programming research to user interfaces and web development as per https://github.com/hyperfiddle/electric