Being an engineer in India is HARD.
You spend years working hard to crack one of the toughest entrance exams for a few seats. Then, grind for four more years only to realize you're still competing for a job in a market with millions of others.
Even if you get that job, nothing's guaranteed. Competition is cutthroat. Every other day, a shiny new AI tool claims to take your job and make you obsolete. It never ends.
The only way for engineers to rise above this is to never stop upskilling. But upskilling is confusing. How do you even decide what skills to focus on out of a hundred?
In this 2-part series, we'll share how top engineers select the right skills, find resources, and apply them to grow.
In Part 1, we'll cover how to choose what to learn and where to find the best learning resources. Let's dive in!
How to choose what to learn
Choosing which tech skills to upskill in can be VERY confusing. New tech releases daily, and trying to learn everything will leave you mediocre at many things.
To make this easy, we will focus on 2 key factors:
- The phase of your career
- The career direction you want to take
First, let's start with the key phases most engineers go through: Learning and Implementation.
What you decide to learn often depends on your current phase.
A) Two Phases for Upskilling
1. Learning phase
If you're early in your career, this is the phase you're in.
Here, you're focused on getting comfortable with the technologies and tools for your job. Your learning choices are driven by your interests—at work and outside of it. You have room to explore and try different things.
For example, Akhil Verghese, a senior software engineer at Google, shared:
During the learning phase, nearly everything I did was based on interest. For example, when NLP was becoming a bigger challenge in the machine-learning world, CNNs made a huge breakthrough in image recognition and were achieving great results in pattern recognition. That was an area I was interested in, so I decided to spend a lot of time on it.
At this stage, don't stress about being overly strategic. You're still figuring out your interests and skills, so narrowing your focus too soon could make you miss valuable skills.
So, let your curiosity guide you and explore while you can.
2. Implementation Phase
The next phase is the implementation phase, and if you're a senior engineer, this is probably where you're at.
By now, you're familiar with the skills most needed to get the job done. At this stage, upskilling is less about learning everything and more about staying relevant. You don't want outdated skills that won't help you grow. So, be selective about what you learn.
Of course, you'll still be curious about new tech, but you don't have the luxury to explore like junior engineers can.
In the implementation phase, I think you need to be more strategic. I've started planning and learning more strategically, thinking about what Google is focusing on, like generative AI. I'm interested in it as well, but if I'm being completely honest, there are other things I'm interested in too. I'm choosing this because I think it's going to boost my career. — Akhil Verghese, Senior Software Engineer at Google
So, in this phase, place smart bets—focus on one or two key skills that will help you reach senior roles.
B) Your career direction
The next factor engineers consider when choosing what to learn is their career goals.
A clear career direction gives you a goal and helps you map out the skills needed to move from point A to point B.
For example, suppose you're a senior engineer wanting to transition into an engineering management role. In that case, you can outline the key skills required and create a structured learning plan to develop them.
This way, your learning efforts are aligned with your career aspirations, allowing you to progress more strategically.
Now, we can't tell you which roles to aim for. That's personal. So, we will share questions to help you figure out your goals.
Brainstorm your career goals
The questions will vary depending on your experience level.
If you're a junior engineer, planning your career path can feel overwhelming since you're still figuring out your interests. Instead of stressing the long-term, focus on the next 1-2 years. Consider what type of engineer you want to be.
Here are some questions to help you set short-term goals:
- What technologies am I curious about, and how can they help me level up?
- What skills do I need to advance in my role, and how can I start developing them?
- Are there any work or side projects that align with my interests and help me develop these skills?
For senior engineers, the questions are different. At this stage, it's about making choices that will impact your career.
As we discussed, you need to think beyond just the next few years and focus on staying relevant.
So, here are some key questions to consider:
- What are companies like Google, Microsoft, or AWS betting on? Keeping an eye on where the big players are investing can indicate the industry's direction.
- Will this skill matter in 5-10 years? It's smart to focus on technologies that aren't going away soon.
- Does this skill help me stand out? Whether it's within your team or across the industry, having expertise in high-demand areas like DevOps, AI, etc can set you apart.
So, set aside some time to think through these questions and figure out your answers. They're just meant to give you a few starting points.
Once you've got a list of things you want to learn, pick one and get started. The key is to avoid overthinking. Pick a couple of things and start. You'll figure out the rest as you move forward.
Where to learn from
Once you've decided what to learn, the next step is finding the right resources.
Now, don't waste time searching for the "perfect" resource because it doesn't exist. When learning something new, anything can be useful—just start with what you've got.
So, based on what we've heard from other engineers, we'll share some solid go-to resources:
- Online Courses and Tutorials - Platforms like Coursera, edX, and Udemy offer courses for a solid foundation. Some top picks are Harvard's CS50, the Software Development MicroMasters on edX, or MIT's Missing Semester course. These are perfect for structured learning in a new area.
- Books - Once you've got the basics down, books can help you go deeper. Classics like Clean Code, The Pragmatic Programmer, or Designing Data-Intensive Applications are popular. For system design, check out System Design Interview by Alex Xu, or for software architecture, Fundamentals of Software Architecture.
- Conference Videos and Talks - Watching conference videos provides expert insights. Conferences like the Great Indian Developer Summit, PyCon India, GopherCon, and Agile on the Beach are great for learning and staying updated on trends like cloud computing or software architecture.
- White Papers - If you're into cutting-edge stuff, white papers are gold. Papers from Google or the Indian Institute of Science (IISc) give deep dives into AI or machine learning. These can take time to go through but are worth it for a deep understanding.
- Newsletters and Blogs - Keeping up with trends is important. Newsletters like Hacker News, ByteByteGo, or InfoQ Weekly help stay in the loop. Also, blogs from Netflix, Slack, and Stripe or industry experts like Martin Fowler.
- Open Source Codebases - If you're a hands-on learner, dive into open-source code on GitHub. Studying projects like React, Angular, Kubernetes, or TensorFlow can teach you a lot. Contributing to open source is a great way to practice your skills and learn from other developers.
- Podcasts - If you want to learn on the go. Software Engineering Daily, Lenny's podcast, and The Changelog cover various topics with interviews from industry experts.
Just pick something and start. You'll figure out which resources work best for you.
Next steps
To recap:
- When choosing what to learn, consider your career phase and direction. Let your interests guide you early on, but be more strategic as you get senior.
- Brainstorm your short and long-term career goals to map out the skills you need.
- Use a variety of learning resources like online courses, books, conferences, open-source projects, and more. Just get started and you'll find what works for you.
In Part 2, we'll dive into how to make time for learning in your busy schedule and how to apply your new skills to truly make them stick.