Profile picture

Learning Quickly Q&A and Videos

About Learning Quickly

How do I get domain expertise?

Entry-Level Software Engineer at Taro Community profile pic
Entry-Level Software Engineer at Taro Community

Hi Taro community,

I currently have 1 YOE as a SWE at a large bank and I am on STEM OPT. I want to be more intentional with my career.

In short - I want to know how to get domain expertise. My tech stack is mostly python, SQL, and some Angular. In short, I don't feel like an 'engineer' at all and since it's a bank things don't move that fast and I feel like I will get complacent or obsolete with how fast the tech landscape is evolving with artificial intelligence.

My issue is I don't think I am gaining the 'depth' of knowledge that I would hope to acquire. I am just working on stories as they come and the knowledge I am getting is mostly proprietary to the org I belong to. I can't see how transferable the knowledge will be.

I am trying to figure out what my next move should be. So far I have tried:

  • Applying to other jobs. The bad thing is that the tech job market is awful and while I don't mind leetcode, it becomes a parasitic activity that leeches on my free time.
  • Switching to another team - roadblock here too. We have a hiring freeze.
  • I've had some luck interviewing with startups but unfortunately a lot of them don't sponsor. I actually think that had my visa situation not been a problem, a startup would be a great way to supercharge in improving my skills.
  • Build projects - I've seen this advice on here before and it seems like the only wiggle room I have until something better comes up. But, as far as projects, past a certain point they are just toys I feel - they lack the complexity, and business context that makes a good engineer. I mean after all, engineering is a team sport. Also, I am not sure how it gives me the 'depth' that I want.
  • Courses/Technical papers? This is another option I am thinking of: maybe start or join a reading group for technical papers and try to re-implement and discuss the concepts discussed? Maybe brushing up on computer science fundamentals/system design will help?

I am a little worried because it seems like I will be at this job for a while - which is not a bad thing because I'm very lucky to have one to start with, but at the same time, I don't want to be left behind.

Thanks for reading and I look forward to reading your comments!

Show more
Posted 2 months ago
44 Views
2 Comments

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