Getting to grips with a new job in tech.
Tags: career, productivity, rails
Published: 2022-03-23 19:11:36

## Week 1
When I started my job, I was given about a week to get to grips with the basic ins and outs of the system and here's the thing about getting to grips with a code-base, all the people out there preaching that you should know how to read code were not kidding. You will read more code than you write. 

I thought I understood Rails to at least a moderate level, but I now know that I know nothing. Which is a great thing, cause there has not been a single day when I haven't learned something new about the rails ecosystem. Funny thing is, some of the things I have been learning turn out to be fairly common place, I actually have to question whether or not I am really a rails dev. (I am now also working on a couple of opensource projects for practice.) Pint is, I spent majority of the first week, just questioning my entire reality and looking like this guy.
![confused meme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dm5qs5ebm195xboe45l3.png)

But are you really a dev if you don't question whether you're a dev? (*cue imposter syndrome noises)

If you're a member of the rails community you know how often TDD is mentioned. As such, I saw this as a great opportunity to practice my TDD and offered to write tests for the system. This was me jumping the gun cause once I saw the size of the system... let's just say I will be writing tests for a while. Time for me to get really comfortable with minitest. (Note to self, get a wrist rest.)

## Automation
It's always a good thing to automate your workflow where you can. And who doesn't like to burn a couple hours writing an automation script every now and then. 

My automation wasn't all that extreme. Just one command  `work` and it will open up VS Code, start up the rails server, open my browser to the server URL and open a separate terminal running the rails console. Simple command and it gets me into work mode real quick. It also loads up my work timer in the browser. (still working on some selenium magic to start the work timer, but this has it's own problems)

More automation will come through eventually, especially with the testing.

## Separation of Concerns.
Recently realized that the mistake I consistently make is having my gaming PC also function as my work computer. And having this setup by my bed also means that I can spend a cool 15-18 hours in my room because, well... WFH. This is *very* unhealthy. Add on the fact that because of timezone issues I choose to work mostly at night cause it's easier to get assistance (and the fact that daylight attracts bugs. *cue vampire hissing)

All this is just really unhealthy, but not to worry, I am planning on getting a new machine for work only. That way I can be more mobile with where I work. I still enjoy working at night, I do not think I really want to change that. It gives me a couple free hours during the day to enjoy the outside.

## Discipline
Like many things in life, this adulting thing requires discipline. It's the difference between, _I do it cause I love it_ and _I do it cause I am obligated to_. You can love coding all you want, but if you are not disciplined enough to put in the work, you will always be at a disadvantage. 

I had to set up focus mode on my phone to prevent notifications during work hours. Why? because I'm in Gen Z and I will watch Tiktoks all day if left to my own devices. 
Beyond this I also had to come up with a schedule. Working from home will heavily blur the lines between work time and rest time. I have, on multiple occasions, received a message on slack that offered clarification. Without missing a beat, I just went back to work. Only to realise about 10 minutes in that I am supposed to be on a break.
 
![in and out meme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/spcvug0zhyv61ht5e9lb.png)

A schedule and strict routine is honestly the most important takeaway from my first couple weeks at work. Can't wait to see what else I learn.