Background
I'm currently in my 2nd week as a dev intern at a SaaS company, Before this I was studying initially 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.
Environment setup
When I heard of jobs requiring devs to "set up their environment", I wasn't quite sure what that meant. I could only think of setting up something like VSCode with some extensions. Now that I have experienced actually setting up, I've seen how extensive "setting up" can be: installing CLI's, Kubernetes, 3rd party applications for DB's, creating multiple accounts on different services, getting access to different services, learning the tools to host local environments, joining various communication channels. The list is quite long and 2 weeks in, I'm still customizing and learning my setup.
Unit tests
Halfway through this week I got my first tasks - creating unit tests.
The codebase I'm working with has a bunch functions/methods without unit tests. Obviously, unit tests are important to ensure code is doing what it's supposed to be doing, making future improvements to code easier, improving the debugging process, providing documentation, etc.
My experience with this task has not been without difficulty, there's a level of organization and complexity to the code (I guess it's just OOP on a big scale), which I'm not used to yet, it does make me feel I should have been implemented proper OOP into my code while I was still learning. There's also the fact that the code is in a language I only started learning about 2 weeks ago. But my team has been patient with me, giving me my own time to understand things.
Through doing this task I feel like I'm learning quickly about the codebase and what each small component of the code is doing - making tests seems like the perfect way to learn. I will likely continue building these unit tests into next week and possibly further, and I'm really excited to continue to learn through them.
Teams
There are a multitude of different dev chat groups within the company from a bug-fixing chat to a DevOps chat to separate component chat groups. It's quite interesting to see what the discussions center around and it really shows how important the communication aspect of being a developer is.
I've also been attending daily stand-ups which gives insight into what the other devs are doing and gives me a chance to share my progress and struggles.
Next Week
As mentioned, next week will likely involve more unit tests. Most of the devs in the team that I have been put in have been on leave and are expected back next week. It should give me a chance to buddy up with one of them and have someone walk me through some of the code I've been having trouble with, which I have been eagerly waiting for!
Reflection
This week was great because I got some tasks to do! I did struggle but it's exactly what I've been waiting for. There is still so much I have yet to learn and I need to keep asking questions when I get the chance.