What I learned from my first developer job...so far!
Tags: webdev, beginners, career, wecoded
Published: 2022-03-10 20:02:09

Job searching feels like you are adrift at sea with no land in sight. Along with being a software engineer with no formal experience, it can feel like you're in even more treacherous waters. That's why when the opportunity came to apply for an internship, I jumped at the chance to apply. Ultimately getting the green light to join the team felt as if I was given a life preserver and was being pulled to safety. 
It's been a little over a month and I feel so thankful to have this opportunity to learn and grow (in already a short amount of time). Working as an intern allowed me to collaborate within of my field of interest, create features from the ground up, and undertaking multiple deliverables that I had no idea I was capable of finishing. 
So I wanted to pass on some knowledge that I've gained so far onto others and how to make the most of your first job/internship. 

<img width="100%" style="width:100%" src="https://media.giphy.com/media/xUNda0S8WyZ5q5UyTm/giphy.gif" >

Due to living in a pandemic, my job is fully remote. To make an environment most conducive to productivity, I took certain steps when preparing my work space. I moved my desk from room into my living room. Living in a city, this can be a bit cramped for some, but I made it work. This prevented me from working from my bed and encouraged a regime of getting dressed for work (even if it's in yoga pants and a sweatshirt). I didn't want to lose the routine I had in college of taking the time to get ready for the day. I found getting out of my pjs made me mentally prepare for the day ahead. 

Moving my desk also helped me become less distracted. When I'm not coding, I'm a freelance visual artist, so I have art supplies everywhere. I didn't want to work in the same place that I spent time in leisure. Having that clear separation made me know that when I enter my room at the end of the day, I'm off the clock. My room was not a work zone. 

Having a specific place to work helps in respect to setting up a background for meetings. Whether you're working remotely or not, meetings are part of our everyday. Having to attend multiple zoom calls made it apparent for me to pick out different places in my apartment to take these meetings. Having a background filter or working in a place other than your room saves you from worrying about having a messy background. 

When you have your work space set up, and your meeting spots situated, you're ready for meetings. For meetings, I try to have pens, a notebook, a planner, a clock, and most importantly, water. I don't know what it is about working at a desk or being sedentary that makes you drink less water? But doing things like drinking water and taking small breaks will help you in the long run. Personally I still struggle with taking breaks, especially when I get stuck in my code. It's almost like a fixation of having to finish a task before I'm "permitted" to take a break. It's a bad habit I'm trying to break. This is why having a clock near you can help you time yourself. When the alarm goes off, get out of your chair and walk around or stretch. But most importantly, look away from your screen. I've been wearing my glasses more often because my screen time has increased tremendously since working. So be sure to take few steps away from your desk to recharge.

<img width="100%" style="width:100%" src="https://media.giphy.com/media/3ohjV1zeq81MxJcJqM/giphy.gif" >

Having pen and paper nearby can help you record needed information when building a feature, note reminders, and so on. The same logic applies to having a planner nearby to schedule individual meetings with coworkers or superiors. It can also help you plan out your day and balance your workload. By deliberating time for each task, you can have a record of how much you accomplish in a given time frame. This especially comes in handy if you have to fill out a weekly progress report. Having a paper trail of tasks in progress and/or completed will enable you to see how much you get done in a given deadline and will save you time when sending weekly reports to your manager. If anything, I feel a lot better when I have a written record of the things I get done on a daily basis.


<img width="100%" style="width:100%" src="https://media.giphy.com/media/3o6nUZEsJiGga6CXK0/giphy-downsized-large.gif" >

In the meetings with my team, we discuss what our tasks were and the progress on them so far (think of it like a scrum meeting). Usually people will present and talk about their wins and/or bugs they're experiencing. Sometimes we will try to help them debug right then and there, which is the best. Having multiple sets of eyes look over your code can help you uncover mistakes you've overlooked. That's one of the many benefits of being part of a team. If the problem can't be solved immediately, the team of engineers arrange to meet up at a separate time to address the bug. 

Meeting with the other engineers is another one of my favorite parts about my job. Everyone in my team has their own special background and story about how they became software engineers and developers. Having different insights makes our team stronger and brings different opinions and ideas to the table. I found meetings that were held for onboarding or debugging were some of the best to get to know my team. Sometimes, the whole team might not know the answer for a bug, but it didn't stop us from trying new things, looking up concepts, and experimenting to find a solution. In a way, our meetings became team building exercises. So if you can, try to help others on your team. You never know who you can connect with and who might be a help to you! 

When I'm not in meetings, I'm sometimes in individual meetings with my manager to carve out details or main concepts of a feature. When I first started having one on one meetings I was pretty nervous to the point that I would completely forget what was being told to me. I would get lost in their explanations and draw a blank. When I think back to it now, I think it was just first time on the job nerves. But to help me in that transition, I kept a notebook with me to record the specs for a task. If that didn't work, I would ask my manager for references of what they want, which actually helped tremendously. I will note, not all superiors will be open to doing that or even have time to show you examples. But it never hurts to ask. 

If I'm ever unclear about a concept or detail, I reach out to my manager. This will vary to many, being that companies come in a variety of sizes. I'm in the situation where my team is rather small, giving us easier access to our manager. As daunting as this may seem, messaging your manager will help you out in the long run. It will stop you from making more mistakes and save you time on writing unneeded code. Plus, it shows that you are investing in delivering a product to their specifications. Never be afraid to ask. 

Some take aways:

- 1. Treat your work space like your personal office and set it up for success
- 2.Have spots for meetings all set up
- 3.Don't be afraid to ask for help!
- 4.Don't be afraid to help others
- 5.Keep a paper trail of your tasks, deadlines, and times
- 6.Use as many resources as you need (books, articles, videos, codepens, etc)
- 7. Keep your mental health in mind by taking breaks 

Conclusion: 

With what I've learned so far, I still have days where I feel like I often don't know what I'm doing. I'm still shrouded by imposter syndrome, and I find it hard to identify myself as a "real" software engineer. But having this opportunity has not only allowed me to technically enhance my skills, but to learn about what I want from a software engineering job. I know the uncertainty and feelings of doubt are just symptoms of pushing yourself outside of your comfort zone, which is what you need to do in order to grow. As crazy as it might be navigating these new waters of employment, I know for sure I'm more capable now than I've ever been.


<img width="100%" style="width:100%" src="https://media.giphy.com/media/OQsa4Yca9BJFS/giphy.gif" >