Ask HN: I feel sad about my life and job, and do not know what to do

37 points by throwaway476 ↗ HN
I am 20 years old and I am on my first job as a backend web developer. I feel crushed by it.

There aren't many people beside me who work on the same project. I feel like the code base is a mess. Bug fixing is really hard, because it's hard for me to understand what is happenining, and there are little to no logs left when a bug happens, and it feels very exhausting to think about how the software works even on a high level due to a lot of cases/weird behaviour in the code. It sometimes just feels impossible to find out why something happened when all I have is a stack trace and messy logic spread out in multiple different layers.

I've never worked before. I've never been actively part of a large and complex software project before. I do not know - is this normal ? Is it normal to be so hard to understand how it all works ? I am told that I am doing well on it - but I feel so uncertain about everything, because I have nothing to compare to.

I do not have many friends. Just two. And I feel lonely because of it. They are good friends, but we do not go out often together, we do not party often together. I do talk to them everyday, but wish to have something more, to do something more. It's hard for me to talk to people when I go out - lately I've been trying to be more open, more social and also lose some weight so I can at least like myself a little.

But right now, while this is clashing with my job. I cannot stop breaking down. Every week there is something - maybe something little that I cannot overcome and all of my problems start to come down on me. While previously I could struggle through the challenges at work and make it, now I just cannot stop thinking about all the things I do not like about myself, my friends and my job.

Do I try to leave my job ? My colleagues are good people and from what I can tell are very skilled developers. I might lose a good opportunity to learn a lot. I need income too and other companies might not be better off.

47 comments

[ 4.5 ms ] story [ 110 ms ] thread
>Bug fixing is really hard, because it's hard for me to understand what is happenining, and there are little to no logs left when a bug

All I can say is that is pretty much normal...

I can relate. I (and my friends) went through exactly same "challenges". Challenges are there to be solved, what you are experiencing is not the end of the world.

Your situation seems like a mix of depression + imposer syndrom + not exciting tasks at work:

Job: you are 20, it's totally fine to quit and do something else. Even something completely different. This is what the 20's are meant for. Find something you enjoy. I switched from marketing to development at age 27. It's totally fine to do job-hopping at this stage.

Friends: talk with them honestly. Tell them what you feel. Most likely they feel the same and will open up. Suggest actives. Start with small things, like drinking coffee every Sunday at the cafe around the corner, Xbox night every Wednesday, etc.

Don't worry, you won't lose any opportunity. If you don't enjoy it, it isn't meant for you anyways.

Good luck!

You're only 20. Chill. Hard work pays in the long run. Your mental state is clouding your ability to focus, so try fixing that. Write down intrusive thoughts to deal with them individually. You already have the goals of more friendships and better fitness health, you just won't see immediate improvements, so break it down into manageable chunks. Log progress. To lose weight, 85% proper diet and 15% exercise. Don't leave the job simply on a whim. But if a job makes you miserable and you have other options then explore. You being young means you can wander further sideways in the cone of possibilities. We all struggle. Keep your head up and looking forward, there's not much else that's better to do.
Sorry you're having a bad time. I'm old, but can still relate.

On the codebase, yes, most are horrible, unfortunately. Try to think of it as your opportunity. If you can learn to comprehend and fix code like this, you'll always be in demand, because these messes will never end.

Try to enable more logging and debug info as best as you can, and learn to use the tools available for this.

If you're getting positive feedback, that's good. Most jobs offer little or no feedback until things go bad.

As for weight, you should let yourself up. Nobody who matters cares, and it really doesn't matter in the big scheme of things. You might find intermittent fasting interesting.

Might be useful to find someone to talk to.

Good luck.

I've been through this a few times, and it's normal. For me, step one is just acknowledging that it's normal and then forgiving myself for not being able to meet my own standards. It's taken me a solid six months to a year to really feel like I understand some codebases. Everyone struggles and goes through that period where they understand nothing.

I believe in you, and I think you can do it if you want to. Try breaking down your problem into small steps. Find a surface that you can attack to get more information from the system. If there are no useful error messages / logs coming from the system, maybe that's what you should start improving first.

I've also struggled with the burnout and social issues. That's life. I've struggled with not having many friends. I have maybe two friends right now, and we don't see each other often, because we're in different fields and we have very different schedules. Right now I'm filling my social needs by having a Slack channel that I've set up, and invited a couple of local developers to. It's slowly growing as more people are invited and we chat here and there throughout the day. It's like a tiny HN community - people who have similar work and interests. We give each other advice and often these people help me find a new approach to solve work problems.

I hope my thoughts are helpful, good luck.

Neat idea. Taking join requests?
If you want to join, by all means. PM me your email address and I'll send you an invite. We're all located in a specific region right now but that doesn't make a difference.
I think the issues you are facing at your current job can and will be present in any job you take in the future.

My only advice to is to build a life that doesn't revolve around work. Its tough to do, but necessary to get out of this funk.

I think this is common with people new to the full time work force. Your entire childhood is spend grinding and stressing over 'getting a good job to earn money and be happy'. Well, you can have the job and the money, but nobody tells you that happiness is not a given.

Find out what things you enjoy to do outside of work. For me, its outdoor activities/hobbies (hiking, biking, skiing, rock climbing, camping, etc), and making art. I try to do something related to one of those activities every single day. Working is just a way for me to make enough money to have a place to sleep and afford what I like doing.

In essence, find a reason to get up excited in the morning other than going to work.

That's why they call it work, it isn't always going to be fun or easy.

If your employer thinks you are doing well, you are doing well.

Not having a job would complicate things more.

Focus on work while you are at work, focus on you outside of work, stay close to friends and family that care about you. Take up a new hobby, join groups with similar interests. Find people that like/care about you. Exercise and eat better, healthier.

As far as work, yes most code bases are a mess.

It can be difficult to track things down and understand what is really going on. Keep at it and you will get more familiar with it.

Start adding your own logging and messages to help you understand what is going on and providing more details when an error occurs, this will help you and make the project better.

Therapy therapy therapy.

I know how you feel, and my guess is that there are probably deeper things going on than just the surface issues with difficult bugs at work. You mentioned loneliness, I'm sure that's something a professional can help you with.

If you have health insurance I recommend seeing a counselor of some kind.

I am sorry things aren't going well for you. I am 27 and still feel like that in most jobs. I've learn to leave with it. What has helped me the most has been focusing in work at work and then pick up a hobby. Try anything, even things that you didn't know you were interested in. I suck at sports but I am trying Crossfit and is helping me in self confidence and as an exersice. At work I used to eat at my desk and try to "complete" what I will be working on. But what has helped is to take a break and go to the lunch-room and try to eat with someone or go out with your team mates when possible. I am an introbert and this things have made a big difference for me. Also I know life is challenging but I would recommend to practice being grateful with what you already have and where you are at. Life will get better and somethings worse, but try to stay positive and grateful.
Yes, messy codebases are the norm. some places even have broken build systems, broken configuration systems, that make even the simplest things incredibly difficult to work with. sometimes you have to develop remotely, making everything much harder.

It's pretty normal for work to be No fun. That's just the way it is. Save up as much money as you can. Live as frugally as possible. With the savings you can retire early and never have to work again.

Depending on the scale of the backend... If it's such a mess perhaps there is a business case for you fully understanding it with the intention to design and build a better thing? One that is very well documented and fit for purpose?
Good to see you starting your career at 20, by 25 you will have 5 years of experience and if you didn't fool around those 5 years you should be able to build great things. Opportunities will be plenty.

It's extremely normal to see everything as a mess. Remember, Software Engineering has been around only a handful of decades. Don't get discouraged.

My advice is:

* Sleep 8 hours every day (this is a must, non-negotiable)

* Eat a clean diet (avoid popular diets, stick to the basics)

* Do some exercise, 4-5 times per week

If you have those three points, everything around will start to fit. Your social life will improve, and you will be more productive at work.

Better days will come.

I know you said "avoid popular diets", but I highly recommend researching the ketosis metabolic process. I lost about 20lbs in 3 months and I have much more mental and physical energy. A lot of other hackers I follow on Twitter have had similar results.
Sorry, I've always had an athletic shape. Even as a kid, I ate clean. Lots of fruits, vegetables, only drink water, avoid sugars, and white bread, etc. The basics for a nice diet.

I haven't followed the trend of the Keto movement, but I'm hearing amazing results to others. Glad it worked for you, and congratulations on your new body.

Yeah I was raised similarly (in addition to being a Vegetarian), but let myself slide down the rabbit hole of laziness (desk job) and poor diet (fast food) in my early 20s.

My wife actually learned about it while studying for medical school. It's much more rooted in actually science about how the body actually processes nutrients as opposed to a "woo-woo" fad diet. The goal of Keto is to shift your metabolic process into ketosis so that your liver produces ketone bodies to burn healthy fats as a source of energy once your have depleted your glucose storage.

Basically what researching Ketosis has taught me is that you shouldn't just avoid sugars, white bread, etc. but also limit certain types of fruits, vegetables and whole grains that are high in carbohydrates as they are ultimately converted to glucose and trigger an insulin response. There is some fallacious logic that just because something is a "whole food", "natural" and "not processed" that it is good for you.

Honestly, all you really need to know is that you just have to limit yourself to under 50 net carbs per day to achieve the metabolic state. I highly recommend trying it even if your goal isn't to loose weight as it can lead to better mental performance, reduced risk of heart disease and higher energy levels (as your body burns fat slowly throughout the day as opposed to getting some carbs and then crashing repeatedly).

I second this. I started developing just a couple of years early with you, I have ~10 years of experience now. On the first few years, I gained a lot since what I do all day is work eat and sleep.

Explore new things outside of work, which could be hard at first but you'll get better at it once you do it constantly.

You sound like you might be on the verge of becoming depressed (if you aren't already there). There are also some unsubtle hints that you're experiencing impostor syndrome.

You aren't alone. I suggest looking around and seeing what resources are available to you. Personally, I benefit immensely from weekly therapy, but this is not available to everyone.

They definitely already depressed. Need to call up a therapist and book an appointment for tomorrow afternoon, go, and then start to feel better.

Not sure where to get a recommendation for a therapist -- best thing is to just call, book the appointment, and go. Tell them your problems, ask what you should do.

Then go from there.

If that therapist sucks -- I figure 35% will -- then do the same thing with a different therapist.

Find someone close to your office or home.

...will add that, yes, a terrifically-horrible code base can and will depress you -- as in, clinical depression.

i think just like anything, spend some time studying the code. maybe it will eventually start to make a bit more sense once you become familiar with the over-engineered, abstracted-to-hell piece of shit object-oriented codebase.

A couple of people mentioned depression. I am a little scared of ending up in such a condition. I will maybe try to find a therapist to visit. It has been on my mind to go to one, but I have been and still am afraid it might go wrong ? Since I was little I've had this very active imagination - spacing out to some fantasy world is a constant part of daily life. I do it while walking, listening to music and often while I am around other people. Day dreaming helps me escape life for a bit and I am scared to talk to anyone about it. Because it's silly and sometimes concerning - I think about saving the world, climbing mountains, visitting other worlds, or hitting/killing other people during some conflict (imaginary people, not those from my life). It's a big part of me and I've never talked to anyone about it. A therapist might make me talk about it and that scares me.

Thanks for the advice.

Sharing aspects your inner world with another person, especially a person who is nonjudgmental, may be quite a validating and relieving experience for you.

A therapist can't and won't make you talk about anything you don't want to talk about. What you share (or don't) is entirely up to you.

In 20 years of programming I have learned that all code is terrible, some is tolerable. You will get used to it.

What fixed my recurring unwanted thoughts was going to a meditation meetup. It takes some practice but you can get to a point where unwanted thoughts do not upset you, and eventually they will go away. It helps to meditate in a group, and you may find some friends there.

What helped me a lot with social stuff was CrossFit and Martial Arts, and dance classes. These things will make it easier to get dates and you will make friends. They are hard but if you keep going to class you will get it. It helps to have something to look forward too after work. It was kinda funny, when I first started swing dance I was way more nervous then in martial arts, but in swing dance there were not 200lb guys trying to punch me in the face!

Are you still doing Crossfit? Since I've began working remote I've really done nothing after work and I think it's starting to effect me. A Crossfit place opened near me, and I've considered joining but wasn't sure if I would like it.
I am still at it after 4 years, though my attendance has suffered since the kids arrived.

Crossfit is the only fitness regime that has done anything for me. I think this is because I don't have to think or plan I just go to class and do the work and go home. Also they adjust the difficulty level so it is just on the edge of what is possible for you to do.

It was an ego shock when I started out and all the girls can lift 3x the weight I can but I think that was good for me.

>What helped me a lot with social stuff was CrossFit and Martial Arts, and dance classes. These things will make it easier to get dates and you will make friends

Is it really easy to get to know people in those situations ? I am awkward with people atleast for a month after I meet them. 2-3 years ago I went to the gym regularly for half an year, but didn't manage to befriend anyone there or even get to know somebody's name. Maybe I wasn't trying or the gym is just different...

I will have to try search for something related to hiking/being out in nature. It's been on my mind to do something that makes you feel alive - that generates adrenaline ? I am a little fascinated with how humans fit in nature and what it takes for us to survive in the wild away from civilization. And in general the idea of overcoming physical challenges of your body. Even though I am a softie... Maybe there is an activity like that.

People go to the gym to do a specific thing, it's not a great place to socialise. Group sports is definitely more socially oriented.
Building a large code base takes years. Understanding large code bases can take about the same amount of time. Don't sweat it and try to learn from the skilled people around you. They probably have a few tricks to reduce the time required to understand the next one.
I think you're mainly new to the discomforting/uncertainty part. Take it slow and in steps. The uncertainty is always gonna be there in some shape or form. I've learned to embrace it at this point.

Great to hear you've been trying to be more open. Continue improving on that!

You should consider developing a true hobby outside of work. When I was your age I got really into boxing (I had never really played sports before), and it gave me an aspect of my life that was much different than everything else, a new social group, and the opportunity to build confidence (both mentally and physically).

For you boxing might not be the right choice, in fact, it probably isn't! But something like running, climbing, weight-lifting etc.

I believe strongly that many young men benefit from healthy stimulus, often physical. Otherwise we get restless, bored, anxious, and depressed.

As others have mentioned, it truly would benefit you to discuss this with a therapist. Even though you are using a throwaway account, I can tell that you're still holding back a bit. You need to openly express how you feel with another human being in an environment where you feel safe to be your self and to just let go.

From a personal perspective, you are not alone. While some have pointed out "that's why they call it work", there are others of us that have felt that crushing weight and know something isn't quite right in a future full of that experience. It's normal to feel that way from time to time. It's abnormal to feel that way day in and day out. And it doesn't necessarily have to be a mental issue. It could just be that you are only 20 and you might be finding out really early that this career path isn't for you. Regardless, please do take some time to seek out a professional and openly discuss it.

A few bits of advice which I have collected over the years. Hopefully something rings true for you: 1. Complex software systems are HARD to work on. I think everyone in the industry struggles to piece it together. And you are young, so it probably will feel hard and complex. I think you are on the normal path.

2. Maintaining balance in your life is HARD. Keep those friendships up, keep trying to socialise, you're doing the right thing there.

3. Counseling/therapy are really good things, don't be afraid to try that option. Different people get this different ways - either through religion or through referral from your GP (doctor) or go privately, or talking to eg grandparents. So find something right for you.

4. Try to untangle the problems from each other. Your work related stress and your friendship/loneliness don't have to be a tangled mess. Straighten those things out into separate issues. The metaphor I use is to have separate containers for work stress vs family stress etc. Keep things in their own box and practice not letting those things influence each other too much.

5. Sometimes a job change is the right thing, and can make a big difference. Even if it seems like a job SHOULD be fulfulling and fun and rewarding, it might not be the right job for you. But to try and evaluate this rationally, and make a move for a positive reason.

6. One thing a counselor once told me: it's like you have a devil on one shoulder and an angel on the other. They are both wispering things in your ear (good and bad). Try to keep those little characters the same size. Don't let the devil seem so big that you are only listening to him.

7 It sounds like you have had some positive feedback, so really try to let that sink in and not doubt it. If someone told you you are doing well, well you are, so take that to heart and get some comfort from that, get yourself a treat to celebrate that.

If it makes you feel any better I had a similar experience as you with my first software job. The code was terrible, no documentation, no one understood it, crippling design choices, etc. In fact, every job I have had since has been more or less the same with respect to inheriting a new codebase that is difficult to work on, feeling overwhelmed and unproductive.

The difference between you and me is that I’ve been through it a number of times, so I know if I stick with it for a few months then things will start to make more sense and slowly I’ll begin to be productive.

One tip I recommend is to read up on unit tests and integration tests. They are helpful because you don’t have to know how the code works to get started and by the time you are done writing them you have a much better understanding of what the behavior of the code is at least. Having good tests serve as documentation and help you to detect if your feature/bug fix will break anything else. As you do this you will feel some ownership of the code and will feel like you are improving things vs making things worse.

Another tip is that your job is just a job. Don’t make it a big part of your identity. You’ll likely move on to another one at some point, so if you’re feeling overwhelmed and stressed then stop putting in 120% and instead put in 80% and figure out what it is that you need to be content or maybe even happy there. Communicate regularly with your manager about what you are working on and where you need help. They want you to succeed and a good manager will not be bothered by you reaching out for help.

Don’t make your work friends your best friends because they will leave or get the promotion you didn’t or take advantage of your work or whatever. I’m not saying don’t be friends with them, just don’t make them a critical part of your happiness. Find something to do outside of work that you can get excited about and make it a priority to meet people.

Use your vacation time, burnout is a real thing and it can really kick your butt. If your employer guilts you for taking vacation time then they aren’t a good employer. Put in your 8-5 and that’s it (except maybe for the occasional crunch time if absolutely necessary). People will respect you for keeping a good work/life balance and it sets a good tone for the team.

Find a mentor at work who isn’t on your team and you can be candid with. They will probably be able to give you some good advice.

Only leave your job if you have another job lined up. I suspect if you stick with it you’ll get past this bump on the road, but, as others have said, many things will not go away with a new job.

I've been doing this for over 20 years and unfortunately what you describe is pretty much par for the course in this industry. What is a bit unusual in your situation is how early in your career you are feeling "crushed" by it. It usually takes years, if not a decade or more, for young developers to "burnout."

Your job as a developer will forever be triage and tourniquets. Take a look around your development department(s) and see how many people you find over 40 years old. Chances are there is disproportionately less than those in the 20's and 30's, if you find any at all. Have you ever wondered where all these "veteran developers" have gone? Based on my experience, anyone who has spent any significant time in software development has either moved into a management role or they have outright left the industry.

You are probably feeling pretty discouraged at this point and questioning the next 45+ years of your career. If you have any other marketable skills, and someone is willing to pay you for them, I would honestly recommend getting out as soon as possible. If you do not have said skills, start thinking about what you would rather be doing and acquire the required skills to make a transition. In the interim, do everything in your control to limit your frustration. The biggest action item here is to keep the number of hours you spend smashing your face on your keyboard to a minimum. This usually means working on software for about 8 hours per day, 5 days per week and no more. Spend the rest of your time doing anything else, preferably not related to technology. If you cannot complete your employers tasks within that Mon - Fri, 8 a.m. - 5 p.m. schedule, you need to reevaluate the way you work.

Some things to consider when looking for what to change:

1) Is your application using a well established framework and design patterns? If not, this is probably the source of a lot of your frustration. Most of the day-to-day issues related to development have already been solved by someone smarter than you. A well designed framework will lead to good application flow and an overall simpler code base. Don't reinvent the wheel!

2) Can any part of your development process, like integration and testing, be automated? Automating even simple tasks can add up to significant time savings over the coarse of a development cycle.

3) Break your application down into small, isolated and well defined parts to make the larger overall application easier to understand and work on. I like to follow many of the Unix design principals laid out by Doug McIlroy, Eric Raymond and many others to help me accomplish this. Ex: Do one thing and do it well.

4) Isolate the hard to understand or debug legacy garbage from the rest of the application. This will help prevent the propagation of less than desirable workflows to newer/cleaner portions of the application.

5) Refactor and replace some of the less than desirable workflows moving forward. You maybe able to make some of these changes in-place, but if you cannot swap out parts of your app due to complexity or other reasons, look into replacing the functionality in question with smaller, less complex parts for new portions of your app.

If you find yourself working for a company that wants you to put in as many hours as it takes, doesn't see the value in making any of the above changes or is on some autistic journey to create their own in-house framework or design patterns, then it is time to find a new job. After working for a number of these companies over the years, I can tell you that there is nothing you will be able to do or say to convince these employers to help you save your sanity. They all seem to have this "well if you can't do it we will find someone who can" attitude that will ultimately lead to a newer, younger candidate they can use up and burnout.

Invest some of the time you have allocated to not working in your personal relationships and self care. This includes 8 hours of...

Your job isn't your life. The problems with the code aren't your personal problems. It can definitely feel like it at times, but they just aren't.

You'll move on from that code. Probably to some other code that is also fresh hell. Doing a good job in our industry is hard. Doing a great job in our industry is neigh on impossible.

Take it one day at a time. I worked on a product for 5 years and couldn't tell you all the moving parts. I'm now 3 months in to a new job and the complexity of the software I'm working on is absolutely overwhelming, but you start small and work towards the bigger problems.

Stop complaining about the nasty code. Master and fix it.

Hit the gym for the mood benefits and minimize carb intake (favor protein).

Carb isn't that bad as long as you're burning it.
I burned out for the first time when I was 20, it was during my first job as a software developer. After five years of introspection the reasons I burnt out were as follows:

* I was extremely introverted and did not reach out to others. When you're 20 its easy to feel like you're the only one, but the older I get the more I realize the second you reach out you're met with a tidal wave of "Me too" as almost everyone has felt similar but not identical feelings. Family, friends, coworkers, professionals (therapists, doctors, etc). have in my experience never failed to support me the second I reached out to them.

* I allowed my thoughts to turn almost entirely negative/cynical. The mind does this weird thing where you begin to fear what MIGHT happen so much that there is no more room for positive "headspace". When I started noting the good things in my day there was suddenly less space for negative and cynical thoughts and my overall outlook improved noticably.

* I had a false belief in what my life should be. I was 20, I thought I should be partying, dating, getting rich, instantly and all the time. This isn't the way life is, nor is it what life should be. Don't let popular/instagram-culture dictate your reality. Most of life isn't a highlight reel and that is ok because it makes the special moments (like when you DO get to go out with your two friends) all the more significant.

* I wanted to feel good all the time. I thought, gee I feel anxious/depressed all I want is for this to instantly go back to "how it was". Overtime I've come to realize life was never perfect, or devoid of anxiety, or fear. Life just was. You're not meant to feel good all the time and that's ok too.

In conclusion I think you should not quit, because if you hole up and retreat into yourself it can get much worse. Instead start with the common advice: prioritize life-improving habits like better exercise, sleep, diet, and meditation. This is not an absolute cure, and some days you will feel like you cannot do it, but it will strengthen you and help you reach your overall goals. Then move on to different approaches until you find the one that suits you, for me practicing positivity + forcing myself to do productive things EVEN IF IT MAKES ME FEEL BAD has been helping me steadily.

I know you're looking for an instant cure, but there isn't one. You will feel bad at times. You will feel lonely at times. This is the human experience. But do not let these negative feelings stop you from experiencing joy, happiness, glee, serenity, because they surround you everyday - you just have to let them in.

I hope my advice helps. You are not alone. In fact I think you're in the majority. Let's find a way to help each-other. My email is in my profile if you'd like to reach out.

If you can master navigating messy codebases and making them better and less messy, you will be highly desired everywhere and can make a lot of money. Embrace the suck!

When I delve into messy code (as a consultant, this means all of the time), I always start with at least _one_ log message or interesting thing. There's always a starting point.

Good luck!