Hassan Raza

From University to Software Engineering: My Journey

August 20, 2025
From University to Software Engineering: My Journey

My journey into software engineering has been filled with challenges and learning opportunities. Here's what I've learned along the way and how you can make the most of your own journey.

The Beginning

When I started my Computer Science degree at the University of Birmingham, I had basic programming knowledge but little real-world experience. The transition from academic exercises to building actual applications was both exciting and daunting.

Key Lessons Learned

1. Theory Meets Practice

University taught me the fundamentals—algorithms, data structures, software architecture. But it was through personal projects and internships that I learned how to apply these concepts to solve real problems.

2. Continuous Learning

Technology evolves rapidly. The frameworks and tools I learned in my first year are already being replaced by newer, better alternatives. Embrace continuous learning as a core part of your career.

3. Soft Skills Matter

Technical skills are essential, but communication, teamwork, and problem-solving abilities are equally important. Learn to explain complex technical concepts to non-technical stakeholders.

Challenges Faced

Imposter Syndrome

Almost everyone experiences imposter syndrome, especially when starting out. Remember that everyone was a beginner once, and asking questions is a sign of engagement, not weakness.

Balancing Breadth and Depth

It's tempting to learn every new framework and tool, but focus on mastering core concepts first. Deep knowledge in a few areas is more valuable than surface-level understanding of many.

Time Management

Balancing university coursework, personal projects, job applications, and social life requires careful time management. Prioritize ruthlessly and don't be afraid to say no.

Advice for Aspiring Developers

  1. Build Projects: Nothing beats hands-on experience. Build things that interest you and solve real problems.

  2. Contribute to Open Source: It's a great way to learn from experienced developers and build your portfolio.

  3. Network: Attend meetups, hackathons, and conferences. Many opportunities come from connections.

  4. Document Your Journey: Write blog posts, maintain a portfolio, and share your learning process.

  5. Don't Compare Yourself to Others: Everyone's journey is different. Focus on your own growth.

Looking Forward

As I approach graduation and transition to full-time software engineering, I'm excited about the opportunities ahead. The journey from university to software engineering has been challenging but incredibly rewarding.

Whether you're just starting out or in the middle of your journey, remember that every expert was once a beginner. Keep learning, stay curious, and don't be afraid to fail—it's all part of the process.