- Introduction
- Classes
- Extracurriculars
- Internships
- Research
- Personal Projects
- Networking
- Being a Student and Person
- Resources
UCSD has a great CS department and all the staff are super supportive. One thing that helps a lot is to show up to office hours for your classes and just interacting with the Professors a lot. This will help you get more connected with the department and maybe land a few TA spots! It will also help you get familiar with what research each Prof is doing, which you can ask later to join their research group. This is especially more prevalent as you go into your upper division courses, but you should still do this for your lower div classes for practice + potential TA spot.
Another thing that helps is just showing up to a lot of events and plugging yourself into the department more so that you’re aware of all the events and resources going on throughout the department. Like my first year I (Peter) joined PACE (shameless plug) where I learned about ERSP, which is basically a research program for CS students, which I’m in right now! Stuff like PACE can provide a lot of resources for you to learn about all the stuff going on in the department.
Also there are a lot of networking/job events that UCSD and/or Jacobs School of Engineering Hosts that are for students. A lot of times there are recruiters there just to meet and talk with you, they are interested in getting to know you! You can ask them your questions and also get connected with them for future jobs. It helps a lot to get to know them in person so that they can really get to know your character beyond just a few lines on a resume.
A useful tool in seeing which credits you've already fulfilled, which courses you still need to take for your major, minor, college, etc., and other degree requirements is the UCSD Degree Audit. An obvious one is WebReg which you may already use to enroll in courses, but when trying to visualize different versions of your course schedule, you can make different copies and name them accordingly!
Another tip is to either create your own course planner or utilize the UCSD template in something like google sheets to plan courses you'd want to take each quarter and check them off as you go.
When trying to decide which courses to take, CAPEs (now SET) and RateMyProfessor are really good resources to go to to see how much time to dedicate to each class and which Professors are good and which ones are not (which actually matters a lot when it comes to classes!) CAPES has a lot of useful quantitative data like the percent of students who recommend the course or professor, average time spent on assignments per week, and a difficulty rating. Meanwhile, RateMyProfessor has detailed qualitative reviews which dictate individual student's experiences with the professor.
For prerequisites, check out resources like GRAPES or the UCSD Course Catalog to see what classes are required for each course.
Lastly, make sure to keep in mind your specific college GE’s and CSE major requirements. When all else fails, feel free to schedule an appointment with or drop into CSE or your respective college's advising! You can also submit any questions you have on the Virtual Advising Center (VAC).
How do I manage my time with all my classes? Do I have to show up to every lecture? Is it okay to skip certain classes?
Time-management is an important skill that you'll develop at university but things inevitably happen throughout the quarter: accidents, adverse weather, time conflicts, etc. Many classes in UCSD are designed with these in mind, e.g. you can drop your lowest HW, replace a midterm with final, etc. Use these policies to build flexibility in your schedule in case something bad happens. At the end of the day, UCSD classes and the course staff are there to help you, so don’t feel afraid to reach out.
-
If you feel like you have too many things to do in a quarter, consider taking one of the classes in a later quarter. Most classes are available every quarter, and there are many other ways to be active on campus that are not classes. LPMs recommend taking 3 CSE classes maximum a quarter, preferably just 2 or 1.
-
Managing time is at its core understanding how you feel about a class. Consider timing how long (approximately) it took you to complete a HW for each class you have. Then reflect whether this time is reasonable, and reflect more generally about how you’re tackling the material in the class.
Attending a big lecture can feel really isolating and hard to meet people but my biggest advice is to try and make friends and connect with people in your classes! Teaching each other is one of the best ways to learn and confirm your understanding of material, and you can help others with topics you feel you deeply comprehend while getting helped on topics you may struggle with. It’s great to learn from another student as it provides new perspective on a problem and you can see how other peers are thinking about concepts and problems and learn from them. Most times, other students have been in the same place you are of feeling confused and overwhelmed and can draw on that mindset to explain concepts in terms that are easier to understand from a student perspective. Plus maybe you'll pick up a few study habits or two that you found admirable from others!
- Office hours. I cannot emphasize this enough but office hours are literally the key to success in every CS class. The TAs and Profs are there to HELP YOU LEARN. Show up to office hours about questions on homework, in class, or in general any conceptual questions you have. It may seem like a chore at first to show up and take time out of your day to attend even MORE supplementary learning (ugh I know) but office hours are so helpful because it’s 1-on-1 teaching where you can get help for your specific problem!! It helps to explain your through process and where you got stuck, and your TA/Prof is literally there to help you work out ever nook and cranny of your problem so that you get it 100%. They won’t judge you for not understanding stuff because that’s the whole point of office hours! We have a lot of great LPMs on PACE that are also TAs so I can personally vouch that they are super helpful and nice, and will walk you through every bit of your problem that they can. Again, cannot emphasize this enough. Show up when you can!
- Finishing the lower divs as soon as possible is a good idea, as once you are finished with them you have so many options for CSE upper divs. For example, if you're interested in a specific field of CS such as Computer Vision, you could quickly take this class and maybe get into research in that topic! (Go to professor OH if you'd like to do this)
- Take CSE 100 and 101 together, concepts overlap and are useful for each other/doing hw.
- For CSE 127 (Computer Security), try taking some of the following for background knowledge: CSE 120 (Operating Systems), CSE 123 (Computer Networks), CSE 132A (Databases), and CSE 134B (Web Client Languages)
- Take CSE 198/199 if you're interested in research!
- Coordinate classes with friends to make collaborative projects and PAs easier.
- Look into other departments for interesting CSE Electives!
- When enrolling it's unlikely you'll always get classes you want, this is normal! Be flexible when planning your classes, looking at the CSE course offerings page can help you plan ahead.
- Reddit and Discord can also be a great way to learn more about a specific class or professor.
- For most classes, you can look up the syllabus or other class resources from previous quarters to get an idea of what the class will be like.
- Don't be afraid to use EASy requests to get into any prerequisite-restricted classes you are considering taking.
- Different professors teach the same class differently, feel free to ask LPMs for differences or recommendations.
- Look into minoring! Some LPMs found that they only needed 2 more classes overall for a minor.
- Take community college classes for cheaper GEs over summer.
- Feel free to ask older students/LPMs for planning advice! They have a lot of experience and tips to share and are often happy to do so.
Most student organizations table at library walk and going up to their table is a great first step in getting involved with the student library walk. If you have social media, you can also follow the organization’s page to stay up to date with different events they are hosting.
A lot of org events, particularly General Body Meetings (GBMs), many workshops, and socials are designed to require no background. Socials often have food/drink/games/activities that allow you to play without having to already know someone in the club; For example, chatting while playing a board game is a common way people first interact with a club.
If you already have a specific event in mind, consider looking for a friend who would be interested in going with you. This really helps ease you to finding a group to chat with, or in the case of a workshop, already have someone you’ve worked with before.
Totally understandable to feel pressure. Take comfort in the fact that you are exactly where you need to be in this moment, and there are quality resources here at UCSD to help you fuel your self-discovery and search for what’s next.
Here is some advice on how to get started:
Explore your interests and strengths. When taking a class, doing a hobby, or exploring new things, ask yourself whay made you intersted in doing these things. Be specific. For example, suppose you like the problem solving aspect of programming assignments. Identify what part of that process really interests you? Is it the abstraction of the problem in to many manageable tasks? Optimizing your solution? Looking for novel ways to solve a problem? With this in mind, it's easier to narrow down what field of computing you may really like, and it helps anyone who's trying to give you advice get to know you faster.
Furthermore, the UCSD career center offers free Interest Inverntory and Indicator exams if you'd like a broader, more formal overview of your interests. These should serve as a launchpad to actually attend events, workshops, and classes in the field you think you may have interest in to really refine what niche you want to hone in on (which is particularly relevant in choosing class electives or continuing to higher education).
Ultimately, understanding why you decide to do the things you do right now (or conversely why you don't want to other things) should act as your guiding principle to explore more and more. You have roughly 4 years or 12 quarters, so there's room for you to explore things even if you're unsure whether you're super interested in it. Electives are designed for just that.
First, collect the basics. What's your contact info (with strong emphasis on email). Do you have a Linkedin, Github, or other similar professional platform you'd like to share? What parts of your education so far are you most proud of?
Then, dig deeper. Make a personal blurb about why you're studying in this field. Ask a friend you trust about what your qualities are. Try list down every marketable skill you think you have, and compile the best ones.
Ultimately, a resume is a reflection of yourself, which includes non-technical experiences too. Volunteer experiences, organization involvement, and similar things are great things to put on your resume until you feel you have other better things to place on it.
Have someone who is more experienced read it! Some resources for this are club events, like Resume Reviews! ACM, WIC, and many other clubs have this event throughout the year. You can even ask for a resume review in the ACM or IEEE Discord servers!
You could also go to UGCOM office hours. You can check here which professors are specialize in resume reviews/career advice!
Another option is to schedule a session with the Career Center! They have resources for making resumes, finding job opportunities, applying to grad school, and much more!
So I have a resume, and now I want to apply for a job or research opportunity... where can I do that?
Let me introduce you to Handshake! Handshake is the main platform we use to interact with our Career Center! It’s a place where many part-time, full-time, on-campus and off-campus jobs and internships are posted (and target UCSD students directly!!!) Virtual Career fairs also take place there,too!
Another cool features that Handshake has is a messaging service where you can communicate with potential employers and recruiters about opportunities and/or get to know them better!
If you do not know where to start on your job search, we reccomend turning to Handshake! You will definetely get a helping hand there!!
I applied to a job and the company sent me an email with an online assessment, what are my next steps?
First of all, congratulations! This is a huge accomplishment in itself! Second of all, take a deep breath because you got this!
Online Assessments usually are timed coding tests. They tend to test on data structures and algorithms, which are things we mostly cover in CSE 12, CSE 100, and CSE 101. A good place to get an practice for this coding tests are on Leetcode and HackerRank. On both of these websites, they have recommended problems to study for interviews. You can even time yourself doing these to get a good idea of how the test will feel.
There are two types of online assessements that we, LPMs, have seen. There is one type, where you asynchonously take the test and your code is autograded. Usually the company will send you an email and give you a timeframe you need to complete the timed test in. For example, you may have a week to take a 90 minute timed coding tests.
The other type of online assessment we have seen is one where the interviewer watches you code on live on a video call. For this coding interivew, remember that the interviewer wants to hear you explain your thought process. It is also ok to make a mistake. Often times, in my experience, if you make a mistake, the interviewer will point it out and give you a chance to talk through the logic. With this, you are able to demonstrate your problem solving skills and potentially debug the issue!
Another tip for both types of online assessments is to come up with custom test cases to test your code. This shows the interviewer that you are a critical thinker and will help you write less buggy code/have a deeper understanding of the problem that you are trying to solve in general.
For a behavioral interview, a fun idea to practice is to look up common behaviorial interview questions and do a mock interview with your friends. Practice using the STAR method when communicating your experiences to help get your points across. You can also check Glassdoor for previously asked questions! Make sure to research company website for news and values. Usually the interviewer will ask you what you know about the company and why you want to work there.
Research and school opportunities are other great alternatives to internships if you would still like to gain experience. For second years, there are the ERSP and GEAR programs, which are year-long programs that introduce you to research and give you some experience. The application usually comes out in March/April and you should apply during your first year at UCSD if you are interested.
For school opportunities, you can apply to be a CS tutor, SPIS mentor, or even a Lead Peer Mentor for PACE! There are many other engineering mentorship programs/jobs on campus. The IDEA center has study groups which are led by students for the lower division classes, as well as other summer programs that you can apply to mentor for.
There are a lot of different aspects of computer science, and research is one of them. Research is a great way to gain hands-on experience in the computing field you're interested in, while also opening opportunities to interact with faculty. However, research is not for everyone so don't feel pressured that you have to have research experience.
If you are interested in research, here is some advice on how to get started:
Research the different research projects! You can find the different research computing topics Here!
Find something that interests you! It is totally normal to not know what you want to do yet. Doing research is a great way to dive into a specific topic to see if it aligns with your long-term career goals.
If you are a first-year and are looking for research opportunities for your second year, there are the ERSP and GEAR programs, which are year-long research programs. Applications open in March/April and you should apply during your first year at UCSD if you are interested.
Make sure your Resume is up-to-date. If you are having trouble with your resume, there are some resume tips and resources listed in the Internship section. Remember that as a first-year student, professors or recruiters don't expect you to have a ton of computing experience. You can list your high school experience, class projects, and/or extracurricular activities.
Most professors recommend you read their previous research paper(s) or just have a bit of background on their work before you speak with them. Therefore, do some research on what research you are interested in and find the professor in charge.
Once you have found the professor you are interested in doing research for, you are ready for the next steps...
Contact the professor in charge of the research lab you are interested in. You can either email the professor or go to their UGCOM office hours if they have them. When contacting the professor:
- Introduce yourself
- Why you are reaching out to them?
- Why you are interested in their research?
- What skills can you bring to benefit the research team?
That's okay! There are endless opportunities at UCSD, whether it is computing-related or not.
You can apply to be a CSE tutor or a mentor if you are looking for leadership experience.
You can also join one of the computing organizations to get some hands-on experience at UCSD... some examples are WIC, ACM, PIB, TSE, and so many more! There are also many other social organizations that you could potentially join.
-
Personal projects are a good way of showing interest in CS outside of academics. That said, you don’t need to have personal projects on a resume but they do help in distinguishing you from other similar candidates who took the same classes.
-
Structured project teams
-
Quarterly projects through clubs
- Often with other beginners, so a good way to get first exposure to projects! Clubs like ACM, IEEE, and WIC run these every quarter
-
Hackathons
- Usually 24-48 hours long, beginner-friendly, and centered around a theme. Any project you create at a hackathon can be expanded on afterwards into a full fledged project, or it can go directly on a resume. See below for a list of local ones.
-
Project-based classes
- CSE 110, COGS 108
-
Club websites or webmaster roles
-
-
Unstructured project ideas
-
UCSD-centric websites
-
Chrome extensions
-
Any piece of software that would make your life easier, even in a simple way
-
Are there any coding competitions or hackathons on campus that I can participate in to enhance my skills?
-
BPC from WIC
-
H.A.R.D. Hack (IEEE) – Hardware specific
-
DiamondHacks (ACM) – General computing
-
TritonHacks (CSforeach) - General computing
-
San Diego Capture the Flag (SDCTF from ACM) – Cybersecurity challenges
-
Other schools also do hackathons and might provide transportation!
-
LAHacks (UCLA)
-
HackSC (USC)
-
AthenaHacks (USC)
-
TreeHacks (Stanford)
-
HackMIT (MIT)
-
Hack the North (University of Waterloo)
-
How can I proactively network with professionals in the computer science industry, as a first-year student?
-
There are a lot of great career fairs and networking events held at UCSD! Feel free to show up to one and just chat with the people there
-
Professors are also professionals in the industry! We have a lot of amazing professors at UCSD. Although there may be a limited number of undergrad professors for your first-year, you can hold a coffee chat or dine with a prof! (https://students.ucsd.edu/academics/success/dine-with-a-prof.html). It also doesn’t hurt to start researching which professors that interest you for upper division classes that you start to take. Lastly, cold emails! A cold email is simply reaching out to a professor through email asking them either questions, research positions, etc. Although they may be a bit harder to approach, it never hurts to try. I know people that have gotten research positions through cold emails!
-
Student organizations often have alumni that are still involved. You can ask around on club Discords for advice from recent grads who are working in industry, especially on resume review or post-graduation plans.
What online platforms should I look at to connect with other computing majors as well as share and learn helpful resources?
Discord, Instagram, and Reddit are by far the largest platforms computing majors here engage with, with the former two being places where many clubs and individuals share resources etc, and the latter where many talk about classes and university-wide events.
The #general, #advice or #resources channels for many computing discord servers are packed with great advice. Try searching whatever keyword you’re looking for with “in:#advice” or any channel name, and then sort by most recent. This often uncovers a lot of great advice to commonly asked questions
A common approach is to explicitly allocate time for socials and your personal life. This way, you have a mental image of how much time you’re spending on work, school, and your interests. It also helps set a limit on how much time you spend on each. Think of this less as a “schedule of how long I should do things” but more of a way to gauge what you need to spend more time on.
Consider filling gaps between classes with meaningful, actionable goals. For example, getting lunch, playing a game, reading a book, doing exercise, seeing a friend, etc. Oftentimes, we’re tempted to think “Oh it's just 1 hour in between it's not worth going back to the dorms” even though these two hours are just as valuable as an entire lecture.
Experiment. When choosing courses, remember that you can always drop later, but you can only enroll now. What this means is that if something unexpected happens, or you’d like a bit more flexibility this quarter, know that the drop without W system exists for you to try out classes and workloads in a safe manner. By reflecting often on how you approach a work-life balance, and experimenting with different workloads, you’ll have a more nuanced understanding of what you spend your time on.
Below is a curated list of resources ranging from course planning help to opportunities on campus. I thought these were super helpful to look through and learn from.
-
Course Planning - SchedGo (https://schedgo.com/): Create your schedule and import it to your Google Calendar
-
Degree Audit (https://students.ucsd.edu/academics/advising/degrees-diplomas/degree-audits.html): See what classes you need to take for graduation and what categories
-
Academic Plans (https://plans.ucsd.edu/): See a sample 4-year plan for your college and majorCourse Reviews* CAPEs (https://cape.ucsd.edu/): Look up courses to find professor and course reviews (recommended instructor, average grade in classes, etc)
-
SunSET (https://sheeptester.github.io/ucsd-sunset/): CAPEs is unfortunately getting replaced by SET, so students are trying to crowdsource grade distribution data
-
UCSD Historical Enrollment Data (https://github.com/UCSD-Historical-Enrollment-Data): See how quickly previous classes filled up and when! This can help with choosing what classes to first vs. second pass. Check the repository for the previous year's quarter (ie. 2023Spring) and use the search bar to search for your class (ie. cse11.png)
-
Vis-Cape (http://vis-cape.github.io/): Visualize size of classes vs. the average GPA, useful for finding easy GEs and what classes are commonly takenCourse Information* Course Offerings (https://cse.ucsd.edu/undergraduate/tentative-course-offerings): if you're interested in seeing what classes will be held throughout the year, you can generally search "[Department Code] course offerings" to plan what you'll take throughout the year
-
CSE 190 Classes (https://cse.ucsd.edu/undergraduate/cse-190-topics-computer-science-and-engineering-0): Check out special-interest classes!Research* UCSD Undergraduate Research Hub (URH)
- Includes information about dozens research opportunities, scholarships, etc
-
ERSP (https://ersp.eng.ucsd.edu/): Undergraduate CS research for second-year and transfer students
-
UC LEADS (https://grad.ucsd.edu/diversity/oar2/programs/undergraduate-programs/uc-leads/index.html): 2 year program to do research at UCSD one summer and another UC campus another summer
-
NSF REU (https://www.nsf.gov/crssprgm/reu/list_result.jsp?unitid=5049): Opportunities to do research at other universities over summers
-
Google CSRMP (https://research.google/outreach/csrmp/): Meet a current Google researcher in a cohort of a few undergrads to learn about research in industry, applying to grad school, getting research opportunities, etc
-
UCSD SRC (https://ugresearch.ucsd.edu/conferences/src/index.html): Summer research conference opportunity at UCSDInternships* Internship Symposium to see where past CSE students did research https://internshipsymposium.ucsd.edu/
-
ACM’s Software Engineering Guide (https://acmucsd.notion.site/Software-Engineering-a3877d6649b946cab2376ec6ff72f9a4): honestly I found this guide super helpful as it provides solid advice on resume help, internships, and all the fundamental career necessities as introductory software engineer
-
-
A great resource for all things post-undergrad, with specific help for engineering majors as well!
-
First, make a Handshake account with your UCSD email. A lot of their resources are made available through Handshake.
-
Visit the ‘Career Center’ tab. Here, you can find links to make appointments with Career Center members, browse various resources, as well as upcoming events and career fairs!
-
Resources Tab
-
If you don’t know where to start, the Triton Career Guide is jam packed with useful exercises and tips to help get you started on your career planning journey.
-
I found the resume and cover letter section particularly helpful with getting my resume started from the ground up.
-
Once I had drafts of these, I made a general appointment with the Career Center.
-
-
Feel free to work through this chronologically, only skipping things if you already have them on lock!
-
Once I had a specific role / internship I wanted to apply for, I made a 1:1 appointment with the Career Center to shape my resume specifically for that job description / company values.
-
-
Once you’ve done some digging and/or have a grasp of which direction you’d like to head in, make an appointment!!
-
Appointments
-
-
-
A fun way to explore different career options, orgs, and events on campus!!!
-
Don’t have to do it all ~ apply your “Why?” Filter
-
-
Career Readiness Assessment Ask specific questions on Discord or Reddit* ACM: acmurl.com/discord
-
-
Check the Reddit Sidebar for specific year Discord servers (https://www.reddit.com/r/UCSD/wiki/index/)