Ask HN: I feel sad about my life and job, and do not know what to do
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 ] threadAll I can say is that is pretty much normal...
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!
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 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.
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.
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.
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.
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.
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 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.
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).
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 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.
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.
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.
Thanks for the advice.
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.
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!
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.
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.
Great to hear you've been trying to be more open. Continue improving on that!
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.
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.
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.
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.
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...
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.
Hit the gym for the mood benefits and minimize carb intake (favor protein).
* 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.
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!