6 things you must do before you graduate
Okay, so this video is a direct response to the questions I get from computer science students during my monthly AMAs over at Instagram. Questions like: I’m in my 2nd year of school pursuing a CS degree, what can I do to set myself up for success after graduation? Or, I’ve just graduated last month, what can I do to increase my chances of landing a good job? Or, what is the one advice you’d give to college students? Or, the dreaded one — what programming language should I learn in school.
I’ll answer the last question right away as I’ve done a million times — what programming language you learn in school does not matter. Ok, with that out of the way, for the rest of the video, I will talk about 6 things you must do before your graduate to set yourself up for success in a tech career. Alright, let’s get started.
Make sure to take the core foundational classes
There are some core computer science classes that make up the foundation of computational problem-solving. They are data structures and algorithms, as well as some basic probability, statistics and discrete math. Doesn’t matter whether you want to specialize in computer science, software engineering, data science or web design, anyone going to school for any field related to computer science should take these courses. Now, I know some keyboard warriors will come and attack me saying how long they’ve been in the field and never had to use data structures and algorithms. Well, just because you never had to does not mean nobody has to. Ok, I wills somewhat agree that you don’t use complicated algorithms everyday, but learning them, esp. early in your career expands your problem solving abilities. And they are required for most tech interviews, so might as well get them done in school. It’s going to be much harder to learn algorithms later in life. However, data structures are absolutely mandatory. If you tell me you’ve worked in software engineering for any number of years and have never had to use data structures, I don’t know what to tell you … maybe you don’t really understand what software engineering is or what data structures are.
The bottom line is that, these classes build up a solid problem solving foundation for you, so just take them and be done with it. You will thank me later.
Start building your resume early
I know that a lot of you will wait till you graduate or when your apply for your first job to create your resume. Don’t do this. Start building your resume as early as freshman year. I know that some of you will say, “but Utsav, I won’t have anything meaningful to put on a resume in my freshman year,” and that’s a valid point. But, it’s okay, don’t worry about your resume being poor early on. That’s the whole idea. As you gain more experience, your resume grows with you. And over the years, you will add stuff to your resume. Then at some point, you will have too much stuff on there, so you will start removing the less important things, or shorten and reword things — in essence, your resume will go through many iterations of revisions… and as result, the one that you end up using for an actual job application will be quite polished.
When recruiters screen for potential candidates, your resume typically has about 7 seconds to catch their eye. This means that a last minutes scrambled together resume will not cut it. Starting early gives you time to refine your resume as your refine your own technical skills. I have a few videos on writing good resumes, check them out to get started.
Build your professional network
It’s too easy to stick with your own group or clique during college. While that’s totally okay for most things, you will also need to expand your network from a professional career standpoint. Reach out to your school’s career center and find out about networking or alumni events. Attend those events to build connections that are already working in the field. Also reach out to your advisor or professors, and ask them to connect you to their previous students who are already in the field. Also actively participate in CS and engineering clubs to make connections with seniors who will graduate much sooner than you. While being connected to your colleagues helps you on the long run, they aren’t very useful when you just graduate because all your colleagues are in the same boat as you. This is where alumni and senior connections you make become critical — not only they can guide you through the process of job application but also provide you with the most valuable power-up card you can have — a referral. A good reference will not only help you skip the initial screen and progress straight to the interview loop, but also drastically improve your chances of actually landing the job.
Build your project portfolio online
I’ll never understand why only the students that are into web design have an online portfolio. Every CS student should have one. Think of if this way — when I consider you for a job position, I don’t know you outside of your resume, and your resume is the only tool you have to sell yourself to me. While resumes are great snapshots, they are quite limited in real estate. So regardless of how awesome your side projects are, you can only differentiate them so much for the countless other mundane ones in a few lines of description. And this is where a quick link to a portfolio or a project link is immensely helpful. Almost any project can be converted to be something interactive online and being able to interact with a project you built is so much better than reading a couple of generic lines about it. Heck, even if your project absolutely does not lend itself to be converted to being interactive online, you can at the very least show case it better when you build an online portfolio.
Sites like Github are free. Take advantage of them and host your projects/code online. And if you code actively, coding heat maps also tell your potential interviewers that you code actively as a habit. And that’s always a plus. These are things you have to build over time, it won’t have the same effect if you upload all your shit at after you graduate just for the same of having it online. So start early while you are still in college.
Get at least one internship
I will keep this one short — an internship is literally the easiest way to land a full time job. Interviews for internships are much easier and you will typically get around 3 months to prove your worth in a real-world situation. That means you get to take your time and show off all facets of your skillset outside of just technical acumen — things like communication, teamwork, energy, drive, curiosity and growth potential. And if you do that well, chances are very likely that you will get a return offer to join full time. Trust me, getting a full time offer from an internship is way easier than going through an actual job interview. So in that sense, internship essentially the easiest job interview that also pays you. It would be foolish to overlook at getting one as a student. In fact, you should aim to land multiple internships before you graduate.
Prepare for your job interviews while in school
The final point I have for you is to prepare for job interviews while you are in school. Because ideally, you should already have job interviews lined up even before you graduate. So the interviews will come in thick and fast right after you graduate as that also aligns with most companies’ recruiting schedule. Not to mention, you may have to interview on the spot at career fairs that have hiring events. So managing all those interviews and prepping at the same time is quite challenging, and reduces your chances of success. Therefore, it is a much better strategy to distribute the preparation load throughout your 4 years and only focus on increasing problem-solving speed and endurance towards the end. As a matter of fact, the best time to start coding interview prep is when you take your data structures and algorithms classes, because most technical interviews are basically problem-solving questions that are based on college level data structures and algorithms. So prepping for them as you take the classes kills two birds with one stone — you start interview prep early and get a head start against your competition, but at the same time, since you practice problem solving, you also get better grades on those courses. It’s a win-win.