Originally published on Medium
Have you prospered at your first software development internship? Showed every bit of your capabilities, delivered great results, and got a return offer? Me neither, that’s why I am sharing my TOP tips that would have helped me!
I am Tomas, a Frontend Developer at Vinted. I’ve done my share of internships at Devbridge, Wix, and Vinted. Some of them went terribly, others were a blast. This summer, I was interviewing potential interns and mentored one of them. That is why I believe I am in a perfect position to share the pains and gains I’ve lived through, on how to succeed as a software development intern.
1. Don’t turn mistakes into patterns
You are expected to make mistakes. In fact, you are expected to make the most simple mistakes that one can even think of. However, you are also expected to learn from them and move on. Repeating the same mistake shows either negligence or the lack of ability to learn.
Have you been told your PRs are too big? Great, make sure you note that down and split them next time. Your mentor told you that it is NOT okay to work overtime? Perfect, one more lesson into your notebook.
2. Focus on learning, not delivering
The internship is a limited-time endeavor. It’s unlikely you’re expected to implement a complex 3rd party API integration or build a new testing framework. Even if that would look great on your CV, you know what would look even better?
“During the internship, I spent all my time learning technologies and best practices. I employed my learnings by building the barebones of the company’s new landing page.”
It is easy to spot a person who is choosing delivery over learning. The intention to learn will make you be more curious and prioritize the quality, rather than quantity, of your work. Hence, start an internship with the right mindset.
3. There is no single “right way” to code this feature
I’ve always thought that great companies have “correct” answers to all code-wise questions. I was completely wrong. Now I think great companies have all the questions. As a software developer, your job is to evaluate all possible solutions and choose the most suitable one.
The more I code, the more I figure that code decisions, first and foremost, are based on values. Do you prefer functional programming? You’d probably prefer pure functions then. Is performance a priority? Chances are you’re ready to sacrifice code readability to get a performance boost.
Therefore, if your solutions are dismissed, it doesn’t necessarily mean they’re wrong. Oftentimes, it just means that those, who are making the decision, have different values in mind.
4. Be competitive, but not at the expense of others
Unless you’re the only intern at the company, you will feel competition. That’s inevitable. Accept it, but direct it towards yourself, not others. It can give you a motivational boost and help you be the best version of yourself.
The worst thing one can do is to put others down. In most cases, team spirit is at the core of the company’s success. Nobody would want to work with a person whose actions don’t align with the team’s success. I’ve seen interns working overtime after repeated suggestions NOT to, thus damaging trust with their peers and putting more pressure on them. It won’t get you too far.
5. Back your every decision
Have you left messy code in your PR because you haven’t found a way to split a big function? Make sure you write a comment about it explaining your way of thinking about it.
The arguments that you back your decision with might not be the strongest. The decision itself might not be the best. However, the fact that you expressed your thought process and shared your concerns is crucial. It screams honesty and your willingness to be vulnerable to achieve common goals. A lot of people would call it courage.
Conclusion
These tips would have helped me show the best version of myself during my internships. Now, I hope, they will assist you in your path towards your goals:
- Make sure you learn from your mistakes and don’t repeat them
- Learning should be your priority
- There are multiple valid ways of solving a problem
- Never hurt others in an attempt to look better
- Have reasoning behind your every decision. State it clearly
Thank you for reading this! I sincerely hope you found it useful.