Read the documentation. Aggressively pursue opportunities to learn new skills.
I feel like your advice is not emphasized enough in tech circles. Our field is constantly changing and evolving so success is often predicated on willingness and eagerness to learn.
Get a better paying job once you’ve got some experience. Raises won’t keep up with your value.
Don’t work yourself to the bone. There really are plenty of jobs that only require 40hrs/wk and pay the same or better.
Work somewhere with a good culture.
This is extremely important. Your best raises and title changes will come from changing companies, not internally.
Don’t burn out! Ask for help and guidance when needed, and take care of your mental and physical health (get a hobby, go out with friends, go to the gym, etc.)
I’ve seen brilliant people burn out and end up leaving/missing out growth opportunities because of it. Now that I manage people, it is my biggest area of focus because many times the best employees are the most at risk. They keep getting praise and asked to be involved in more and more and it becomes hard to say ‘no’ to new projects, responsibilities, etc… Until it is to much.
When it happens everyone looses, your boss, your team, the company, and especially you.
a million times this, so many young people overwork themselves and burn out quickly
I cringe whenever a see someone has checked in code at 1am on a weekend, and these people are also working normal business hours so it’s not like they are only working at night
sadly it’s usually the same people who never take PTO either
What if my whole problem is I don’t know what I need or what kind of help I could use?
Whenever I work a job that’s too complex for me, part of the problem is I can’t clearly define what the heck is going on to even know what kind of thing would help.
It’s like my brain just start blanking out.
There is no one perfect solution unfortunately.
Meeting a therapist will definitely help to identify the root cause, and eventually will help.
Also, see my post YSK: Understanding the work burnout experience, treatment and preventions
I think the root cause is the complexity. I do a lot better in jobs where the situations might change but the rules don’t. In programming, everything is changing all the time and I can’t keep up. There’s no repetition and if you are repeating yourself you’re doing it wrong.
I need parts of the day when I’m not being creative within a formally strict environment. It takes too much processing power for my brain to do that, and it overworks me.
I know the root cause and the problem is solved because I’m working jobs that have complexity within the range I can handle.
You’re not responsible for the bad decisions made by the people who have positional authority over you. Do your best. Warn them about the risks. Let yourself feel disappointed by their decisions, but don’t ever accept responsibility for them. If you did your best to warn them, then you took your responsibility seriously. That’s enough.
UPDATE: I added some clarifying points in light of getting some of this wrong. I believe the underlying point still stands.
No. I believe I understand why you think so, but just no.
At best, covering your ass means gathering evidence about how much you tried to warn the people making decisions, in order to avoid or deflect blame when things go wrong and someone starts wandering the countryside looking for people to blame. I’m not suggesting that. I’m not even suggesting saying “I told you so.” when things go wrong.
Quite often, at least how I’ve seen it, covering your ass involves not even trying to do the right thing or, perhaps, pretending in public to do the right thing in order to have a plausible excuse when things go wrong. That’s also not what I’m advising.
I’m advising not to accept responsibility for other people’s bad decisions. If you genuinely did your best to influence their decision and they chose poorly anyway, don’t take responsibility for that choice. The responsibly remains with the person who had the authority to decide.
For example, if the OP decides to listen to you instead of to me, that’s not my responsibility. I’ve tried to explain my position, but the responsibility for choosing what to believe belongs with them. I’m most definitely not covering my ass; I’m recognizing that I’m not responsible for replacing OP’s judgment with mine. If they ask me for more information, I have the responsibility to provide it. If they ask me to clarify my position, I have the responsibility to do that. But I am not responsible for convincing them nor for their final decision.
Covering your ass typically involves not trying to do the right thing or, perhaps, pretending to do the right thing in public in order to have a plausible excuse when things go wrong
You have a very different idea of CYA than I (or the other poster). To me, CYA means ensuing you have evidence that tried to do the right thing and were overruled, so that you will can (justifiably) avoid repercussions when the failures you warned about come to pass.
If you’re a developer, read the source code. People will tell you how they remember things working, or how they think they should work. The code is what it is.
I don’t know if that’s obvious for people entering this profession but mind that you don’t read code like a book. Check how the functions you use are implemented. What’s being called from where (call stack helps in the debugger). How are experience programmers managing their code etc. It’s a good skill to learn how to navigate other people code and quickly find the parts that matter