Best Computer Science Programs
Unlike other high-prestige professions, many notable figures in the CS universe did not get where they are because of their college but rather through their own genius. Luminaries such as Mark Zuckerberg, Bill Gates, Larry Ellison, and Steve Jobs all dropped out of college before creating multibillion dollar companies. While it would be silly and rather dangerous to conclude, from these handful of famous examples, that college doesn’t matter, there is a more truthful kernel that can be extracted—the tech industry is more meritocratic than the world of law, medicine, or business. If you possess the requisite skills, a high-paying job can be obtained even with less-than-stellar academic credentials.
On the contrary, it is important to note that an examination of the top tech companies in the country quickly reveals that many employees graduated from universities with strong computer science programs. Yet, not all of these feeder schools have names like Caltech, MIT, Carnegie Mellon, or Stanford. In fact, many are schools that accept closer to 60% than 6% of those who apply. What follows is a look at key considerations for future tech-professionals based on College Transitions’ extensive experience in guiding teens into good-fit computer science programs. Questions answered will include:
- What is the difference between a software developer, computer engineer, and computer programmer?
- Do you need to major in computer science at an elite university?
- Are computer science courses overcrowded and/or hard to register for?
- What high school courses should I take to get into a computer science program?
- Which computer science-related major should I select?
- What are the salaries for computer science majors?
- What is the job outlook for computer science majors?
We begin with an explanation of the tricky nomenclature encountered in this field of study.
What’s the difference between a software developer, engineer, and programmer?
These terms are sometimes used rather interchangeably which can lead to confusion. While there is a degree of overlap in terms of job duties and educational requirements, software developers, engineers, and programmers all have unique job duties and educational requirements.
Programmers’ primary duties are creating and inputting code. Most programmers have computer science degrees; others are self-taught. In a Venn diagram, the ability to code would overlap for both programmers and those termed software developers. Typically, the job title of software developer goes to someone who is a generalist, well-versed in a number of systems and languages but not necessarily an expert in any one (like a programmer). Developers lead teams of programmers, possess strong communication skills, and help connect employees with expertise in different areas to work toward a bigger-picture goal.
Here’s where things get unnecessarily confusing…some software engineers hold the title of software developer. However, the designation of engineer carries some weight and your average engineer would not enjoy being grouped as a “developer” with individuals lacking a degree in engineering. By definition, engineers explore the practical applications of scientific and mathematical principles as related to the creation of software. They, like developers are looking and the big picture of a project, but with a lens more focused on science than art.
Do I need to attend a prestigious undergraduate school?
One might assume that the colleges recruited at most heavily by a premier tech company such as Microsoft or Apple would be the usual suspects: Stanford, MIT, Berkley, Harvard, etc. Yet in reality, a school’s proximity is also of great importance.
Redmond, Washington-based Microsoft plucks the majority of their employees from places such as nearby University of Washington, Washington State, and Western Washington University. Apple, located in the heart of Silicon Valley, draws a large portion of its workforce from nearby San Jose State and the University of Texas at Austin. Visit our free Dataverse for a complete look at the top feeder schools to companies like IBM, Google, Apple, Cisco, and Intel.
As with the engineering profession at large, entering the field of software development is more about what you can do than the name on your diploma. That being said, a computer science major from an elite school who also possesses an exceptional skill-set will be at a premium on the job market. For a complete list of top schools check out College Transitions’ Best Colleges for Computer Science.
Is your prospective CS program overcrowded?
More important than the name of the university where you study is the fact of whether you will actually be able to enroll in the CS courses you desire to take. The number of undergraduates majoring in computer science has doubled from 2013 to 2017. Unfortunately, schools have not been able to add tenured faculty at a commensurate rate, leading to scheduling problems at many universities. In 2019, small and large schools alike are struggling to meet CS enrollment demands. This academic year has seen 400-seat lecture halls at UC-San Diego and lotteries to even get into classes at prestigious Swarthmore College. Ironically, one of the great draws of the computer science major—high starting salaries—is the very reason that too few students elect to pursue PhDs in the subject, thus limiting the number of future professors willing and able to train the next generation of undergrads. This is a storyline that all future CS students should be following as all applicants need to be aware of the staffing/enrollment situation at their prospective schools.
What courses should I take in high school?
It should come as little surprise that math is going to be of paramount importance. Taking a rigorous algebra, trigonometry, geometry, and Pre-Calc/Calc class is a must, but none of these branches of mathematics translates directly to computer science.
If possible, find a way to take a discrete mathematics class. Discrete math is the foundation of modern day computer science and includes topics such as combinatorics, probability, number theory, logic, and graph theory. While discrete math is a staple of most high school math competitions, it is not always offered by schools due to the facts that its content is not the primary focus of high-stakes state standardized tests or the SAT. You may have to take a summer course at a local college or study the subject on your own, but the rewards will be ample.
Of equal “duh” status is to partake in any and every computer course offered by your school. AP Computer Science is immensely beneficial but is only available at 22% of American public high schools who offer any of AP programming. However, the number of high school students in the U.S. taking the AP Computer Science exam has grown exponentially in recent years. In 2018, nearly 136,000 students took the exam representing a 31% increase from the previous year. Five years ago, only 30,000 students nationwide sat for the test. Despite this rapid growth, the number of test-takers still pales in comparison to the 309,000 who took AP Calculus or the 505,000 who sat for AP U.S History in 2018. As with discrete math, ambitious students should seek dual enrollment opportunities or even opportunities to take a college course online or at a local institution.
What should I major in?
Appropriate fields of study for entry into this profession include computer science, computer information systems, software engineering, or mathematics. For computer programming, you’ll need to be well versed in programs such as C++, Java, html, Python, and SQL. Opportunities to complete independent research projects and obtain internships during your four years of study will be key in showing employers that you have the practical experience and knowledge needed to land your first job.
Software engineering is a well-compensated field, with a median salary right around $100,000. This is a rare career where the starting salary for a bachelor degree holding individual reaches almost $70,000 per year. Experienced engineers working for major multinational corporations such as Amazon, Yahoo, Hewlett-Packard, Oracle, and eBay will achieve average salaries in the low-six figures.
Computer programmers, without the “engineer” title attached to their name will typically earn close to 50K out of college and will average out at around 80K. Those who go on to become IT Managers or take on other administrative duties can easily bring home salaries in excess of 100k.
Jobs in software development are projected to grow at 24%, faster than the average occupation, through 2026. In addition to the continually-growing world of mobile applications, this field will also benefit from the expansion of information technology in the healthcare field as well as increased investment in electronic security for government and private networks.
CT’s Bottom Line
Jobs in the software development field, whether you are an engineer or a programmer are stable, well-compensated, a projected to grow significantly moving into the future. Those who are knowledgeable, experienced, and efficient will see a tremendous return on their educational investment whether they attend a selective tech powerhouse or a state school.
Dave has over a decade of professional experience that includes work as a teacher, high school administrator, college professor, and independent education consultant. He is a co-author of the book The Enlightened College Applicant: A New Approach to the Search and Admissions Process (Rowman & Littlefield, 2016).