> I'm a self-taught programmer who recently decided to finish my bachelor's degree in Computer Science. I'll be finishing in a month or so, and I'm trying to do some planning in advance.
If I was you I would apply to internships right now to a lot of companies as a college student. It might be too late if you're about to graduate.
Internships are the easiest way into a company as a junior. You intern somewhere for a summer between junior and senior year, if they like you, you might get an offer when senior year ends. You seem past that, but can apply any how.
One thing, if you're considering getting an MSCS, is say you want an internship between the BS and MS. Even if you wind up not doing the MSCS, you'll have some experience under your belt. If you decide to not do an MSCS while interning, you can apply to other companies while interning, and if you get an offer tell the company you're interning with that you will postpone or not get your MSCS and that you got an offer and will not being going back to school right after the internship - you might wind up getting two offers (the company you applied to while interning, and the company you're interning at). You can be candid during the internship application right off the bat that you're applying for an internship between a BSCS and MSCS, but also have in the back of your mind that you might jump into a career after the BSCS and there is the possibility you might postpone the MSCS.
You can apply as a junior as well alongside this. The main thing is getting some offers and getting your foot in the door.