I am moving to a different organization within my current company where I will be working with a new domain and new language (C#)
Looking for some concrete advice to get clarity in terms of expectations from my new manager and also work with him to upskill myself in the new product fast.
I am also looking for concrete tips on how to upskill beyond syntactical on more intermediate and advanced concepts in the new language? How do other engineers approach learning a new language beyond the surface.
Great question! I talk about this in the "Learning The Codebase" section of the onboarding course. My advice is to just dive in:
The key takeaway is that you should get your hands on the keyboard (even if it's uncomfortable).
You should also realize that in a large codebase, the code will follow the Pareto Principle (the 80/20 rule): 20% of the components account for 80% of the impact. So your goal as the engineer is to spend most of your time on the 20% of code that matters to the business and matters to your coworkers. I talk about how to do that here: Figuring Out What Matters In A Codebase
When transitioning to a new domain and language like C#, focus on contributing early. Get your development environment running (as Rahul already mentioned) and find small ways to add value right away. This shifts your mindset from just "ramping up" to becoming useful quickly.
Next, clarify expectations with your manager and peers. Have open conversations about what success looks like and don’t hesitate to ask questions. If you encounter unfamiliar terms or concepts, read up on them and seek help where needed. I have found too many people spend too much time struggling on things that others can help with in a few minutes. Of course, a bit of struggle is helpful, but balance struggle with asking others. In Facebook, we used to have a "rule" that if you have struggled to find answer yourself for 30 minutes and have not found, ask somebody (telling them what you have already tried).
Build relationships within the team, especially with key contributors. Understand how you can help and learn from their expertise. When I have picked new language, it has been very helpful to discuss things about the language with someone who has mastery over the language (e.g., someone in the new team). They tend to focus not on the syntax, but on deeper reasons why this language is good (or not good) for certain situations. That angle helps to learn language (or any other skill) much better.
Happy to answer any follow ups if something is unclear.