Growing up, I wanted to be a lot of things. At some point or another, young Chase had his heart set on becoming an astrophysicist, a novelist, a lawyer—the list goes on. Nowadays, as my junior year at Columbia as a computer science major approaches, I have found what I hope to be my life’s pursuit: the thrilling field of software engineering. All jokes aside, my path to majoring in CS and seeking a career in software has generated myriad questions, especially as I was going through the stressful process of applying to college. Today, I want to talk about the benefits of the different CS career paths and how you should prepare your application (perhaps with the help of Dewey Smart's tutoring services!) to get accepted into a school that puts you in the most advantageous position for your future.
If you’re considering CS as your major, I’m going to assume that you have had some experience with coding. If not, try it out! Computer science, at least with regard to the coding aspect, is one of the easiest subjects to learn on your own in terms of resources available online. Good places to start are CodeAcademy if you want a slower introduction or Harvard’s free online course CS50 if you want to dive right in.
Before you set off on your CS journey, and even if you’ve already taken your first steps, you are likely curious: what does a computer scientist actually do? The answer is, it depends. You can divide all computer science careers into two categories: industry and academia.
These jobs are the ones that likely come to your mind when you think about coding and computer science: software engineers, web developers, data analysts, quants, etc. As previously mentioned, this is the area in which I, and most others, will find their computational niche. To me, there were two factors that ultimately decided things for me: money and off time. According to Indeed, the average starting salary of an entry-level software engineer is $73,584, with salaries at an elite company being quite mind-boggling, like at Google, which starts at $191,000. In addition, software industry jobs, in comparison to jobs in other high-paying fields such as finance or law that are notorious for copious overtime, are relatively cushy. 40 hours per week with generous vacation policies (by American standards; in Western Europe, it’s standard for all to get almost an entire month off every year!) are standard. Additionally, tech companies are known for their many amenities: food courts that serve free lunch and dinner, onsite massage therapy, stocks, gyms, laundry services, and other free perks are all common, particularly among larger companies with “techy” reputations: think Google, Meta (formerly Facebook), Netflix, etc. While this seems too good to be true, these policies ensure that you spend as much time as possible at the workplace, thus maximizing how much work you produce (a little 1984-esque but, hey, free lunch is free lunch).
So you hear all of this and want to become a software engineer. So, you try out/have already tried out coding; what if you don’t love it? As a CS major, I’ve been exposed to countless peers who love computer science and coding. They spend their free time exploring their curiosity and program apps, design AI, build robots, etc. However, for myself and many others, coding isn’t fun, but we tolerate it because of what it brings us. Of course, if you have a passion, CS or otherwise, pursue it! But if you fall into the wider realm of the population that feels that work is work and want a way to challenge yourself while making good money and having a good work-life balance, a job in the software industry is a great option.
Curious about what it’s like to be a CS major at a top school? Get in contact with one by setting up an appointment with a Dewey Smart tutor!
This other realm of CS is for diehard enthusiasts and is comprised mainly of professorships and other research positions. Typically, those who go down this path have a particular area of interest within CS that they wish to pursue, whether it be neural networks or quantum computing, usually discovered as one takes classes and does research while studying for their Bachelor’s degree. After graduating from college, a person aiming for work in academia would apply for a Ph.D. program, in which you would conduct original research with the ultimate goal of producing a thesis, a stupidly long paper that is thoroughly judged by a group of stupidly smart people. In addition to this research, one typically takes high-level courses and teaches classes in a process that takes on average four to five years. After you have your Ph.D., the academic career paths are quite limited. Usually, one will look for a job as a professor, in which they can teach classes in order to support their research. These jobs, especially nowadays, are scarce, regardless of the level of prestige that you are shooting for; if procured, professor jobs for the most part won’t compete with industry jobs but aren’t all that bad. On the other hand, a PhD-haver also has the option of turning to industry, being overqualified for traditional entry-level roles but also having the option of working in high-end roles involving AI and machine learning where you perform research for large companies that requires high levels of specialization.
Now, what can you, a high schooler applying to college, do to give yourself the best chances of getting into a “good” CS school (the definition of which varies by person)? For the purposes of this blog, I’m going to assume that you want to shoot for the MITs of the world, but just remember that there is a path to a successful software career from any college. The first thing that you need to know is that you don’t need to know a line of code to be accepted into a top school to study CS. For instance, in my intro programming class at Columbia, over half of my peers had never coded before. Due to the fast pace of CS curriculums, even those with prior experience are quickly humbled, and the playing field is essentially leveled. Therefore, we should mainly be focusing on what we can do to maximize our application strength as a CS applicant.
The most accessible and, in my opinion, strong application facet that a high schooler can pursue is creating personal projects. These projects can take many forms and essentially comprise anything you make in your free time that involves code; maybe, for instance, a small chatbot or an iOS task organizer. The specific programming language or technology that you utilize doesn’t matter much, for, as said before, you’re not expected to know anything going into college. Therefore, it is more important to focus on making projects that reflect best on you as an applicant. The easiest way to ensure this is to make projects that solve issues that a community of which you are a part faces; the community can be anything including your school, place of worship, sports team, etc. We want to focus on these because it ensures that no matter the technical prowess of what you produce, you have added something to your portfolio that shows admissions officers that you are able to apply programming to solve real-world problems and, more importantly, that you are the type of person who serves those around them—double whammy! The latter point is especially important because, at the end of the day, our biggest goal is to make the admissions officers like us, in order to separate us from the crowd.
For example, my high school used a system of weighted GPA specific to Mississippi, which lacked any sort of online calculator that allowed swift calculation. Therefore, if we wanted to calculate your GPA between the infrequent times in which our counselors sent out transcripts, you had to do the tedious calculation by hand. So, I decided to use Python to create a small application that allowed you to quickly calculate your GPAs. An important second step was that, after I had created the application, I distributed the program so that it was installed at computers across the school and hosted on a link that allowed my peers to download it. Thus, when it came time to write supplemental essays that asked questions like, “Describe a time that you solved a problem,” I was able to tell a story that described a whole process of solving a problem from technical achievement to practical application. Your specific service project can take many different forms; some other examples include a Unity game that teaches old people computer skills that you demonstrate and distribute to a nearby retirement home or creating a website for a locally-owned business.
If you aren’t interested in community service, you can make effective projects that are more focused on other areas, such as personal productivity, political and social causes, or just your hobbies! Anything that takes you time and effort to complete is a sign to admissions officers that you are a passionate and self-driven individual, so just make sure you pick something that you will actually complete!
Classes and Extracurriculars:
As you probably assumed, you should be taking all the CS and programming courses available to you, as long as it doesn’t interfere with another important part of your schedule. Alongside classes, you should explore extracurricular activities like robotics that your school offers, if any.
Internships and Research:
Another way to show colleges that you are a dedicated CS student is through real-world experience. For internships, your best bet is to reach out locally to companies and cold-email and -call inquiring about internship opportunities for high school students. If no luck, then check out Dewey Smart’s Guarenteed Internship Match Program and see if it’s for you. As far as research goes, look at the CS department websites for colleges near you and email professors offering to work as a research assistant. Whereas anybody with access to a computer and the Internet can create a personal project, internships and research opportunities for high school students are an opportunity only available to some, so by no means should you be worried if you seek out these opportunities and can’t find them.
Plan B: Play Impostor:
If you are approaching college applications and you find yourself without any personal projects or CS-related extracurriculars under your belt and don’t feel like you have the time to build an application from scratch, don’t fret. If you have an assortment of extracurriculars and coursework that reflects a different major (history, for instance), there’s nothing stopping you from, in the case of most schools, just applying as a history major and then just doing CS. If this is something that would benefit you, there are some important things you need to check. First, check whether your impostor major and CS are both available to the same students. That is, check if the CS and your major are in the same academic college; if your desired school has multiple (if it just has one, a liberal arts college, for example, you’re good here), you need to see if you are only allowed to pick majors from a specific academic college once admitted. To check this, check the school’s website or the questions sections of the school’s Common Application page. If you pass this test, then the only thing you need to double-check is the major declaration date of your college; if this is not upon entry, which it usually isn’t, you’re all good to follow through on applying under a different major!
If you still have any questions about being a computer science major in college, or applying as one, get in contact with a Dewey Smart tutor today!