Background
I'm currently in my 3rd week as a dev intern at a SaaS company, Before this I was studying on my own for about 6 months, and then with a dev course provider for another 6 months. I'll be sharing my experience throughout this 10 week internship - writing about what I've learned throughout the journey and what students can expect when entering a dev role.
Unit testing
This week was centered around learning more about how to write effective unit tests and even more importantly, what to test.
One of the major hurdles in writing these tests is dealing with nested functions. For example, writing a test for a function which calls on another function, which in turn calls on another http request function. The problem is figuring out how to pass in the correct parameters for these inner functions, which may include secret keys or specifically formatted data, and then dealing with HTTP request inner functions which is a whole other beast.
The solution seems to be to create "mock functions", functions which exist in the test file, and return the value with out requiring certain parameters and http requests. My main focus for the coming days/week will be to try and understand how to properly write and implement mock functions, which I believe will make creating unit tests a lot easier.
My first pull request
This week I made my first pull request to the master branch. It was a set of unit tests for one of our services. Was I confident in the code I submitted? Not at all. In fact, I'm pretty sure it is riddled with mistakes and probably a long way from "clean code". Despite this, I'm looking forward to it being reviewed and getting some feedback on what I can do better and what I may have missed the mark on.
Sprint reviews
I attended a company wide sprint review this week. It gave all the teams, including dev and UX teams, a way to present what they have been working on in the sprint (last 2 weeks) and share there successes, any difficulties or setbacks they may have faced. It was really cool to see how my team presented their weeks work along with getting to see what all the other teams have been doing, giving a more birds eye view of how the product is progressing as a whole.
WFH/office
One of the great things about the company I'm interning for is that they allow work from home days. I've been going back and forth a bit on often I should come into the office. Coming into the office provides me a chance to talk to more people, potentially learn more, and to be in a room with people who know way more than me. I did intend to come in everyday for these reasons, but I am seeing that almost all of the devs WFH the majority of the time, which kind of defeats the purpose of me coming in.
Staying home does give me more time to work as I don't have to commute, and that extra time can be pretty valuable on a busy schedule.
I've decided that 2-3 days in the office would be best, and I'll try to make it the same days that most other devs come in.
Next week
I plan to continue the unit tests, I'm also gonna be keeping an eye on other bug tickets, or any other tickets that I feel I may be able to contribute too. I'll also try to get a solid schedule of what days I should come into the office.
Reflection
Making my first pull request was the highlight of this week, although it was slightly intimidating, it's great to finally make a contribution to the codebase. I've alsocontinued to learn more about unit testing and getting more familiar with the codebase.