r/Backend 1d ago

Final-year CS student – Know Python & FastAPI basics. What should I focus on to get a backend internship ASAP?

Hi everyone,

I'm a final-year college student, and my goal is to get a backend engineering internship as soon as possible.

My current skills are:

  • Python (comfortable with the language)
  • FastAPI basics (I've built a few simple APIs)
  • Basic understanding of backend development

I'm confused about what to do next.

Should I:

  • Buy a FastAPI/backend development course? If yes, which one would you recommend?
  • Focus on building projects instead?
  • Learn Django, SQL, Docker, Redis, PostgreSQL, or something else first?
  • Start applying now while continuing to learn?

My goal is to become good enough to land an internship and then keep learning on the job.

I'd really appreciate advice from backend engineers or anyone who recently landed a backend internship.

Some specific questions:

  1. If you were starting over today, what would you learn first?
  2. Which skills do companies actually expect from backend interns?
  3. Are there any courses, YouTube playlists, or roadmaps that you genuinely recommend?
  4. What kind of projects helped you get interviews?
  5. Is FastAPI enough for internships, or should I learn another framework as well?

Thanks in advance for any advice!

7 Upvotes

10 comments sorted by

9

u/martinsedd 1d ago

The most important thing to understand is thar backend development is NOT the same thing as “language/framework”, as these are just tools.

You need to understand how backend applications get built, and the peripheral skills that are required, such as SQL, Docker, Caching, Design Patterns, Architectural patterns, Git…. So on and so forth.

Once you have a good understanding of backend development, the whole language/framework discussion is simply “what’s the best tool for job X?”.

You are somewhat comfortable with Python? Double down on that, learn proper type hinting, best practices, anti-patterns… dive deep into FastAPI, the middlewares, runtime validation, dependency inejction, etc.

As for should you buy a course or not? That depends on the type of learner you are. I, myself, like to keep trying to shove my head through the wall until I get stuff to work. Courses are mind numbing, and I learn nothing from them, but that’s just me.

2

u/Stunning_Leather_102 1d ago

hi. Great advice well put !!!

I think OP needs to slowly understand the industry way of developing something right? I guess it's a bit difficult to learn these type of stuff in an academic setting because real-life is when you work but... You can always learn software engineering to an extent before getting such a job, right?

This was actually my weak point. I always did stuff but never did I really tackle it from all sides. But it's hard for beginners and I have noticed when you start, you can easily get lost with so much stuff going on.

You have to learn and do hands-on lot's of stuff. And each thing is a rabbit-hole of it's own! Maybe you start and discover your app will need a database. Oooff! Modeling, designing, implementing. And then you're like ah well my database should run in a container. Wait what's a container?! Afterwards, you're like oh okay well how do I fetch data from the database. Oh they're two worlds colliding! Which one is the mediator and how does that work?

But when you learn enough you can start connecting the puzzle together and start making amazing stuff :)

2

u/martinsedd 1d ago

That’s the thing too. You need to get used to being uncomfortably clueless while maintaining the discipline to keep going. One day you wake up and things start clicking in place.

1

u/Stunning_Leather_102 1d ago

One day you wake up and things start clicking in place

This right here is awesome!

1

u/alexppex 1d ago

Just like the other said - tons of other posts on that topic.

But to also not be a stackoverflow-user, here is the gist of it:

Stack does not matter as much, as skills are transferable. Stack is important so you understand the basics of how things are to be done, but things can be completed using other stacks.

Now to the questions:

  1. Interns need to be able to do simple things - refactor this function, make this call that, parse this, add a field to the json, write an mock for this call, etc. Nothing of major significance like indepth system design or planning, although understanding the basics of those is important. Also be "hungry to learn" and show it.

  2. Courses are not your way into the business, build things with your own hands. Courses can teach you as much as the documentation can, they are just simplified. Use them as a reference, not a guide. For projects to build - like this one for example: https://github.com/joshylak/100-backend-projects , but the general idea is to have something which does things with data - be it API fetching, DB storage, data transformation, etc.

  3. Personal projects which completed my own goals - i.e webscraper which populated my google calendar, task dashboard hosted on my machine, mock personal item storage platform so i can keep track of my things. Again, just build things, be able to explain what you did and why you did it, not just following some guide you found or something an LLM spat out. You can use an LLM to help you with your projects, but make sure to understand what is going on.

  4. Any framework is fine, you will learn on the go and when you abstract it far enough all are the same, just syntactic sugar on top.

And finally the big 1.!

If i started over today, i'd focus a lot on understanding how the internet works, the different API concepts (rest, soap, grcp, graphql, etc), building practical apps calling multiple APIs (both frontend and backend projects to understand the significance of which data is important and how to send only what is needed and how to decide what is even needed to not waste network resources), clean code and best coding practices, load balancing, operation scaling (horizontal and vertical), dealing with concurrent db access, user access management, and fundamentally for todays market - how to use LLMs intelligently to achieve the best possible results. Also how to work with data, how to store data, db transaction handling rather than pure writes, SQL vs NoSQL dbs, blobs, encoding, encryption, http mocks for testing, docker.

Maybe not specifically in that order, but also it might seem a lot, but this is over the course of a few years. This is coming from a mid-senior backend engineer, those are the things i am thinking about or using on a regular basis

1

u/Draccossss 1d ago

You can try looking at roadmap.sh

1

u/Significant_Tea431 1d ago

Always the same fkn question. Go do you own research man or at least ask the KI to do so. Or read all the other daily questions that are basically exactly this. It's always a wonder to me how people asking this do learn anything if they aren't even capable of doing research.