Landing your first engineering role after getting a degree in computer science (or software engineering) is challenging.
There are so many software engineering vacancies, but most of them are for those with at least 2+ years of experience.
There are not enough junior positions on the market, so the competition for entry-level roles is high.
Yet, it is still possible to land an engineering role, even without experience.
The following tips are mainly dedicated to computer science or software engineering graduates seeking their first engineering role.
However, self-taught developers and boot camp graduates can still benefit from this article.
I will list five actionable steps to help you land your first role.
Refresh Computer Science Fundamentals
Employers will expect you to know computer science fundamentals if you're a computer science or software engineering graduate.
Once you graduate, take your time to refresh your computer science fundamentals.
By these, I mean:
Computer programming
Data Structures and Algorithms
Database systems
Software Engineering Principles
A quick comment on data structures and algorithms: when I went through my job search, many companies (even small to medium, so not just the big-tech companies) used HackerRank-style coding challenges to assess candidates.
I'd say to practice them if you want to increase your chances of landing a role.
But remember that in software engineering, we don't revert binary trees daily.
I'm simply giving you practical advice.
In addition, learn how agile software development methodology works.
Build at Least One Strong Project
This step is crucial because if you have no experience (not even an internship or a placement), you'll need to demonstrate that you can write code.
The way to do this is to build at least one strong project and upload it on GitHub.
By "strong" project, I mean:
A real-world project but on a smaller scale
I'm a fan of management systems because all companies can store data of every sort internally (either customer's data, employees' data, products, etc.).
You can also choose to create a project based on the domain you're most interested in.
For example, are you interested in fintech? Try to make a sample of a banking application.
A project that uses the latest technologies
This also depends on what type of engineer you want to become (frontend, backend, or full-stack).
If you're more interested in frontend engineering, building a project that uses a popular language + a popular framework is a great choice.
Same for a backend engineer, but I would add APIs + a database on top.
For a full-stack engineer, a combination of the two is.
Bonus points if you can show familiarity with containers or cloud computing.
A project that includes tests
In the real world, we do write tests.
So it's great to add them to your project to show that you care about testing your code.
A project mindful of code quality
Your code doesn't have to be perfect, mainly because you're at the stage where you've never worked in a commercial environment.
However, you can still be mindful of indentation, classes, variables and method names.
Bonus points if you can understand engineering principles such as SOLID and DRY.
A project that includes a descriptive Read.me file
It's essential to include a well-descriptive Read.me because often, your profile will be read by people who don't have a technical background.
In your Read.me file, explain what the project is about, what problem it solves, its design, and how to run it.
Bonus tip: while creating a project, get to know your IDE, make the most of the keyboard shortcuts, and learn the Linux commands (at least the basic commands).
Learn Git
Git is a Version Control System widely used across the industry, so learning Git will significantly benefit.
It can also happen that your interviewers ask you about Git to see if you've ever heard of it.
Honestly, you don't need t take a whole course to learn Git. It's vast, and you probably won't remember everything anyway.
Focus on understanding what it is, why it's used and the most common commands.
I think this list is helpful.
Sharpen Your Interpersonal Skills
Software engineering involves a lot of interaction with technical and non-technical people.
Nowadays, there is a significant emphasis on emotional intelligence, even in software engineering.
Recruiters don't want to hire people who refuse to be collaborative.
Employers value those who know how to work well with other people, and learn how to communicate and empathize with others.
For this, you can find some interesting books on how to sharpen your people skills.
A great example is the book "How to Win Friends and Influence People" by Dale Carnegie.
Use IT Hiring Platforms
Instead of continuously tailoring your CV for each company (a very time-consuming process!), take full advantage of IT hiring platforms.
You can create your account on these platforms, and recruiters can directly message you if they're interested in your profile.
You can potentially apply a "one-size-fits-all" approach through these platforms, which is great because you can dedicate more to the steps above.
Some examples of IT-hiring platforms are:
I would also add to take advantage of LinkedIn and Twitter by networking and sharing your journey.
However, I'm fully aware that not everyone wants to do that and prefers to "silently" land an engineering role.
Many engineers landed their first engineering role without constantly being on LinkedIn or Twitter, so it's still doable.
Key Takeaways
✔️ Refresh computer science fundamentals and understand how agile software methodology works.
✔️ Build at least one strong project.
✔️ Learn Git.
✔️ Sharpen your interpersonal skills.
✔️ Use IT Hiring Platforms.
I hope you've found this helpful. Let me know in the comments if you have any questions.
Until next time. 👋🏾