It's been three years since I graduated in computer science.
Now I work as a full-time software engineer, and looking back, I've realised that I made multiple mistakes pursuing my computer science degree. Mistakes I'll list in this article so that you can avoid them.
This mistake is widespread.
Computer science is a field which has many fascinating sub-fields, such as Artificial Intelligence, Machine Learning, Data Science, Robotics, Blockchain, etc. New frameworks and languages are coming up every year or so.
A typical computer science major would have to learn and touch a bit of everything, often outside their control.
Learning many different languages may make your CV look fuller and more experienced, but it won't truly serve you when landing a job in software engineering.
What will help instead would be to learn one programming language relatively well, and understand the fundamentals of programming, so that you can transfer that knowledge onto any programming language.
Many computer science majors make the mistake of chasing the shining stuff. "The next big thing".
The boring skills are the skills that will make you stand out from your peers.
The boring skills are:
- Problem-solving: the ability to understand a problem, break it down into smaller pieces and then provide an optimal solution via coding.
- Teamwork: knowing how to work collaboratively as a team.
- Communication: knowing how to communicate clearly and simply in verbal and written format.
I'm one of those people who believe that mentorship can bring tremendous value if done with the right mindset.
I suggest computer science majors get a mentor because the real world is different from academia. Having someone who can act as a "bridge" will help you from feeling directionless.
"Mentor" sounds businessy, but it doesn't have to be.
A mentor is someone who genuinely cares about you and your career development. Ideally, they're someone a few steps ahead of you, or in general, someone who's where you'd like to be.
A mentor-to-mentee relationship is a two-way connection. The mentor learns from the mentee and vice versa.
A good approach for mentees to create a long-term relationship with any mentor is to adopt the mindset of a giver, always show up on time and prepare some strong questions/topic conversations to discuss.
By adopting this approach, your mentor will be more open to helping you, guiding you and opening doors to you.
Computer science majors make the mistake of putting all their energies into their assignments and not enough knowing people.
When I went to university, I saw people getting hired because they knew of someone who worked in XYZ company. It happens for real.
Often, developing your career is about "who you know".
People want to work with people they like.
People are more likely to recommend and refer if they know someone personally.
Networking is another word which sounds businessy, but again, it doesn't have to be.
Networking works great when you meet people and you are genuinely interested in knowing them without thinking about what you can get from them.
In order to network strategically, you must be able to build your network before you need it. You have to become comfortable with meeting people and cultivating relationships with no specific purpose. When networking, the key is to always focus on what you can give to the people you want to connect with. You do this by always probing in every conversation you have for ways you could provide value to the other person. Career Attraction - The Secret to Effective Networking: Give to Get]
Network with people from all backgrounds to get different insights into how it's like to work in the real world.
Networking aims to create genuine connections because you never know when these connections will help you in the future.
I often talk with current university students who ask me, "Is doing an internship a good idea?".
The answer is always YES.
Having some experience related to what you're studying in your CV will make you stand out from your peers who don't have any.
Employers prefer those who have some relevant experience compared to those who don't have any experience at all.
Why? Because it usually means there will be less training needed, and they can produce results in a relatively short period.
Always apply for internships, and plan to do that in advance.
Here you can find a list of websites which offer internship experience.
This is particularly relevant if, for any reason, you cannot do an internship or placement.
When I went through interviews as a computer science student, employers often asked me about my Github profile or any side projects I built.
At the time, I didn't have any. It was a huge mistake that blocked me from landing more interviews.
If you don't have relevant experience, employers will need to see somewhere that you know how to code or that you know something.
Therefore, building projects on the side is a brilliant idea.
A side project doesn't have to be either big or complicated.
Note that a recruiter with a non-technical background will often be the first to scan your profile. Therefore, adding a Readme helps.
A few small projects with a descriptive Readme file are better than having many non-documented projects.
If you plan to become a software engineer, you can get some experience through open-source projects and volunteering. Here I explain more about how to do it.
If you want to make the most out of your degree:
- Focus on learning a few high-quality skills.
- Find a mentor who can guide you and support you.
- Network with people by adopting the mindset of a giver.
- Apply for internships.
- Build side projects.
Did you make any of these mistakes as a computer science major?
Let me know in the comments.
Until next time.
P.S: did you enjoy this article? If so, I invite you to subscribe to my newsletter. I share interesting stuff around career development, software engineering and technical writing.