When to Consider CS Internship?

I’m wondering when I’ll be able to apply for Comp. Sci. internships because of how far back my math placement put me. Last semester, I scored low on my math placement and was put into a low level math class. I’m taking Math 112 next semester (in a few days) and that’ll be the last math class needed for my BA CS degree. I’ll be able to take CSC 127A Intro to Computer Science I and CSC 127B Intro to Computer Science II for my sophomore year’s first and second semester, respectively. After I take those classes, I’ll be able to take CSC 245 Intro to Discrete Structures and CSC 352 Systems Programming and UNIX in my first semester of my junior year. Once my first semester ends in my junior year, I’ll be able to declare myself as a Comp. Sci. major and take CSC 252 Computer Organization and CSC 335 Object-Oriented Programming in my junior year’s second semester. Then in my Senior year first semester, I’ll take CSC 345 Analysis of Discrete Structures and, if they allow me to, 2 high-level (CSC 400-489) CSC electives in that semester. I’ll be able to graduate in Winter with a BA in CS and minor in Chinese if they allow me to take more than 2 CS classes in my senior year’s Fall semester. This is all considering I don’t get a C or lower in the core classes (program reqs).

So which year and semester should I apply for an internship? Also, do they teach you things at internships or do they expect you to know everything about programming?

Below are the checklist and CS courses with their requirements:

https://www.cs.arizona.edu/undergrad/documents/BAChecksheet09.02.15_000.pdf

https://www.cs.arizona.edu/courses/16spring/s16schedule.html

It looks like after your junior year would be the earliest you could do it. You will learn a decent amount on an internship if it’s good, but you need a good deal of knowledge going in as well. Most will want the following classes / subjects covered:

CS Fundamentals (Intro 1 and 2 for you)
Object Oriented Design
Data Structures / Algorithms

I don’t see any algorithms or data structures included here in your plan - I would try to take that in your junior year to have a better chance at getting an internship.

Data Structures / Algorithms would be one of the EC’s.

Would having only 1 internship and taking it so late into my college life cripple me from good jobs? Also, is there anything else other than an internship I should do?

Working on personal CS projects and putting them on Github would be a good addition. Also, make sure you have a good personal website done before you apply for internships - it’s not needed but goes a long way.

Other than that, there’s nothing more to do - unfortunately your late start essentially cuts an internship out. You won’t be crippled by any means, some people don’t have any internships - having one shouldn’t raise a ton of eyebrows. It may disqualify you from the top level jobs - your Apple and Facebook - but even a stellar academic level in CS could give you a shot there.

I would focus on your studies and keep an eye out for personal projects that interest you until you start nearing your internship search - the next year or two is going to be a lot of crucial material, so worry about that first. As you haven’t even started CS, you could even find you don’t like the material or subject or whatnot. For now, the classes are your top priority, and the rest will slowly come in time. Keep an eye on your timetable, but for now you have time.

You can try each year, but the chances of getting something obviously improve as you complete more CS courses. Obviously, in the earlier summers, there is a greater chance of needing to take some other unrelated backup job, and not bring able to take any CS courses until next year means it is not realistic to get a CS internship this summer unless you have significant programming experience outside of school, and even then it is unlikely.

I’m currently working this year at an unrelated job.