1. Introduction
Landing your first job as a software engineer has never been more challenging.
A computer science degree no longer guarantees a job and self teaching is overwhelming thanks to the saturation of conflicting resources and advice.
This guide is here to change that.
Whether you're just starting university or already deep into your job search, this book will give you a clear roadmap—from student to software engineer.
If You Only Read One Thing, Read This​
If you're thinking "I don't have time to read 200+ pages", I get it.
This is the key takeaway of the book:
If you want to be hired as a software engineer, you need to show that you can build, test, deploy, and maintain real software. This is what actual software engineers do every day, and this is what employers want to see.
I’ve spoken to thousands of students, and many fail to realize that employers aren’t looking for the computer science theory from their classes—they want proof of the real skills software engineers use on a daily basis.
Even students who understand the need to build real software often lack a roadmap to go beyond basic projects like a CRUD app with a frontend, backend, and database. As a result, they rarely develop the deeper practical skills employers actually value.
Your CRUD app is just the tip of the iceberg.
To stand out, show employers that you understand:
- Automated Testing: Unit Tests, Integration Tests, End-to-End Tests
- API Protocols: REST, GraphQL, gRPC, WebSockets
- Datastores: Relational Databases, Caches, Search Engines
- Background Tasks: Cron Jobs, Message Queues, etc
- Cloud Services: S3, EC2, AWS, Azure, GCP, etc
- CI/CD: Jenkins, GitHub Actions, CircleCI, etc
- Containerization: Docker, Kubernetes, etc
- Observability Tools: Logging, Monitoring, and Alerting
- Patterns and Best Practices: MVC, SOLID, GOF, DRY, KISS, YAGNI, etc.
- Common Problem Spaces: IAM, messaging systems, data storage, payments, search, etc.
- Profiling and Optimization: CPU/memory usage, query tuning, caching, concurrency, load testing, etc.
- Architecture Patterns: Microservices, Monoliths, Serverless, Event-Driven, etc
- Collaborative Coding Practices: Code Reviews, Pair Programming, etc
Do or should you need to know all of these to get hired for entry level positons, NO. However, if these concepts are new to you, great — now you have a clear idea of how you can stand out from the competition.
Yes, It is without question really hard to get hired as an entry level software engineer right now. Economic instability, mass layoffs, AI disruption, and soaring university enrollment have all contributed to a saturated job market.
However, another root of the problem is students having the perception the theoretical knowledge from their computer science degree is enough to get hired. The bar is higher now that developers are in less demand and university does not give students the applied in-demand skills needed to present themselves effectively to employers and stand out from the competition.
However, it's not hopeless. Tech is an extremely accessible field to self-educate in, the biggest challenge is not being overwhelmed by the sheer volume of information and conflicting advice.
That's where this book comes in.
What This Book Covers​
The chapters are structured to build on each other. Each one answering a different set of questions that students commonly face on their career journey:
Chapter 1: Introduction​
This chapter explains what a software engineer is, the difference between computer science and software engineering, and why understanding this distinction is crucial for your career.
Chapter 2: Why It’s So Hard To Get Hired​
This chapter explains why becoming a software developer has become so challenging. This chapter explains the big-picture reasons why: skyrocketing university enrollment, economic instability, AI, and a mismatch between what schools teach and what employers need.
Chapter 3: How To Make The Most Of University​
This chapter covers how university can (and can’t) prepare you for your career. It covers how you need to do more than just focus on good grades, but also build a portfolio, network, and gain relevant experience that will help you land your first job.
Chapter 4: Understanding the Workplace​
To succeed not only in finding a job, but also a job you actually enjoy, you need to understand what roles exist, how teams are structured, and most importantly what is actually expected of junior developers.
Chapter 5: The Skills You Need To Get Hired​
This chapter is structured as a massive checklist of the skills you need to get hired, their justifications, and how to learn them.
Chapter 6: Gain Experience Without a Job​
This chapter answers the question: "How do I get experience if I can’t get a job?" It covers how to build a portfolio, contribute to open source, and create personal projects that demonstrate your skills.
Chapter 7: Find Your First Internship​
This chapter covers how to apply for internships, what to include in your resume, how to prepare for interviews, and how to stand out from the competition.
Chapter 8: Progressing Your Career​
This chapter covers how to continue growing your career after landing your first job. It includes tips for making the most of your first job, how searching for full-time roles differs from internships, and how to continue progressing towards more senior roles.
Contributing​
I'm not an author or an educator. There are definitely gonna be grammar mistakes, typos, and other issues in this book.
There are also likely to be gaps in the content, or things that could be explained better, so feel free to reach out with suggestions or improvements.
Checkout the contributing guide for more information on how to contribute.