7 Things I Learned From My First Software Developer Internship

Maria Sitkovets
intern.club
Published in
9 min readApr 30, 2020
Me trying out a new technique I just learned.

Hi, my name is Maria and for the past eight months I have been learning how to be a professional code monkey. Today, I’d like to share some of the mistakes I’ve made and what they taught me so that you can laugh and hopefully learn from me before you get into the same troubles that I did.

1. Build trust immediately

When you first join a new team, you’re given a period of time that might last a few weeks to a few months called on-boarding. This is the chance you have to get familiar with the company if you’re new to it, to get to know your team (the people and their goals), and to learn your way around the codebase.

The best way for you to take advantage of all of this time is to ask a lot of stupid questions and get all the answers you can so that you’ll be able to contribute to the best of your abilities. Ask about the code and the people you’re working with. Once you get comfortable with things, you can start taking on projects and contributing to your team.

Something I realized during the start of my internship was that people didn’t know me and they weren’t sure if I could be trusted with big projects (of course they were right, but now I actually know more of what I’m doing).

So, I needed to build a reputation for myself as being a trustworthy person: someone who comes to meetings on time and someone who can be held accountable for finishing their work. I accomplished this by trying to actively engage in meetings and by taking initiative to work on issues in our backlog whenever I finished my current tasks.

Overall, I learned that the earlier you show off your strengths but also expose your weaknesses, the more it shows that you’re willing to learn with your team and the earlier you can help build something great.

2. Be empathetic and patient with others

Once I had built trust with my own team, I was given more challenges that were connected across multiple teams. With one of these projects, I was working on creating something that could be published and used by people all across our company. However, this required collaborating with another team in order to get it published into their system

At the time, I didn’t think that it was my project. It wasn’t an idea that I had come up with and there were so many stakeholders and opinions on my code and documentation that it didn’t feel like my work anymore. But that’s not the point. The problem was, I was neglecting my responsibility to communicate with the other team. I just let my project manager do it because he had the connections.

But then, after months of hard work and a lot of writing and re-writing documents, I still had nothing to show for it. Why? Because I had only set up a few meetings with the other team and those never got that far.

However, I can definitely say that this wasn’t entirely my fault. In fact, the other team was even worse. For months they had led me on to believe that they could help me and my team, but every time we asked them questions and booked meetings, they’d send us to a new group of people and we’d have to start all over again. It felt like I was a hot potato being thrown around in circles.

But, once I got annoyed enough with this, I decided that it was time for me to do something about it. So, I booked a meeting with the newest person they had told me to talk to and I learned why I was being treated this way.

It’s not like people want to lie to you and lead you on. It just sometimes happens. What I learned from this person was that their whole team was in an even tougher situation than mine. They were re-organizing everything and everyone. Some projects were being thrown away and others were being prioritized on tight deadlines. Once I learned about that, I stopped being annoyed and all I felt was empathy for the people on that team. Even though they made mistakes and should have communicated the problems they were facing earlier (again, to help build trust), I still had to feel sorry for them.

You have to remember that helping you with your work isn’t the top priority of everyone at your company. People might have other crazier things going on at work or at home that you don’t even know about. All you have to do is ask, and be prepared to be empathetic towards and patient with them.

Photo by Ian Kim on Unsplash

3. Fail fast, fail often

Failure is fun and hard at the same time. It’s kind of like when I sign up for a hackathon but when I’m there I wonder why I do this to myself so much (do I actually hate myself?). It’s painful at the time, but looking back on it, all you remember are the good parts (and also some of the parts where you want to strangle your teammates too).

The more open you are to failing, the more successful you’ll be as a software developer. And as a person too. I decided last year when I started university that I was going to try and fail as much as possible. I attended every event, competition, hackathon, and coding contest I could find just so that I could fail. I mean who would even expect a first year to win? And who even cares what place you get as long as you learn something (and get free stuff)?

This is a mentality that I felt like I’d lost when I started working. It’s hard to be open to failure when you could break production code and have fifteen people swarming your Slack DMs telling you that you broke something. It’s hard when your teammates laugh about you accidentally making everything on the page “fat” because you added padding to an HTML element in the CSS (like the noob you are). It’s hard when you mess up which branch you’re rebasing so you get hundreds of commits that aren’t yours and you have to blow up your entire PR to make a new one and do the clicks of shame by re-requesting the same reviewers. That last one has happened way too many times to count.

But even as I’m typing this, I’m laughing. All of these things aren’t that bad. They’re mostly just funny things I made a mistake on. And I know I’m not the only one. Once you see with your own eyes that even senior developers sometimes make the same mistakes that you do, you feel much better about yourself and become more confident to fail.

Everyone you meet is going to be better than you at something

Photo by John Schnobrich on Unsplash

4. Be a sponge

Recently, I found an iconic new technique of how to eat a banana from one of my new teammates. We were in an online meeting with probably fifty people, but instead of listening to what was going on, I was fixated on one lady in particular and what she was doing.

With a banana in one hand, and a knife in the other, she was spreading peanut butter on the banana in between every bite. Now I want you to all imagine how you would eat a banana with peanut butter.

I can most likely guarantee that it was not that way.

Now I’m not one of those people who eats pizza with chopsticks, but I certainly never pictured rubbing my bananas with peanut butter in the middle of the meeting. Suffice to say, this lady is now my icon. She taught me something new. Now I have no more dreams of going to SF and getting that high TC, all I want is the confidence of that lady to do what she did. In the middle of a meeting.

This brings me to the idea that everyone you meet is going to be better than you at something. But, if you can get them to teach it to you, then you’ll grow tremendously as a person.

Some ways to make the most out of this idea while on your internship is to talk to other people and learn about their life experiences. Ask them questions at lunch. Learn about investing, buying a house, changing careers. Even if this information isn’t useful to you now, it might be in the future.

And in the technical realm of things, ask people to pair program with you. Not just your assigned mentor, but others on your team or even on other teams if they’re free. Don’t be shy. I even paired with a data scientist on my team once just for fun so that he could teach me about pandas and all the cool Python things and I could teach him about frontend and all the cool React things. Needless to say, I learned something and he came out of that meeting more confused about how React works. But at least that taught me that I also need to get better at explaining things!

It’s probably not because you’re a bad learner. It’s probably because you’re just doing it the wrong way.

5. Learn how you learn

I think that this was the hardest thing I had to figure out in my internship and what took me the longest. For the first five months, I learned by reading articles about the stuff I wanted to learn or understand better.

The problem was, it made me feel even stupider. The fact is, I don’t learn best when I’m reading text on a screen. Even when I’m coding I sometimes have to draw out diagrams of how components are connected. I am a visual learner. And I’m sure there are more of us out there. I learn best when I can see a picture of how something works or think about things through metaphors. I learn best by watching YouTube videos at 2x speed (is there any other way?).

It took me such a long time to come to terms with the way I learn best. I kept trying to fit myself into the mold of how I thought a programmer should learn by always reading blog posts and documentation. But it’s not something that you can just magically do if it’s not what’s right for you.

And if you ever feel like you can’t remember something you just learned or that you don’t understand it fully, it’s probably not because you’re a bad learner. It’s probably because you’re just doing it the wrong way.

6. Stop feeling like an imposter

You were not picked by luck to be an intern. You did not slave away at your side projects and cry over trying to understand how AVL trees work just to be handed a job. You especially did not get the job because of your race or gender. You got it because you have potential.

I don’t think this point requires a lot of information. All you have to do is keep telling yourself that you’re getting better and smarter every day. One day you won’t feel like an imposter because you’ll realize that you deserve to be where you are.

7. Be impactful

Now that you’ve successfully learned about yourself and your team, it’s time to make this internship count! It’s time to find out what makes you passionate about your work and figure out how you can combine that with helping your target audience and making an impact on them.

Continue developing your skills and make every internship count!

Good luck on your future internships everyone! Let me know in the comments about what things you’ve learned in your internships or what you’re hoping to learn in the future.

:) maria

--

--

Maria Sitkovets
intern.club

CS Major && Shopify Dev Degree Intern && Twitch SWE intern. I’ve taken to the internet to fill my creative void.