1) Time manage. TIME MANGE! There's always time, you just have to make it. I'm having a hard time buying the "here's three options, pick two" thing that people frequently say, especially in grad school. You can get work done, sleep, and have a social life. Granted, I'm working a lot more than 40hrs a week, but there's still time for all three.
2) Know when to walk away, but also when to come back. When you're really stuck on a problem the best thing I've found is to just walk away from it. Do something else. Let your subconscious mind work on it. (great time to socialize, go on a walk, exercise, whatever) But the thing people frequently struggle with this is that you have to actually come back to the problem. I'm a big fan on spaced repetition and spaced learning. I believe this "spaced" aspect also applies to working. Your subconscious is pretty powerful, use it to your advantage. (pro tip: You can also effectively "multi-task" this way too. But that's harder and I suggest keeping it for crunch time)
3) Be healthy, mentally and physically. If you use any type of tools, you know that you have to take care of them. If the tool you're using the most if your brain, well you have to make sure it is in tip top shape too. Constantly work your brain by expanding your knowledge base. Learn things that aren't in your expertise (this is actually really important!). Make sure you are mentally healthy. Have good relationships with friends (even if you're introverted, this is very important. You need to be able to vent sometimes). And keep physically healthy. You don't need to be swol, just take walks, ride a bike, or whatever you enjoy. Something physical.
4) If you are multi-lingual, deconstruct a problem in a different language (If you're not, see #3). If you know different programming languages (if you don't, see #3), pseudo code the problem in that other PL. Try to solve problems from multiple different angles. You have various "personalities", see how they would solve the problem differently (personalities in how you process thought differently in different moods or with different people).
5) Use the Feynman Methods or the Rubber Ducky method. Being able to explain your problems is a great way to solve it. This can be embarrassing at first because if you use a person as a sounding board it can end up like: walks into room "Hey, I have this problem" explain. WITH DETAIL and exactly where it is going wrong "Oh!" rushes out of room. If you can find a good colleague to use as a soundboard, use them. Someone that asks a lot of questions. Additionally, when you are learning something, always try to pretend you have to teach it to someone. It'll naturally make you think of edge cases and you have to be more eloquent in how you describe things. You can also mentor junior staff, then both of you benefit.
6) Write things down. Use a calendar. Use task lists. I place lots of events and things into my calendar and just the act of writing it down forces me to remember. I enter items into task lists and I'll usually remember. But if I don't, I have a reference. This is a great way to ensure those fleeting thoughts don't get lost. And when studying (which you should always be doing, see #3), I HIGHLY HIGHLY HIGHLY recommend using pen and paper. It slows you down, and that's the point, see #7.
7) Slow down. Do things the hard way. Be mindful when you do things. Be involved. Your mind needs time to process things and push it into your memory. You have a stack, some RAM, and a hard drive (with multiple layers of efficiency). (if you have a problem with this: it is called an analogy. It isn't supposed to be 100% accurate) If you never move things from the stack then they are lost really quickly, and the stack can't hold much. Your RAM can hold more information, but again this can be lost. Slowing down and being thoughtful about what you're doing and thinking about will allow your conscious and subconscious mind work on the same task (if you have a hard time staying focused, meditate and see #2. I struggle with this too.)