Are You Asking the Right Questions as a New Grad Engineer?
Most people who just started their software engineering jobs might encounter some “imposter syndrome”, which is the inability to internalize their accomplishments and a persistent fear of being exposed as a fraud. As a new grad engineer, I definitely felt that way from time to time. I’m scared of asking “stupid” questions that seem trivial to the more senior engineers.
This is what I learned about the art of asking the right questions to not only improve as an engineer but also to increase the productivity of others. Here are the steps to ask the right questions.
Let’s go through a real world example.
Task: Write a program to track events like clicks, conversions, impressions to determine user flow and send important data to Google Analytics.
#1: Understand your task
Usually you would have a ticket that explains what the bug is about or a feature that has to be implemented. First thing I would do is to message my Product Manager if I have any trouble understanding my task.
Bad Example: Hey PM, I don’t really understand what the ticket is about. What do you mean by user flow and tracking events?
Good Example: Hey PM, I looked into how Google Analytic logs data and I realized that it has a format: (event, label). I was thinking about categorizing clicks, conversions, and impressions as events and the page the user is on as label. What do you think?
#2 Ask questions with the right scope.
Once you understand the task, you want to think about ways to implement the program. Most important thing is to break down the tasks into separate little functions.
- Function to log data to Google Analytics
- Event listener function to listen to changes in user action
- Unit testing
Once you understand the scope, you want to ask questions related to each component so you don’t overwhelm the senior engineers.
#3 Discuss your solution
Bad Example: Hey Senior Engineer, I’m not sure where to start. Do you have any solutions in mind?
Good Example: Hey Senior Engineer, I was thinking about creating a class called Reporter that pushes events to google analytics. I will call Reporter.push() at these places. <link to some pseudocode>
#4 Ask for feedback/ code review
After code review, you will get feedback about your code. Don’t be defensive about other people’s comments. Don’t fall in love with what you worked on. The beauty of code is to keep on iterating. Address the code review changes and think about the pros/cons of each decision.
#5 Keep asking questions and learn!
Great questions will allow you to discover more. Dig deep and find answers/solutions.
# Bonus Tip: Sync all the engineers’ calendars
I synced up all my team’s engineers calendar so I know what times in the day they will be super busy and are in meetings. I would ask them questions at a suitable time because you want to respect other people’s time as well. I also use round robin method to distribute my questions throughout the day so none of my teammates feel bombarded with questions.
I’m just a new graduate software engineer excited to learn and share my knowledge.