Taro Logo
Profile picture

Learning Quickly Q&A and Videos

About Learning Quickly

Tech has so much to learn, making learning how to learn one of the most important things for any software engineer to do. Figure out what you need to do to pick up new skills quickly and properly.

Seeking Guidance on Navigating Initial Tasks, Documentation, and Codebase Familiarization

Mid-Level Software Engineer at Microsoft profile pic
Mid-Level Software Engineer at Microsoft

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:

  1. Targeted Learning from Documents: 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?
  2. Codebase Familiarization: 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?
  3. Balancing Tasks and Learning: 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?

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.

Show more

Learn About Learning Quickly

The ability to learn quickly separates high-performing software engineers apart from the rest of the software engineers. This is an important skill because of how fast technology evolves. Think about all of the new frameworks that are constantly being introduced or new concepts that you have to pick up on. Not only that, you have to learn about business needs, but you have to be adaptable enough to learn when business needs shift.
It’s important to maintain a clear mind for creative thinking and good decision making. There can be a lot of facts, but you can always look them up at any time. Try to understand concepts at a higher level. This can be especially effective to prevent you from getting overloaded with work.
Rapid learners excel at problem solving. By learning quickly, it’s easier to debug complex code because you can understand how different components in a system architecture can interact with each other. Engineers who prioritize ongoing learning cultivate a growth mindset.
A growth mindset is a belief that one’s abilities and intelligence can be developed through dedication and hard work. This is in contrast to a fixed mindset which is the belief that one cannot change the abilities and intelligence that they are born with. A growth mindset encourages individuals to view challenges as opportunities, and it fosters resilience and a willingness to take on new challenges. Embracing a growth mindset involves being open to learning new information and leaning into problems that feel uncomfortable. Individuals with a growth mindset are more willing to accept feedback from other people.
There are various strategies you can use to learn more quickly in a software engineering role. It’s important to focus on hands-on coding and learning by actually doing the work. This means that you dedicate focus blocks where you can code or learn more about something. Leverage the knowledge of your peers by setting up 1:1 meetings with them to learn more about the codebase. If you can find a subject matter expert, they can help you fully understand the context behind a certain implementation.
Be careful about going down learning rabbit holes. it’s important to ensure that actual learning and retention is happening. Make sure to take notes and constantly review your notes or the knowledge will get stale. Taking notes can help you to ramp up quickly at a new company. Make sure to immerse yourself in the codebase and start to run the code and intentionally break things to get a better understanding of how things work.
The ability to learn quickly is a transformative skill in the software engineering world. Rapid learners not only stay ahead of technological trends, but they also contribute significantly to the success of their teams and companies.
Show more