Congratulations on securing an internship or research opportunity! I personally benefited enormously from these experiences. I recommend that every undergraduate work at a company for at least one summer (and possibly more) and do research during the school year. Here are some tips I have learned from experience to make the most out of your time. Be warned! My advice here might be a little sketchy as I am still learning myself.
Mindset is key. It is important to remember that everyone assumes that you are a novice and should set their expectations accordingly. This is a huge blessing as it gives you a lot of room to maneuver. A good intern should be curious, aware of their limitations, and courageous to both try things on your own and ask for help when you need it.
If there is one habit you should develop. It is the habit of writing a weekly report about your progress. This can make you more successful, less frustrating, and more visible to others, among other benefits.
The format I follow:
Writing the progress report has many benefits
Writing the report will make you more productive, because it will force you to think about your work in a manner concretely enough to write down. Any time you spend time organizing your thoughts will pay itself back in better understanding and improved productivity. You can look back over your progress reports to remember what was difficult, and to think about how to work more productively in the future.
Writing report helps explain (to yourself especially, but also to others) how you spent your time -- even if there isn't progress as you would have preferred, you can see that you did hard work, and how to be more efficient or effective in the future.
I like to send my report 24 hours in advance before meeting with my mentor, to help everyone prepare. I learned to avoid delaying my report for better results. Instead, I send the report on schedule, and if I do get more results before the meeting, I can discuss those at the meeting.
Important tip: Throughout the day, maintain a log of what you have done. This can be a simple text file. I like to update it when I made discernable progress and or encounter a serious problem. It only takes a moment to maintain the log, and it makes writing the report easy. By contrast, without a log I would easily forget what I have done during the week, making it impossible to write an accurate report.
I started with the idea that my boss would tell me what to do and my job was just to do it. It turned out that my boss can't do my job and may not even fully understand it. So my relationship with my boss is more symbiotic. My job is to make my boss look good, by using my skills to do my job well and also help my boss do his or her job well. In return, my boss (if she or he is any good) will do his or her best to make me look good. In my experience, my boss will be lousy at estimating how long a software effort will take. Lots of my coworkers will tell their boss that the boss has screwed up (never a popular activity with the boss) or just work on the deadline they know is infeasible and figure it is the boss' problem when the work comes in late. The right thing to do is to do the estimates for your own work yourself and politely offer them to your boss. A good boss will graciously accept them and use them. Communicate early and often to stakeholders if something is delayed or you hit a roadblock.
Soft skills are much more important to be effective as a new employee than technical skills. They're also more nebulous and harder to learn because you can not just go study it. Internalize the fact that as you level up your technical skills, your ability to drive impactful projects and make meaningful contributions is going to be hugely hampered or enabled by your colleague's opinion of you. Engineering development is a team sport and if you make people feel bad or difficult to work with then you will be hamstrung in terms of your ability to get other people pulling in the same direction as you.