The day you start CS 1114 is the day you begin your Computer Science journey at Virginia Tech. Some of you may have previous coding experience so you may start your journey in 2114, either way, there is a lot of unpacking from here on out. For some of you, your previous experience or natural abilities may help you navigate the course material well but that was not the case for me. Everyone is going to have a different experience much like any major, but I have collected what my CS group and I deem as the top tips to successfully make it through the program.
Tip #1: Go to the CS Lounge
What I found as my most useful tip is go to the CS lounge. The CS lounge is where you can find friends and help, I met the majority of my friends through the lounge, and having a group to struggle with makes all the difference. It can make those challenging late nights bearable and you always have someone down to grab some food. In terms of help, TA’s are your best friends and they all live in the CS lounge. In times of COVID-19, the CS lounge may not be open, but when it is safe to go again, I highly recommend trying to go.
Tip #2: Ask the Dumb Questions
Yes, there are dumb questions, but they are necessary to ask. TA hours will most likely be over Zoom which can intimidate most people to be 1:1 with someone. I can’t tell you the number of times I asked a “dumb question” and that answer clarified everything I was confused about. You are learning a new language and it can be hard so take your time and ask questions. Sometimes TA’s or professors may make you feel dumb after asking, don’t get too hung up on it. They won’t remember anything and if you are using your questions right your grade should be a good reflection of that and that is what professors remember.
Note: Don’t ask questions about material without looking for it first, look for your answer through Piazza, class slides, and materials. Asking questions about assignments or concepts without trying to find the answer first is a recipe for getting called out or a sassy answer.
Tip #3: Learn How to Debug
I’m sure I am not alone in saying I used to go to office hours with an issue and the TA would ask if I tried debugging, my answer would always be ”no not really” time and time again. Trying to debug my code brute force with print statements only took me so far, so I finally decided to learn how to debug in Eclipse and gdb. Long story short you will save yourself so much more time if you learn how to debug early, the more time you give yourself to get comfortable debugging the more tools you learn to make your life even easier down the road. I know it feels like extra work on top of all the projects but it is definitely an investment you should make and all it takes to get started is a simple search on Google or Youtube.
Tip #4: Use Your Resources
Long story short we do have resources and you have to find what combination of those resources work for you. Professors although they might seem intimidating- want to help you. So, after you have done your research if you still have questions ask! Once I went to office hours, I felt a lot more comfortable with my professors and knew they truly had a goal for us to learn which made my overall experience better. Other great resources are: Piazza, YouTube videos, CS clubs, and the textbooks can either be really good or bad but always try to read them because it can make a huge difference.
Gaining Real-World Experience Internally
Tip #5: Undergrad Research
Look into faculty research and see if you can be a part of it. A lot of CS professors here have some great projects going on and if you reach out sometimes you can get official undergrad research with them. In addition to CS professors, there are other projects all around campus looking for developers if you put in a little work into finding them. Doing undergrad research gives you a great leg up on applications and you get experience working under someone for a bit which again only helps your portfolio.
Tip #6: Student Organizations
Get involved in student-run CS groups. A great way to gain experience is to see what your peers are doing as well! There are a decent number of CS-related clubs and activities to get involved in that will give you great experiences. Hackathons, Capture the Flag competitions, professional talks and so much more. Being involved with the people that run this stuff will not only give you access to more opportunities, but it will also set you up to be in positions that will help later in your career.
Tip #7: Swing for the Fences
Don’t be afraid to go big! I met so many people afraid to approach companies like Bloomberg, Capital One, Microsoft, and more, but go for it! Being honest I was a sophomore in CS with a sub 3.0 GPA and I landed an Explore internship with Microsoft. This all goes to show that companies are looking for people like you and the only limit to some of these opportunities is whether or not you are willing to put yourself out there.
Note: Interviews do take preparation! Use LeetCode, HackerRank, or the book Cracking the Coding Interview to prepare. Also, companies are looking for more than just developers sometimes they are looking for team players so don’t ignore the behavioral interview aspect. Cracking the PM Interview is a great resource and just putting in a search for behavioral questions works well too!