I know that for many developers, especially those early in their careers, asking for help can be intimidating. I often fear wasting someone’s time or exposing myself as less skilled or smart than my team initially thought.
In my first month as a software engineer at Artsy (and barely six months into life as an engineer after transitioning from a career in communications), I was struggling through a ticket assigned to me as a “good first issue.” (The team estimated the task to be straightforward enough for someone new to the team.) After a few hours stumbling between the ticket, my code, and Google, I made very little progress.
Early and often, my fellow engineers at Artsy encourage me to ask for help when I hit roadblocks. Even with the support explicitly offered to me, I was shaky. The extra 10 seconds it took to type out my question in Slack was just enough time for me to chicken out.
Opening up with my team members about my concerns, I learned that asking for help is not just for me but ultimately benefits my team. Sharing their insights below, I hope other engineers, early-career or not, feel empowered to ask questions, stay curious, and prioritize learning for themselves and their team — all hallmarks of great engineers.
Why It’s So Hard to Ask For Help
Working in tech and as an engineer (and even in undergraduate computer science classes,) I often felt surrounded by people smarter than me. Operating alongside peers who are excelling motivates me to set the bar higher for myself. But at times, it can also be intimidating. There is a reason that imposter syndrome is so pervasive in tech industry discourse. (A 2018 study found that 58% of tech workers suffer from it.) The fear of being “found out” as an imposter, inadequate, or less impressive can be especially acute for those early in their career and from underrepresented groups.
Like other VC-backed companies, Artsy is working toward aggressive business targets and ships software at a high velocity. At high-growth companies, tight deadlines and high-energy cultures make it tempting to shy away from hard problems and to let the more senior people tackle the tough challenges. But these moments are critical for growth and learning across the team.
On Artsy’s engineering team, we put a lot of energy into optimizing developer workflows and communication channels. While asking for help seemed counter to productivity, my team helped me see that the opposite is true: Encouraging engineers to support one another is integral to building an effective engineering organization.
Pair programming is growing in popularity, not because society is becoming more kind and patient, but because it’s good for business. Teams in synergy can ship higher-quality code more quickly.
Because teaching is one of the best ways to become an expert, a more experienced engineer can level up when pairing with a less experienced engineer. Teaching solidifies understanding, reveals gaps in knowledge, and opens up new questions for exploration. Recently, a senior engineer shared that they never questioned something in our codebase until I prompted them to take a closer look. We deepened our understanding together.
Providing help also cultivates an engineer’s mentoring skills, which is especially important if they aim for management or leadership roles.
Finally, a lot of people enjoy helping others for the pure reason that it feels good. Studies show that a majority of workers prioritize meaning in their work over salary and that meaningful work translates to greater retention and productivity. (Harvard Business Review goes so far as attaching a dollar sign to meaningful work: they estimate highly meaningful work generates an extra $9,078 per worker per year and saves an average of $6.43 million in annual turnover-related costs for every 10,000 workers.) All good arguments for engaging in collaborative and empathetic workflows.
Building Community and Scaling Knowledge
Building a culture of collaboration is particularly challenging, especially for distributed teams and those working remotely during the pandemic. Pair programming provides opportunities for connecting, which can reverberate throughout an organization.
Learning also has a network effect, so knowledge scales exponentially. If someone teaches me a new concept, I am now empowered to share the knowledge with others, and then they can then spread that knowledge even further.
Put simply by one of my coworkers: Learning is contributing.
Why Prioritizing Your Growth is Okay
My natural tendency is to want to give more than I ask. But for all early-career engineers, it is also normal to need a lot of help at the beginning. I need to trust that our recruitment team knew to ask the right questions to make an informed decision to hire me — the real me, beginner and all. The fastest way to improve is to tackle difficult problems head-on and ask questions when I need support. Investing in my learning at this point in my career will pay dividends to my team in the months and years to come.
So yes, I went ahead and pressed send on that Slack to ask for help.
This post originally appeared on Anna's blog on Medium.