There were actually no courses prior to my kid’s batch. He and a handful of other students and the instructor developed the curriculum as they went along. For DSA they just took the Princeton COS 226 syllabus (one semester course) and used 60% of it for the full year DSA course. In 11th grade they made up a course where they read literature on AI, CV (computer vision), developed RESTful APIs etc.
I would probably have to say, don’t let math keep you out of programming. Not all skilled programmers are cut-out for intense math. Ugh! IT degrees are just as employable, if not, more employable. A large number of CS graduates take corporate IT jobs and never look at a math problem their whole career. My advice would be to keep an open mind about tech in general, and consider dimensions outside of the hardcore math based CS, such as data science, network administration, .NET programming, etc. These are high paid careers as well…and I might argue err on the side of somewhat cushy.
Yes, you don’t need a CS job - you can simply get a programming job.
What do you mean by cs jobs ? Most cs graduates I see do programming to varying degree specifically at entry level. You can not become cloud architect immediately
A cloud architect is often not a CS job I would think.
Definitions are blurry of course. Just like a Salesforce or an SAP consultant job is not a CS job. It is more in the realm business application development. As opposed to a software engineering job.
Working at Amazon aws on the other hand is often a CS job. Indeed if you are working at Amazon aws, certifying as a cloud architect etc is considered extraneous to the job — ie not important. You are often coding in Go, and would have taken a distributed systems course in college.
Writing code and being in a CS job are orthogonal. One summer my kid wrote 300 lines of code all summer, and it was a proper CS job. He got a return offer for next summer. Chose not to take it. The next summer he wrote thousands of lines of code, and it was not a CS job.
In my view, a CS job is one that requires the application of CS principles to solve the task at hand. Whether that’s doing math, figuring out algorithmic complexity, looking at system design, mass scalability, taking advantage of new hardware or computing capabilities, etc - there is a lot of work done before the actual programming. In fact, programming is merely the concretization tool. CS jobs often involve solving new problems, or solving them better/faster/more efficiently. These jobs pay very well, and aren’t necessarily all in the tech industry.
On the other hand, there are plenty of other “tech jobs” that involve automating tasks, storing/processing/retrieving/transforming data, etc that typically have well known solutions that mostly need to be adapted to a particular situation. These programming jobs don’t usually demand a deep knowledge of CS principles and therefore may not even require a CS degree.
The latter pay well too (relative to median income), but less than the CS jobs. They are the majority of tech jobs and found in a much larger range of industries.
To be clear: I’m not saying the former is superior - I’m just explaining the difference because the two are often conflated here on this forum.
The IT jobs mentioned previously are not really either of the above that you are describing, in that they mostly involve management of computers and software, with limited use of CS foundations or programming. IT majors focused on preparing for such jobs are more commonly found in business departments, although a CS major graduate or someone with equivalent CS knowledge should be able to do the technical aspects of the job easily if there is any interest.
Agreed. Those are what I consider IT infrastructure jobs. Then there are other tech jobs that don’t involve programming - business analysis, project/program management, systems support, etc.
Do companies hire new grads for these kinds of cs jobs ? I would assume these job are given to more experienced people
Yes. And if I’m not mistaken @neela1’s son got such a job at a Wall Street firm.
All the time. Look at where CS grads go from the top CS programs. The starting base salaries are $135k+ and no one is paying these kids to do IT stuff.
Yes. DH is forever frustrated by his peers who couldn’t code to save their lives at their point in their high profile “tech” jobs.
The sophomore summer was a CS internship. The junior summer was a finance internship. In this realm programming is a tool for data analysis, proof of concept etc. Some CS principles were also used, but that is not the main focus.
The bigger “tech” companies hire CS grads to do CS kind of things – analysis, design etc. Even as a summer intern, my son told me that he spent only 10% of his time coding, 20% of his time in design and analysis, and 70% of his time in building consensus that this is the right problem to be solved, and this is infact the right solution. He was in discussions about scalability, maintainability for the next 5 years, performance etc. The 300 lines of code that he eventually wrote is in production – he was told it runs some 80k times a minute. I am not sure if this is the standard internship, but he got the impression that full time roles are like this from the beginning at that particular company.
The 1000s of lines of code that he wrote the following summer at a finance company is not in production – what is euphemistically called one time use (or use and throw) :-).
CS is about solving all sorts of problems computationally. Programming or coding is about implementing those solutions. A good solution can also be implemented poorly, so a CS major will need to know how to program reasonably well. This is somewhat analogous to a physicist using mathematics as a tool to implement the solution to a physical problem.
People aren’t necessarily equally good at solving problems and implementing solutions. Some people are better at one than at the other (and some are really good at both). Depending on the size of the company and its product, it may need a different mix of skills.
If I am not mistaken he was from Rutgers rights ? If you don’t mind sharing how he prep for this and how he ensured he is at par with top institutions.
My daughters are starting Rutgers this year and any tips would be useful
Princeton.
Being at Rutgers won’t preclude you from getting a CS job. Might need more effort and outreach, but definitely possible if you’re a start and motivated kid.
But in any case, can you please PM as it’s off topic to this thread? Thanks.
I think @neela1 had an older child at Princeton and has a younger one at Rutgers.