Last week, I got a chance to meet with senior-level software engineers from across our industry and hear their answer to one simple question: “What do you wish you had known when you were a junior software engineer?”
Here’s what they had to say:
“What I wish I had known when I was a junior engineer is that it’s important to seek feedback from senior engineers. I was always nervous to ask questions because I thought I would get judged as naive or inexperienced. But the thing is, I was naive and inexperienced. The best way to get past that is to learn from the best.
“当我还是一名初级工程师时，我希望知道的是，寻求高级工程师的反馈非常重要。 我一直很想问问题，因为我认为自己会被判断为天真或缺乏经验。 但事实是，我很幼稚而且没有经验。 克服困难的最好方法就是向最好的人学习。
With time — and a lot of trial and error — I’ve learned how much of a blessing it is to be surrounded by smart engineers. Even when senior engineers rip apart my code reviews or push back against my design decisions, I know that it will help me improve in the end.” — Sun-Li Beatteay, Senior Software Engineer
随着时间的流逝，以及大量的反复试验，我了解了聪明的工程师所带来的巨大福祉。 即使高级工程师撕毁了我的代码审查或推迟了我的设计决策，我仍然知道这将最终帮助我改进。” —高级软件工程师Sun-Li Beatteay
“It’s important to seek feedback from senior engineers.”
“To buy bitcoin! In all seriousness, not to beat myself up over past failures. Life is too short.” — James Evers, Senior Software Engineer
“要购买比特币！ 认真地说，不要因为过去的失败而自暴自弃。 人生如此短暂。” —高级软件工程师James Evers
“Juniors should try out things on their own first and be smart about when to ask and what to ask.”
“The most important thing I wish I knew when I was a junior developer is that it’s OK to ask questions. It’s really, really crucial to understand that it’s OK to not know everything right from the start. Even more, by asking questions, juniors can challenge their senior counterparts, which leads to a flow of wisdom in both directions. And asking the right questions is something everyone needs during their whole career, so why not start early with it?
“当我还是一名初级开发人员时，我希望我知道的最重要的事情是，可以提问。 理解从一开始就不了解所有内容是非常非常重要的。 更重要的是，通过提出问题，大三学生可以挑战他们的高年级学生，这导致双向智慧的流动。 每个人在整个职业生涯中都需要提出正确的问题，那么为什么不早一点开始呢？
With that said, it’s not a good idea to ask for help with the simplest things. Juniors should try out things on their own first and be smart about when to ask and what to ask.” — Simon Holdorf, Engineering Manager
话虽如此，寻求最简单的帮助不是一个好主意。 大三学生应该首先自己尝试一些事情，并对什么时候问和问什么有所了解。” —工程经理Simon Holdorf
“It’s really, really crucial to understand that it’s OK to not know everything right from the start.”
“Try to find the answer yourself. Mentors like to see you made it somewhere before asking a question, even if it’s a Google search to documentation that you don’t understand. I found hidden gems like Baeldung for Java topics, Spring Docs for code examples, and searching GitHub to see if your problem has been solved before.
“尝试自己找到答案。 导师希望看到您在提出问题之前就已经做到了，即使这是您不了解的Google搜索文档。 我找到了隐藏的宝石，例如Java主题的Baeldung ，代码示例的Spring Docs，以及搜索GitHub以查看您的问题之前是否已解决。
Code reviews are a good place to learn — not to criticize. Sometimes it’s easy to complain on how some code looks or feels, especially if you didn’t write it. However, I did this once and found my cohort had the original writer in the room. Talk about a foot-in-mouth moment. However, they didn’t criticize me back but rather gave me a chance to learn the design patterns of the past and apply newer patterns going forward.
代码审查是学习的好地方-无需批评。 有时候，很容易抱怨某些代码的外观或感觉，特别是如果您没有编写它们。 但是，我这样做了一次，发现我的队列中有原始作者。 谈论口口相传的时刻。 但是，他们并没有批评我，而是给了我一次学习过去的设计模式并应用更新的模式的机会。
We all have old skeletons we built and might not be proud of, so it’s crucial to avoid talking down on how code looks, as it’s evolved over the past ten years.” — Kurt Baker, Associate Lead Software Engineer
我们都有构建的旧框架，可能不为之骄傲，因此，至关重要的是，避免谈论代码的外观，因为它是过去十年来不断发展的。” — Kurt Baker ，副首席软件工程师
“In the long run, it’s the wealth of knowledge that will earn you sweet dividends as you climb the ladder.”
“Starting with a batch of interns, I was always thrown into a race to find the quickest solution to any given task. I wish that my college graduate self was mentored into a direction of constant learning and adapting to the changing nature of technology.
Along with my daily list of commitments, I wish I had been exposed to the model of T-shaped knowledge. The concept of T-shaped knowledge is simple: While increasing the breadth of knowledge, go deep in one field that can make you the go-to person. In the long run, it’s the wealth of knowledge that will earn you sweet dividends as you climb the ladder.
除了每天的承诺清单，我希望我能接触到T形知识模型。 T形知识的概念很简单：在增加知识的广度的同时，深入一个领域，可以使您成为理想的人。 从长远来看，当您登上阶梯时，丰富的知识将为您带来可观的收益。
At times, even my knowledge and hard work did not follow visibility and recognition. Working in the corner of a cubicle and thinking that my work will speak on its own turned out to be a myth and I soon realized that it alone is not enough for me to grow in this giant tech company. One needs to build a strong network and treat every connection like a penny of savings in your pocket that you can spend and reap the benefits of at multiple points in your career.” — Prachi Srivastava, Associate Lead Software Engineer
有时，即使是我的知识和努力也没有得到关注和认可。 在一个小隔间的角落里工作，以为我的工作会自己说出来，这真是一个神话，我很快意识到，光靠这还不足以使我在这家巨型科技公司中成长。 一个人需要建立一个强大的网络，并将每个连接都当成口袋里的一分钱储蓄，在事业中的多个方面都可以花费并从中受益。” — Prachi Srivastava ，副首席软件工程师
Are you a senior-level software engineer with advice for junior-level engineers? Leave a response to this article and help grow the next generation of developers!