I use the following guidelines when joining a new job or work project. While I frame them within the confine of my job as a software engineer, they can be applied to almost any undertaking...
Don't be afraid to do so. Don't hold back when starting out. You're not expected to know it all. Remember that! You see that brilliant senior engineer there, the one you think is a Jedi at her job? She didn't learn it overnight...she's been at it for years. Don't forget to frame it that way. Often, we forget how much effort brilliant people have put into their craft, and we beat ourselves down for being beginners. All brilliant people started like us, knowing nothing. The fastest way to learn is to ask good questions. While it's great when people have the answers, you don't even need them. Simply asking questions will get you to think deeper, because you'll want to formulate them right, which brings us to our next point.
Before Asking a Question, Formulate It Clearly in Writing.
I can't tell you how many times I've resolved my own questions after writing them down. By forcing yourself to write your question down intelligibly, you are helping yourself understand what it is that you want to ask. If you can answer your question after writing it down, great! If not, you now have a clearly explained question for another person to read, and hopefully answer.
Don’t Be Afraid To Ask Questions, but Only Ask Them Once.
One praise I've heard from multiple managers of mine is that they never have to answer the same questions twice. Personally, I know I've asked the same thing twice before, but if they don't remember, that's for the best! I take my coworkers' and bosses' time seriously. We are smart people, we are engineers (ok, technically we cannot call ourselves that in software). Write down answers, take notes, record things, create post-its, create flashcards, just don't ask that same question again. If ever you forget, just make sure you ask someone else the second time!
If All Fails, Just Ask That Stupid Question
When picking up a new development ticket or an obscure bug, it is natural to feel completely lost. You might need context, and asking people is the fastest way of getting it. While others may not be able to directly give you what you want, their answers can constitute breadcrumbs to an eventual solution. It may feel scary to ask questions. You may think: what if they think it's a dumb question? I won't tell you there are no dumb questions because there sure are, but if you are absolutely lost and unable to move forward, even after spending reasonable effort and time, move your pride aside, and accept passing off as an idiot for five minutes. It may prove fruitful. Just go ask that dumb question, on a Slack channel or to a senior peer you think may know.
Remember That Learning New Things Is Not Supposed To Be Easy.
If it were, everyone would be learning the hardest things there are to learn. While learning can be a joy, it can also be a pain (ask any PhD student). It's especially painful when it's not something you would decide to learn of your own accord, which sometimes happens for work. Whether you have to figure out how two systems communicate, find how this decryption algorithm works, or painfully discover a quirk of Python (there are too many to list), sometimes you just have to suck it up. This is true everywhere, not just in software. The trick is: take it slow and be gentle on yourself.
The hard thing about taking notes is to keep them organized and relevant. One great solution I have found to this problem is to use a graph-based note-taking method. I personally use Logseq, but there's Obsidian, and many other free or open-source alternatives (I first got introduced to those through the YouTuber Shu Omi, link to the relevant video attached). The difference with traditional note-taking apps and methods is that you can create hyperlinks between notes very easily, group them by tags, add to-do lists etc. It is a powerful way of keeping your knowledge organized. If you don't care about graph-based note-taking systems, any note-taking method is better than none, so just use one.
You Will be Frustrated
That's ok, as mentioned earlier, it's part of learning. If you keep bumping into a lot of frustrations and can't get unstuck, remember to take it easy on yourself. Take breaks, have hot tea, or better if you have time: go for a walk. This will help you clear your head. You want to get your brain off the problem for a bit and come back with a fresher one. During your break, you might even get an idea or two on how to solve your problem.
Yay! That's my first blog post ever! Probably no one will read it (apart from my close family) and that's fine. Simply posting it feel like a success, as I am a pathological perfectionist.