When I first started working after graduating college, I found myself putting in a lot of hours outside of my time in the office. I was eager to learn as much as I could and to prove myself to the senior developers on my time. I slacked off all throughout school, and I was at a point where I was ready to start really putting my nose to the grindstone and working hard. Does working longer hours and more often necessarily equate to "harder" work, though? I was under the impression that the more I worked, the better of an employee I was. Now that I've been working for a few years, though, I think that assumption is a bit naive.
As a younger developer, I definitely had an urge to make a good impression to my superiors and the other developers on my team. It's only natural for a new employee to want to set him- or herself apart. Your employer is providing you with an opportunity despite your experience level, and is likely dedicating resources to training you and showing you the ropes. It's only fair that you return the favor by working extra hard and putting in extra time, right?
That was the leap in logic I made as a freshly-graduated developer working for the company at which I had already interned. On one hand, I felt that I did make a good impression, and I also feel that I did accelerate my learning process by putting in more time. In retrospect, though, I really wish I had established good habits and a more strict "work life balance" earlier in my employment. The habits I set up for myself early on have made it difficult for me to "unplug" completely from work and to take full advantage of vacation and holidays. By working more hours, I also created an expectation for me among my superiors that I was willing to put in extra hours to get work done, which I feel is a very unhealthy precedent to set.
It's entirely possible to "impress" senior developers within the constraints of normal work hours, and I wish I had had the foresight to set good work-life boundaries early on in my career by leaving work at the office as much as possible.
Impostor Syndrome is a state of mind that's plagued just about every one of my peers, and a phenomenon that's extremely common in software engineering careers. It's very common to feel that, when working alongside more senior, experienced developers that you're just "faking it" - that you're not really putting out the same level of work as everyone else. I certainly felt this way early on in my career, and I felt that I could combat this state of mind by working more hours. I felt that I could become a "better" programmer and a "better" employee by working around the clock to shore up my weaknesses and shortcomings. In reality, the shortcoming that I thought I had were either greatly exaggerated in my own head, or totally imagined. An employer that's employing junior developers is already resigned to the fact that those developers are going to need training and mentoring, so shortcomings and weaknesses are totally expected. It's difficult, but a younger developer should try not to feel insecure or ashamed about their narrow skillset or difficulty grasping concepts - it's absolutely to be expected.
The stress and insecurity that come along with Impostor Syndrome originate from within your own head. It's natural to feel insecure and sheepish about your lack of experience, and your employer (hopefully) knows this. Rather than doing what I did, and putting in a ton of extra work, just talk to a more senior employee or ask for more frequent mentoring sessions, one-on-ones, check-ins, etc with your team. Like I said, your employer is already expecting to put time and effort into training you and nurturing you into a good employee, so rather than trying to take all of that burden on yourself, use the resources they've set aside for you already.
More than anything else, I wish I had been able to establish better boundaries with my employer early in my career. Now that I've gained a bit more experience and I'm in a more senior position on my team, I am constantly bombarded with requests for after-hours work and firefighting. Part of this problem stems from my employer itself (I'll touch on that later), but there is an expectation in place that I established very early in my time with my employer that I am willing and able to work after hours.
Now that I'm married and transitioning to a point in my life where I'd like to start "settling down", I find myself putting a lot more weight on work/life balance than I did as a fresh college graduate. From a mental health point of view, the time away from my desk at the office is probably the most valuable time I have. Being able to "reset" in a software job is vastly important. Writing code is a very mentally engaging and challenging job, so I feel that it is paramount to have time away from stack traces, bugfixes, and callbacks.
From a more personal point of view, leaving work at work is absolutely essential in maintaining healthy relationships with friends and loved ones. Being a workaholic means losing out on time with the people that care about you, and it's unfair to them to put more importance on work outside of normal work hours. I feel like this is sort of a "no brainer", but as a young, eager employee, I let this fall by the wayside and now I've learned a lesson to leave work in the office as much as possible.
This is the part of working overtime that frustrates me the most, because it's not overtime incurred voluntarily by the employee. I feel very strongly that if an employer is asking an employee to put in extra hours, that the employer is the one who's messed up. An employer should be ashamed and apologetic if he or she has to ask someone to work an evening or a weekend.
The worst part of where I work now is having a boss who not only constantly asks for overtime, but having a boss who constantly commends and praises voluntary overtime. I feel that's one of the most toxic and unhealthy management practices imaginable. As a junior developer, it felt good to earn praise by working on the weekend or working at 10PM on a Wednesday and coming in early on Thursday. It felt great to get a pat on the back for working so hard. In reality, I was being manipulated into feeling good about voluntarily engaging in a very toxic relationship with my employer, and I was getting rewarded and praised (not monetarily, mind you - that would be ridiculous!) for neglecting my personal relationships and my own mental health. Part of this is, again, on me for not establishing healthy boundaries with my employer earlier in my career. As a brand new developer though, can you really blame me? If you're getting praise and accolades (meaningless title changes and office perks - ugh), you're naturally going to want to continue that action. I lacked the experience or foresight to know I was being taken advantage of to an extent.
If you find yourself being pressured to work overtime hours regularly, I think the best thing to do is to directly communicate your concerns to your employer, or to apply pressure back. It's okay to say "Sorry, but I really can't put in any more time this week" or something along those lines. If your employer continues to pressure you, it's worth being more firm or seeking other opportunities, in my opinion.
It's difficult to quantify what makes an employee "better", but I think employers should focus on ensuring long, healthy careers in their employers rather than pressuring them to work long hours to produce as much code as possible. Burnout is an incredibly serious problem in the software world, and employers should do whatever they can to prevent it from happening.
While it might be difficult as a younger developer, establishing a healthy balance between work and your personal life is one of the most important steps you can take in ensuring a long and stable career. It might be tempting to open up your laptop and just keep hacking away at that function that was giving you trouble earlier at work, but your loved ones and your sanity will thank you if you have the willpower to ignore that desire. Leave your work at the office as much as possible, you'll be better off for it.