Skip to main content
11 answers
14
Updated 2552 views

Any advice for a student starting an embedded internship?

Hi. i sm a CS student in my 2nd year and I've got an internship starting in 2 weeks. I feel as if i sm behind the other interns and i don't know much to actually even start the internship. I've been learning some c++ and OOP principles as the firmware description said that those are the need to knows. I haven't got any practice with actual embedded coding however i do have an arduino uno 4 i bought recently along with some other components, breadboards, wires etc.


14

11 answers


1
Updated
Share a link to this answer
Share a link to this answer

Will’s Answer

If they accepted you for the internship, I suppose they don't expect you'll have any prior knowledge. They probably have learning resources you can make use of, so ask for them. Maybe they even have a mentorship/apprenticeship program, in which you can participate to learn from an experienced embedded programmer. Finally, I'd spend some time getting familiar with AI coding, e.g. using OpenAI's codex, as it can greatly speed up learning; virtually all software professionals nowadays are using AI to some extent.
Thank you comment icon I have been using AI to teach me coding and its been working pretty well so far, it is slow progress however better than no progress Mahmud
1
0
Updated
Share a link to this answer
Share a link to this answer

Keerthan’s Answer

First of all, take a deep breath. Feeling like you are behind the other interns is classic imposter syndrome, and it is completely normal—especially in your second year!

Here is the reality check: Companies do not expect second-year interns to be firmware experts. They hired you because you showed potential, a willingness to learn, and a baseline understanding of coding. They expect to teach you.

Since you have two weeks, C++ knowledge, and an Arduino Uno R4 sitting on your desk, you are in a great position to build some confidence.
0
0
Updated
Share a link to this answer
Share a link to this answer

Rajalakshmi’s Answer

Congratulations on securing an internship!

Internships are intended to show you how organizations work. So, do not worry about being 'behind' others interning with you -- just focus on learning how things work. I used to teach C++ and OOP decades ago, and every organization that uses computer software evolves the languages/platforms/technologies that they use to adapt to their changing needs. Who knows, tomorrow, they may ask you to learn Angular, and day after tomorrow, C#!

I do recommend keeping your focus on software or hardware at this point, not both -- as they are both vast topics of study. Select one and practice the other as a hobby while you become proficient in your selected field first.

Keep an open mind and learn, learn, learn.

All the best!

Rajalakshmi recommends the following next steps:

If you feel you need it, sign up for free classes from your local universities or libraries.
0
0
Updated
Share a link to this answer
Share a link to this answer

Teklemuz’s Answer

Focus on building strong core skills like understanding pointers, memory layout (stack vs heap), and how software interacts with hardware. Learn about the embedded toolchain, how code is compiled and linked, and how it gets onto a device. Get familiar with debuggers like JTAG/SWD and key ideas like interrupts, non-blocking design, and timing. Use your Arduino Uno for practice projects like button debouncing with interrupts, controlling LEDs with timers, reading sensors with basic filtering, and using UART for communication with a PC. These projects will help you understand timing, manage states, and interact with hardware, while also getting comfortable with reading and understanding existing code and documentation.

Practice reading and tracing embedded code by following data and control flow in drivers, HAL layers, or RTOS components. Learn basic Git skills like cloning, branching, committing, and making pull requests, as version control is important for internships. Keep a habit of writing short daily notes on what you learn to reinforce concepts and track your progress. During your internship, focus on learning the system, ask clear questions, start with small tasks, and communicate early if you're stuck. Seek guidance when needed to make the most of your learning experience.
0
0
Updated
Share a link to this answer
Share a link to this answer
Hey, don't stress about feeling behind — almost nobody walks into their first embedded internship with real hands-on experience. C++/OOP is fine to know, but most embedded work (especially at the intern level) leans heavily on plain C — pointers, structs, bitwise operations, and memory layout matter way more day-to-day than OOP concepts.
Since you already have an Arduino and basic components, use the next 2 weeks like this:

Blink an LED without using delay() — use millis() instead. This teaches you non-blocking logic, which is basically how all real embedded code is structured.
Read a push button with debounce logic.
Try UART: send sensor data to your laptop and print it on serial monitor.
Skim through the Arduino Uno's datasheet (just the GPIO/timer sections) — get comfortable with the idea of registers, even if Arduino abstracts them away.

Don't try to "catch up" on everything. Interns are expected to ask questions — that's normal, not a red flag. What actually stands out is curiosity and a debugging mindset: when something doesn't work, can you methodically narrow down why?
You're in a better spot than you think. Good luck!
0
0
Updated
Share a link to this answer
Share a link to this answer

Jason’s Answer

Think about why you feel behind the other interns. If you notice certain skills you need, start working on them. Even if you learn a little, you're making great progress. From a manager's view, you're the perfect employee because you saw what you needed and took action.

Don't hesitate to ask for help. Everyone begins somewhere. If you know what you're missing, maybe other interns can give you advice. I once shared a textbook with someone who needed help with OOP concepts because it was really helpful when I was struggling.

If you're unsure why you feel behind, it might be imposter syndrome. Try to accept that feeling. I use it to fuel my interest in learning new things. Ideally, you'll be with supportive people who love learning and growing, just like you.

Jason recommends the following next steps:

Try to identify why you feel that way.
If you can't pinpoint it, it's possibly imposter syndrome. Use it to fuel additional learning and growth. You're not alone.
If you can pinpoint specific skills that you feel you need, try to find resources to develop them. Make sure people know you're investing in yourself and trying to grow.
Partner with the other interns to see if you can grow together. If they're more senior interns, get advice.
Remember: They hired you! They believe in you. If you need help, seek it out.
0
0
Updated
Share a link to this answer
Share a link to this answer

Sandeep’s Answer

Hello Mahmud,

First, congratulations! Most companies don't expect interns to know everything on day one. They hired you because they believe you can learn.

Since you're interested in firmware, keep practicing C++, OOP, and basic embedded concepts using your Arduino. Try small projects involving sensors, LEDs, buttons, and serial communication. More importantly, be curious, ask questions, take notes, and don't be afraid to admit when you don't know something.

Many successful interns start with little embedded experience. The willingness to learn is often more important than what you already know.
0
0
Updated
Share a link to this answer
Share a link to this answer

Mark’s Answer

The feeling of, "being behind" will be a constant in programming/computer science. The best advice I can give is there will be times where you feel like that towards others, and others will feel the same about you (being ahead of them). Practice inventorying where you think the gaps are, then make a plan to close the gap over time, at a comfortable pace. This muscle memory of finding out what you need to know, and making a plan to get there will serve you well and help reduce panic or stress.
0
0
Updated
Share a link to this answer
Share a link to this answer

Suraayah’s Answer

Mahmud — an embedded internship means writing software that talks directly to hardware. Feeling behind is normal. The C++ and OOP you’re learning are exactly what most teams expect from a second‑year intern.

Your Arduino is the best way to prepare. Try simple projects like blinking an LED or reading a sensor. If you want to make it fun, apps and games like TinkerCAD Circuits, Wokwi, Circuit Simulator, and Human Resource Machine help you build logic and hardware thinking in a playful way. AI can also help you debug code or walk you through small tasks step‑by‑step.

Since you’re in Leicester, start with your university’s engineering labs, peer mentors, robotics clubs, or embedded groups — working with others gives you instant support. You can also talk to alumni who’ve done embedded internships, and many UK universities offer student tech jobs or lab assistant roles for extra experience.

If you ever plan to relocate, the same embedded skills transfer well across countries, so everything you learn now will serve you anywhere.

You’re not expected to be an expert on day one. Stay curious, ask questions, and learn one small piece at a time — that’s exactly what internships are for.
– Dr. Hunter

Suraayah recommends the following next steps:

1. Use TinkerCAD, Wokwi, and logic games to build hardware skills.
2. Ask AI to explain code or debug small Arduino tasks.
3. Visit your university’s engineering lab and work with others.
4. Join robotics or embedded groups already doing hands‑on projects.
5. Explore UK and international embedded roles if you may relocate later.
Thank you comment icon Appreciate the advice! Thank you Mahmud
0
0
Updated
Share a link to this answer
Share a link to this answer

Amelia’s Answer

The best cure to feeling like you are behind other interns is talking to them; if they are better prepared you can learn from them otherwise you might learn that they think you(!) are the prepared one. Otherwise I would take a few deep breaths; other answers have already said this but you are there to learn, it is expected that you will know next to nothing, your clear active interest is a huge plus and(although knowing things is always a benefit) coming to an internship enthusiastic, willing to learn and to admit that you need to learn is what your manager will remember, not your perfect grasp of c++.
Thank you comment icon Thank you! Mahmud
0
0
Updated
Share a link to this answer
Share a link to this answer

Bill’s Answer

I have been coding my entire life. From binary in ancient Navy computers, to assembly, to strange languages like Trac, Snobol, Lisp, Forth and others. I've used C, C++ and Objective C , Javascript and Python to build huge applications.

All that being said, it's all different now. AI's have the edge in doing the low level coding but they aren't very good at architecture of an application. They do what I used to call "coding without ever looking back". They get bogged down and stumble with refactoring. They don't simplify. They don't innovate.

Those are the things you need to learn. As for languages, screw the C++; get proficient in Javascript and Python for now. You might want to look at some of my articles about AI and education on Substack or Rottendog.com. Here are a couple: https://rottendog.com/article/the-ai-scarlet-letter/; https://rottendog.com/article/ai-cant-fix-a-roof-leak/; https://rottendog.com/article/im-an-ai-prove-that-im-not/; https://rottendog.com/article/the-machine-can-write-can-we-still-read/; https://rottendog.com/article/no-way-in/. Or my article series Messing Around with Computers.
0