Hi Taro Community,
I’m a recent addition to my company and have embarked on my journey with a few initial tickets, completing 3 PRs in the span of 2.5 weeks. Alongside these tasks, I’ve been provided with architectural and design documents to help me grasp the broader system. However, these documents are quite high-level and, at times, challenging to comprehend fully, especially without knowing which sections are most pertinent to my current work.
Given the breadth of information and my eagerness to effectively contribute, I’m contemplating the best approach to balance my tasks with learning. Here are a few points I’m considering and would love your insights on:
Navigating the initial phase and ensuring I’m building a solid foundation is my top priority. Any experiences, strategies, or advice you can share on managing these early stages of onboarding would be greatly appreciated.
Thank you for your support and guidance.
Something I've heard is that "while onboarding, everything you do should have a reason." So don't just read a document for the sake of reading a doc. Rather, you should read the doc with some purpose in mind, e.g. I want to do X, so I will read Y doc to gain context. So my first answer to your question is yes, feel free to ask your mentor where to focus on long docs so you don't waste time. (It takes your mentor a few minutes to answer this question, which saves you hours of time => that's worth it!)
Regarding your second question, ideally you'll have starter tasks that have low ambiguity and are intended to introduce you to the codebase. If you don't, you should ask! You shouldn't simply jump into random parts of the codebase without a purpose (see my first point above)
Your third question is pretty broad; I would look up videos on Taro about how to onboard effectively.
Hope that helps.
Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?
Here are a few ways to know if you are focusing on the right areas:
I highly recommend this: [Masterclass] How To Succeed At A New Team Or Company As A Software Engineer
@Alex any thoughts ?
Should I consult with my mentor on which specific parts of the document would be most beneficial for me to focus on initially, considering my current assignments?
Sure. It won't hurt, but in general, I recommend against reading docs in general. At a Big Tech company like Microsoft, I'm sure a huge portion of the docs will be insufficient and/or outdated. Focus on landing code. Bias towards action.
How should I approach diving into the codebase? Is it advisable to ask my mentor for guidance on specific modules or areas that align with my tickets or overall team objectives?
Your goal should purely be to land high-quality code efficiently for the first 2-3 months. Anchor yourself against the coding tasks and use that to determine every additional action. If you get a coding task, dive into the code, and then have 0 idea how to extend it, then you can ask your mentor for guidance navigating through the task. In general, I don't like asking broad questions (e.g. "Which part of this codebase would be good for me to understand?") as the impact is unclear and it's easy to spend time ingesting knowledge which you then promptly forget.
What strategies have you found effective for simultaneously working on assigned tickets, understanding high-level documentation, and becoming familiar with the codebase? Is there a recommended balance or sequence that could optimize my ramp-up process?
Here is my onboarding strategy:
These are very intertwined. As you try stuff (i.e. write code in an attempt to complete tasks), you will realize you need to talk to people to get the full picture. As long as you're focused on getting tickets in, striving to do high-quality work, and unafraid of asking for help, you will onboard just fine. 😁
As the first comment mentioned, everything should have a purpose. It's easy to get lost in the excitement and anxiety of wanting to make a good first impression and overextending yourself with a bunch of well-intentioned but unnecessary "learning" actions.
I think this other discussion is an excellent relevant read here as well: "How to avoid going down the rabbit holes when learning new things?"