The purpose of this guide is to give you actionable steps based on your current school year.
This guide is very high-level. We highly recommend you go to CSC events to get more practical advice.
Freshman
As a freshman you should have two goals: acclimating yourself to college and getting any experience possible.
Acclimating to College
Adjusting to college is easier said than done. Below are some basics we recommend:
Find Your Group
We recommend you join new clubs, try new things, and immerse yourself in the college experience until you have a trustworthy and reliable group of friends around you. College isn't easy and having a support system around you is going to be key to your success.
If you're struggling to meet new people, don't give up! Keep joining new clubs and finding ways to participate on campus. Eventually you'll have a breakthrough!
Learn Discipline
College will be a vastly different experience than high school as now it is your perogative to make sure you succeed in your endeavors. Try to make sure that in addition to new social and extracurricular obligations you find time to study and do well in your classes and other academic/professional commitments.
Discipline will be very important once you start applying to internships in the future as the interview process will end up being very intense and you'll have to be able to balance it alongside all your other responsibilities.
Take Care of Yourself
Be kind to yourself as you go through college. You'll be encountering a lot of new experiences and for all the highs that you will have, there will also be lows.
At the end of the school year (and generally) it pays to be introspective and retrospective. Make sure you are happy with your current situation. Here are a few questions you can ask yourself:
- Do you like the people you are around?
- Do you like your major/what you are studying?
- Do you like Pitt?
Be truthful in answering these questions and you'll be greatly helping your future self.
Any Experience Possible
If you're a freshman/beginner to CS, the truth is you probably do not have much coding/professional experience, making it super hard to stand out as a candidate. Be scrappy and try to get any experience possible. Here are a couple of options:
Teaching Assistant/Peer Tutoring
If you do pretty well in your classes then you should apply to be a Teaching Assistant or Peer Tutor. Pitt CS never has enough of either which means getting the position will be non-competitive and you will get the opportunity to be paid to teach CS!
Applications usually open up mid Fall or Spring semester, but you can also ask your current CS professors to remind you.
Personal Projects
It hurts when companies won't hire you for entry level technical experience because you don't have any technical experience. In these scenarios, the best way to show off your technical skills is by doing personal projects.
Learn a new language, go to hackathons, or help solve a current problem you have using code! Once you complete a personal project, you then can put it on your resume and talk to companies about it. Though it may be intimidating in the beginning, it also is a lot of fun!
Research / Freshmen Internships
Freshmen in the past have gotten research positions and internships but it isn't easy. The best way to maximize your chances for an internships is to apply to all the freshmen programs and hope one of them sticks.
Research is similarly tough since it often involves domain knowledge that most freshmen don't have. We recommend you get to know your current CS professors and the research they are currently conducting. Ask if they are looking to hire/mentor a freshman, or if they know any professor who is.
Any Opportunity
Whether it's volunteering at a local school or a club leadership position, we recommend you try to take advantage of any opportunity that is thrown your way as each opportunity is a chance to grow your network and get any semblance of technical experience. You never know what might happen!
Sophomore
Sophomore year is a busy time. Your objectives are to get experience (either an internship or something else), to start turning yourself into a competitive candidate, and to be introspective.
Be Introspective
Before the Grind
Before you even start applying and interviewing, you have to be introspective. The interview cycle is time-consuming and often compared to a 3 credit class. Will you be able to handle that on top of your school schedule?
It also is a vicious cycle - you will get rejected and fail. Are you ready to be told you're not good enough? Do you have a group of friends or family that you can rely on?
Finally, it might not even be worth your time. The effort needed to get a top company offer versus a less competitive company (ones you see at the career fairs, etc.) are substantially different. Getting top company offers will be much more laborious.
List the reasons to why you want to work at a top company. Do those reasons warrant going through the internship grind?
After the Grind
Your internship grind normally ends when you accept an offer or give up. Take some time off and try to reflect on the experience.
Since you are a sophomore you will likely have another internship grind cycle coming up your junior year. How can you learn from this past experience?
What went well? What didn't go well? What should you do differently next time? What should you look out for in the future?
Asking these retrospective questions will give you a competitive edge going into the next year.
Get Experience
As a sophomore, companies will start seriously considering you for internships, take advantage of that!
Career Fair
If you're like most sophomores, you probably don't have internship experience yet. Your best bet for getting an internship is to go to Pitt's career fair. Companies at the fair literally pay Pitt to recruit students like you!
We have an extensive guide on going to the career fair, so be sure to read it to learn the basics! Here's a quick run-down:
- Practice your elevator pitch
- Talk to as many companies as possible
- Follow up with the companies you met!
Apply... everywhere!
People who want top job offers usually end up applying to every position they find. If you're successful at the career fair and don't want to work at a top company yet, then you don't need to try as hard, but it is a very insightful experience regardless!
From 2020-present, CSC runs the internet's most popular internship job board. Try to apply to as many companies there as possible. People often apply to several hundred postings!
TA/Peer Tutor/Research
If you don't think you have enough technical experience try to be a TA or Peer Tutor. Now that you've taken more CS courses and know more professors, research should also become more attainable.
Becoming a Competitive Candidate
Now that you have a very serious chance of getting internships, you'll want to make sure your ahead of the curve. Learn what a competitive candidate looks like and then try to be one.
Strong Resume
We have a comprehensive resume guide that will help make your resume stand out. Here's the basics:
- Use online builders like flowcv.io to easily make a beautiful resume
- Don't sell yourself short: include your personal projects, non-relevant work (eg. camp counselor, retail, bussing tables), and awards!
- Try to write strong bullets: focus on the impact of your work not the actual day-to-day activities.
CSC has a #resume-review channel where people often get feedback on their resume from. If you have any concerns, be sure to include yours there!
Learn the Fundamentals
Make sure you know and understand the fundamentals of how CS students get jobs. It boils down to three parts:
- Having a strong resume
- Applying to a lot of places
- Passing interviews
Here are a few things you should try to understand:
- The difference between a technical and behavioral interview?
- What is Big N and FAANG? How do they interview candidates?
- What is LeetCode? How do you study LeetCode?
- How have people I know gotten internships? What did they do to succeed?
CSC gives a talk on this exact topic every semester so be sure to go to that!
Personal Projects
If you struggle to get interviews, keep building personal projects! Personal projects are a great for conversation during interviews, will let you display your technical experience without having work experience, and you'll get to learn a lot of cool things.
Whether it's a new language or a website, go online and learn! The world is your oyster.
Prepare for Junior Year Grind
Your junior year will be the most important year for getting internships. To maximize success then, we highly recommend sophomores spend time preparing for the upcoming grind.
LeetCode
To pass interviews at top tech companies you need to be able to pass technical interviews. The questions you’ll get in those are usually carbon copies from problems found on LeetCode.com. Students typically need to study between 50-150 problems.
On forums like Reddit, you’ll see people who have done 300+ problems, but honestly that is way overblown. If you did 300 Leetcode problems and are still struggling to pass interviews then you probably didn’t study those 300 problems effectively.
We created a 12-week Leetcode study plan (with 3 bonus weeks!) that we highly recommend. The problems are logically ordered for beginners and will make you extremely well equipped for any technical interview.
Resume
We already mentioned resumes and we’ll say it again. Regardless of how much you study or how hard you try, if you don’t have a resume that is well formatted and effectively represents yourself, companies and recruiters will not give you the respect that you deserve.
Get resume feedback from your CS peers and adapt. You’ll probably iterate several versions before finally settling on a great one.
Juniors and Seniors
As a junior or senior you have one goal: get a job.
Job Grind
It’s officially show time. Starting in the fall, all the work you’ve put in over the past few years will be put to the test.
Apply apply apply. The only way to maximize your chance of an offer is to apply to as many job postings as possible. Disregard asks for specific languages or requirements, if it looks like a position of interest then send an application.
Go to the career fair, to company events, and network like crazy. Make sure you are making the most of all your opportunities.
If you have past internships or experience, you can be pickier and have more of a filter when it comes to applying but regardless you don’t stop grinding until you accept the job offer.
Once you accept your offer, you can finally chill. Years of working last minute on projects, grinding LeetCode problems, and stress have finally culminated to your newly accepted job. We really don’t have any advice other than chill and do whatever you want to do.
Pay it Forward
It is inevitable that others have helped you along your journey, be sure to thank them for their help. Now it’s your turn to pay it forward and help the next generation of CS students succeed.
Become a club leader/officer, mentor underclassmen through CSC, or even write/edit wiki guides like these!
Whatever you do, be sure to leverage your wealth of experience and knowledge for the better.