Learning Programming versus Computer Science

1. Based on my own experiences, the most important part of the guide that we wrote is likely the first section. Becoming extremely involved in programming and immersing yourself in technology from day one is really one of the best ways that you can ensure future success in the field. The guide on interviewing is also one of the key parts of our guide in my opinion. Being able to interview well is one of the key parts of the job search process and a skill that I wish I had developed far earlier in my career. In some ways, the best way to learn how to interview well is to fail at it. I definitely wish I had known more about how to prepare for interviews and how to network a couple of years ago. During my studies, I feel I haven’t received much advice on how to succeed  and have had to figure out most things on my own.

2. Colleges should absolutely adjust their curriculum to better train their students for jobs in industry. The ultimate reason why nearly every college student in the United States has decided to pay the cost of higher education is to attain gainful employment after graduating. This entails developing the necessary skills through college experiences to secure a job upon graduation. The notion of college being an institute of higher learning is an artifact of years past that many universities still hold at a disservice to their students. There is a fundamental disconnect between students, who attend university primarily to improve their employment prospects, and universities, who want to create well-rounded individuals and “global citizens” out of their attendees. Universities should adjust their curriculum (in engineering disciplines especially) to account for the fact that most students attend college purely to attain employment. Students who enter college already knowing their desired path of study should also be allowed to pursue that path from day one. Many of the required courses that attempt to expose students to different disciplines are a waste of time and money for students who have already decided on a career path. These are opinions that I have held since deciding to enroll in college and that my experiences in college have only served to reinforce. However, I know that such practices are unlikely to ever be considered by many universities.

To be purely realistic, I would change the focus of ND CSE to be programming, first and foremost, and move many of the useful required courses like Data Structures and Algorithms to earlier positions in the curriculum. When you are ultimately hired by a company, chances are you will not be expected to manually track the state of cache lines or prove whether or not something is a Turing machine on paper. You’ll be spending almost all of your time writing code. Much of the coursework that students in CSE perform does not introduce such topics in the context of programming. Learning what an algorithm does from a mathematical standpoint often doesn’t clearly translate to code, especially in the minds of students who have had only one or two years of experience with programming. Many courses focus primarily on concepts rather than implementation. In my opinion, the balance should be shifted towards implementation.

Course order is another area that I believe could be improved. By the time students enter their senior year, a course in Algorithms is largely useless. Many students (myself included) could have benefitted greatly from learning algorithms earlier in their college careers. The methods taught in this course are excellent preparation for technical interviews, but by the time many students take the course, it is too late for them to utilize them in their job search. I also firmly believe that data structures should be introduced from the moment students grasp basic concepts in programming (second semester sophomore year would be ideal). Data structures are pervasive in programming and allow you to write better systems and programs almost immediately. These topics are also extremely useful in interviews.

Leave a comment