> only being 2 years into my job I still feel like I'm thrown into a pit
I think it will always feel like this. The best you can do is learn skills to make this easier to manage (whether they be about learning how to break projects up, wrangle in the right people, or learning technology)
When I was 25 I was one year out of grad school and starting my second job. What worked:
* Living cheaply. My expenses at the time were 2-3x cheaper than what they are now. To be fair though, I also make 2-3x more and my quality of life is much higher.
* Focusing on open source and skill building. I've consistently put in the time after hours and it has really paid off over the years. I've learned lots of small important skills through it. Most importantly I've learned how to GSD which is possibly the most important skill of all - you'd be surprised how many people know tons but just can't produce
* Having a narrow skill set. I've been with Ruby companies most of my career and, while I want to be doing more technical work, I'm now extremely valuable and competitive in the market
* Forcing myself into the toughest problems at companies. At every position I've been in I've talked my way into working on what I viewed as the hardest problems. Unfortunately a lot of these problem areas have little support (few people want to work on them) and it has led me to burnout multiple times, but the technical lessons I've learned working on large, difficult legacy systems have been invaluable in the long run.
* Dating. Having someone to balance me out has been really important. Now I'm happily married.
* Stopped binging video games. I was bad for awhile. In high school and college I played WoW a lot and had relationships through that game that I didn't want to give up, but my personal life suffered. Even if it wasn't WoW I would just play something else. I eventually went cold turkey on it all. I did and do still play some games occasionally, but I'm not up until 2AM with my face to a screen burning brain cells. Breaking this addiction has given me more time to focus on other things I care about
* Maxed out my 401k. Your 401k is an easy and strong investment vehicle. Take advantage of it while you are young
Here would be my criticisms to myself:
* Read all of the documentation. My next job was doing some integrations work at a company with heavy Cassandra use. Nobody knew how to use Cassandra and had I become an expert early then it would've paid dividends later
* Nobody will teach you anything - you need to teach yourself. Software is a tough field as it is very individual and self-driven. I always thought that a good technical mentor would teach me things but that has never happened throughout my entire career. Anything I've learned has been through my own sweat (although, to be fair, companies have enabled me in several cases by putting me in charge of projects)
* Focus on velocity. I've always read that staying productive is good (e.g. good TDD cycle, strong automation, etc), and I've done it from time to time on my projects and it has always been great. You really need to ruthlessly optimize for your time though and that means streamlining your day-to-day so you can do more
* Learn more about personal finance. I bought a new car when I was younger and spent money without really thinking about my goals. Now I'm wanting to buy property and having to budget much harder than I would had I thought about things years prior. Loans and investing can be tricky at first
* Focus on your personal happiness. This sounds obvious but who you are outside of your career is really important. You need a place to go to get away. For me that was playing guitar but I neglected this for a long time. Today I'm picking up more hobbies as well like baking bread and electronics. It's important to disconnect. I tend to fluctuate between things (1 month of after-hours career growth, 1 month of baking, 1 month of guitar, etc)
* Eat and drink well. Seriously, it's not worth living off of peanut butter & jelly and hot dogs. This is the shit I grew up with so I didn't know any better. My wife taught me about good food and it has really improved my life both in terms of health and happiness
* Read books. I used to read technical books but I never read many novels. If I could go back in time then even a novel a year would've been nice
* Burnout is real and it will happen to you if you don't actively manage it. "Working hard" is unproductive and stupid. You want to work smart and that means properly planning things out for exponential automated returns later instead of linear returns that require your sweat and blood as input
* Follow your motherfucking dreams. I've created BS excuses for myself over time and while I've been happy with my career and life there are things that I missed the boat on because I didn't stay dedicated (e.g. playing guitar out with bands trying to hustle and tour). Put in the time now. Don't put it off
* The "superstar team" surrounded by people of passion is a lie. Well - not really a lie, but it's not what you think it is. Quit trying to find the job with "amazing people". Putting expectations on other people to make a job is a recipe for disaster - join a place you like and that has growth and be the bar-setter