paint-brush
If I Could Start Over: A Computer Science Student's Confessionby@elainechan01
308 reads
308 reads

If I Could Start Over: A Computer Science Student's Confession

by Elaine Yun Ru ChanAugust 15th, 2023
Read on Terminal Reader
Read this story w/o Javascript

Too Long; Didn't Read

From my educational background in Malaysia, it was ingrained in me to strive for academic excellence. Despite the constant reminder that academic achievements aren’t all there is in life, it was difficult for me to break free from that mindset. I loathed the idea of “not being up to par” as my peers and trudged through my classes with the goal of getting good grades. Neither did I prioritize the need to really understand the concepts of my courses in my Software Engineering career, nor did I step out of my comfort zone to make the best of my time.

People Mentioned

Mention Thumbnail
featured image - If I Could Start Over: A Computer Science Student's Confession
Elaine Yun Ru Chan HackerNoon profile picture

Let’s retrace our steps - I’m originally from Malaysia and majored in Computer Science at Western Michigan University. During my 4 years of undergrad, I’ve experienced a lot - my first “11:59 PM assignment due” scare, a pandemic engulfing my priorities, “productive” group projects in the library and so much more. Indefinitely, regrets are bound to follow the graduation plaque you receive in the mail - but rather than keeping it in my head, here’s my attempt at transcribing things into words.

CS 1000 - CS 5950

Taking classes at Western

From my educational background in Malaysia, it was ingrained in me to strive for academic excellence. Despite the constant reminder that academic achievements aren’t all there is in life, it was difficult for me to break free from that mindset. I loathed the idea of “not being up to par” as my peers and trudged through my classes with the goal of getting good grades. Neither did I prioritize the need to really understand the concepts of my courses in my Software Engineering career, nor did I step out of my comfort zone to make the best of my time.

If I Could Start Over, I’d…

Do a deep dive into the course material

CS3500 Intro to Web Technologies - say that we were learning about database communication, I would’ve liked to know how communication works. Yes, it is “out of scope” and not covered in-depth by the syllabus, but I would’ve liked to let my curiosity run free. Besides, it is only when the foundational concepts are understood, that you can learn higher-level concepts more easily.

Explore industry-used concepts

It is nearly impossible to cover every aspect of the industry, so my institution opted to prioritize courses focusing on foundational concepts. Reusing the previous example, CS3500 Intro to Web Technologies, I would’ve spent more time researching the trends of the industry, and more advanced topics.


Sample questions to ask:

  • What are some best practices to follow? (Folder organization, writing good code, cross-collaboration…)
  • What are the extensions of HTML, CSS, and JavaScript?
  • What does the industry have to offer? What are some of its career pathways?


Most importantly, I should’ve continued to utilize my newfound knowledge in my everyday life. For example, once having learned the importance of documentation, I should’ve continued to prioritize implementing it in my future projects.

Keep a good track record of the materials used in class

You won’t understand its importance until you need it. I know that there is this mentality of “Why would I need this in the future?” but since you’ve already paid to gain access to such material, why not keep it?


I’d suggest investing in a hard drive and organizing these items:

  • Slides and course notes
  • In-class exercises
  • Assignments (Implementation and Assignment Requirements)
  • Exam papers


On the topic of assignments, I would’ve stored my materials online. I’ll talk more about this in the next section, but tl;dr - it’s to help build my portfolio and online presence.


More specifically, I would’ve utilized GitHub as a means of documenting my assignments.

Take up courses that seem interesting even though it has a high difficulty on Rate My Professor

Thankfully, I allowed myself some freedom to choose my courses based on my interests and was able to gain a lot from this. I understand that the status quo is to go for Easy A’s with minimal workload, but essentially that’ll limit you from getting the most out of your degree.


The key here is to organize your academic pathway well. Say that you intend to take up an advanced-level Machine Learning course in the Spring, and you’re aware of its difficulty. For the semesters leading up to Spring, plan to divide and conquer - allocate other hard subjects to be tackled prior to the ML course.


On the other note, it is usually the case that your professors are more than willing to help you…(which we will talk about in the next section).

Engage with my Professor, Teaching Assistant, Grader, and Classmates

Be the first to strike up a conversation. One of the biggest takeaways from your degree should be the growth in your network. It doesn’t hurt to connect with your professors, in fact, you should use the opportunity to learn from others - learn about their experience, a project they’re currently working on… You never know, you just might’ve found your startup co-founder.

Onward For the Brown and Gold

Engaging with my institution

Truth be told, I didn’t know what Western had to offer, but that’s because I didn’t give my alma mater a chance, at least not until I was nearing my graduation date.

If I Could Start Over, I’d…

Participate in student organizations

It doesn’t even have to be the perfect fit. The whole point of going to higher education is to gain the chance to learn. In fact, if you feel the strong need to bring something new to campus, why not start your own student organization?


Personally, I was a part of the Google Developer Student Club, and I highly recommend that you check it out.


It’s a great program with benefits including:

  • The opportunity to participate in the Global Solution Challenge

  • Being able to network with industry leaders and fellow peers

  • Being mentored in industry topics

Research programs offered by various departments

Don’t limit yourself to your department. Give yourself a chance to explore and talk to other departments - you never know what you’ll end up stumbling across.


At my institution, the Office of Student Engagement offered a leadership program called LEAD Corp whereby its interns learn about the fundamentals of being a good leader, how to facilitate a core team, and essential skills like remediating conflicts.


The program is participated by people from different educational backgrounds. In fact, there was a need to be intentional about such diversity. In other words, there may be an amazing opportunity out there which is in need of your participation, you just have to dig deep and search.

Engage with leaders

It wasn’t until I founded the GDSC chapter at my institution that I gained the opportunity to speak to the various leaders on campus. I got to learn about their leadership experience, and in return, learn to become a better leader myself.


You don’t necessarily have to agree with what they stand for, because it’s always interesting to learn about a new perspective. Their point of view may trigger a new understanding, their dissimilarity may transform your norm.

Attend events alone

We’re social animals and there exists this fear of not already being part of a pack. I urge you to get rid of such a mindset. You shouldn’t limit yourself to only attending events only when you’ve successfully persuaded your friend to tag along.


On the other hand, take a chance and attend that event, even if you’re not sure of its relevance, even if you don’t think that you’re “qualified”.


Personally, I had the opportunity, as part of a collaboration between the Google Developers Student Club at Western Michigan University and the Custer Speaker Series, to host an event with an AI/ML Engineer from Google. What I had initially thought to be an intimidating event, turned out quite the opposite. In fact, the speaker was very welcoming toward questions from the audience, no matter the level of difficulty.


My point is, you should allow your sincerity to learn to shine through - you’re worth the conversation too.

24-Hour Grind with Strangers

Participating in extracurriculars

In case you didn’t know, the title depicts what a hackathon is - being paired up with strangers in an attempt to come up with a viable product within the usual timeframe of 24 hours. The key point of this topic is to take a chance on yourself. We can’t be perfect to start, but we have to start, to become perfect.

If I Could Start Over, I’d…

Research and participate in programs

Do a quick research, and look for cool opportunities you can participate in. It's crucial to understand that your class level (Freshman, Sophomore, Junior, and Senior) heavily influences the kinds of opportunities you can participate in. Understand that it’s critical to start exploring early, especially during your Freshman and Sophomore year because the requirements are not as heavy.


My pro tip? Take advice from platforms that are in the industry (your local newspaper company may not provide the most extensive list, thus shouldn’t be your only source of truth).


Here are some topics you can take a look at:

  • Fellowship programs
  • Challenges and programs by tech companies (e.g., AWS Associate Challenge)
  • Open source projects
  • Hackathons
  • Free learning courses


It’s also important to note that you shouldn’t limit yourself to only technical programs. Explore the horizon, attend a roundtable discussion, take part in leadership programs…


More importantly, it’s okay to feel intimidated by the scale of things. Just remember to be honest with yourself, and seek guidance when necessary.


More: Awesome CS Opportunities

Establish my presence

Take initiative. The imposter syndrome will haunt you every now and then but it’s important to remember that we’re all trying to put our best foot forward.


Advocate for yourself and allow yourself to be seen and heard. So turn on your camera during that online networking session, initiate a project for the community, and keep your chin up. We’re all rooting for you.

The 5-9 After the 9-5

Building your portfolio

Dedicate a platform to showcase your work. LinkedIn is your best friend, and it’s where you should be modestly bragging about your achievements. At the start of your journey, it’s okay to still be in that exploratory phase, but your goal should be to gradually narrow things down to a niche.

If I Could Start Over, I’d…

Engage in passion projects

The best way to learn is to engage hands-on. In return, you may end up inventing the next best Chrome Extension, or the next most wishlisted game on Steam. All of which you can add to your resume, and boost your “hireability”.


On the other hand, you’ll learn the essentials of deploying software to the real world, and not just as a zip file for your grader to assess.


There are tons of ways to get started, such as participating in a hackathon or simply following a YouTube tutorial. But most importantly, create that GitHub repo, and just start.

Emphasize my branding

I misunderstood what a Software Engineering-focused resume would look like as compared to a normal resume.


In the tech industry, it’s vital to provide links to platforms that showcase your skills. Focusing only on LinkedIn won’t get you far, here are some other platforms you could take a look at:

  • GitHub
  • Coursera
  • Certification platforms (e.g., Credly)
  • Personal portfolio website


Most importantly, you should always tailor your branding according to the role you’re preparing for.

Push to Prod

Looking for job opportunities

So here’s the big one - always start early. In fact, if you’re an international student like me, we stand to be limited by our visa status.


It’s crucial to understand the structure of our employment eligibility - some things to bear in mind would be:

  • Off-campus jobs/internships
  • Part-time CPT v.s. full-time CPT

If I Could Start Over, I’d…

Research Common Interview Questions

Depending on the company, they may phase their interviews differently. A common trend I’m noticing is that companies tend to tailor their interviews based on a common workday, a scenario that might occur in the workplace.


But most commonly, Software Engineering roles usually touch base with the following interviews:

  • Phone screen
  • Behavioral (Situational)
  • Technical
    • Take-home assignment and demo
    • Leetcode
    • System Design


I would’ve liked to spare some time in my schedule to practice my interviewing skills. In fact, I would’ve allocated a slot in my daily routine. After all, it would’ve been much more effective if I got accustomed to such interviews early on.

Understand the Interview Timeline

This is specifically for internships. It is usually the case that for summer internships, interviews begin starting the Fall of the previous year. Do the research - say that you have a target company: start by looking up its previous internship timeline. You could also try to reach out to a recruiter to gain some insight on how to better prepare but remember - they get an influx of messages all the time, please be mindful and remember to connect not as an interviewee, but as a human being.


It’s important to have preparations ready by then, but most importantly, to go in with the mindset that “You are enough”.


Someone once told me, “It’s better to let someone else tell you no than yourself” - the job search process will be tough, and you’re bound to face rejections. I hope that you’re able to take this as a learning opportunity instead.

Take full advantage of opportunities

I used to be “conservative”, almost somewhat of a “Yes Man”, that is I wouldn’t step out of bounds and would work within my role description. However, I would’ve liked to let my creativity run a little wild. Say that I noticed a problem that could’ve had an easy fix and that I had the capability to come up with a solution for it, I should’ve allowed myself to explore its potential. Obviously, I have to respect the work environment and act accordingly, but I don’t see the harm in preparing a pitch.


After all, if it benefits the workplace, you just might’ve been a pioneer.

If I Could Start Over…

Of course, I’d like the opportunity to do a rerun. But my biggest need would’ve been - if I could start over, I would’ve been kinder to myself.


Life is bound to happen, mistakes are bound to be made. I hope that your journey, even with all the bumps on the road, remains to be something that you’re proud of nonetheless.