如果成为一名高级安卓开发_什么是高级开发人员,我如何成为一名开发人员?

如果成为一名高级安卓开发

Becoming a Senior Developer is something many of us strive for as we continue our code journey and build our career. But what does it actually mean to be a "Senior" Developer?

成为一名高级开发人员是我们许多人在继续我们的代码之旅并建立自己的职业生涯中所追求的目标。 但是,成为“高级”开发人员实际上意味着什么?

成为高级开发人员不是什么 (What being a Senior Developer is not)

Before we start, let's get this out of the way. Contradictory to what you'll see on 95%+ of the job postings online, a Senior Developer is not strictly correlated to only the number of years on your resume.

在开始之前,让我们解决这个问题。 与您在95%以上的在线职位发布中看到的相反,高级开发人员并不仅仅与履历中的年数相关。

It's true, more often than not, that many years on the job typically bring with them a lot of experience. And with some companies you can get by with just that. But it's not the only quality that rightfully proves that someone is at a Senior level.

的确,很多年的工作通常会带给他们很多经验。 对于某些公司,您可以做到这一点。 但这并不是唯一可以证明某人处于高级水平的素质。

This is a common problem in the software world and can lead to high expectations with low delivery. It can also lead to conflict within the team when your new 15 year 10x Senior Developer refuses to work with others.

这是软件界的普遍问题,可能导致交付量过高而带来的高期望。 当您的新的15年10x高级开发人员拒绝与他人合作时,这也可能导致团队内部的冲突。

So what can we do to prepare ourselves for that role?

那么我们该怎么做才能为这个角色做好准备呢?

是什么让高级开发人员? (What makes a Senior Developer?)

Looking back through my career at the developers on my team that I've admired and respected the most, it's really come down to four qualities:

回顾我最欣赏和尊敬的团队开发人员的职业生涯,实际上归结为以下四个方面:

  • Experience

    经验
  • Leadership

    领导
  • Mentorship

    导师制
  • Technical Ability

    技能

It's not good enough to look at any one of these as the sole representation of how someone will perform on a team. Each developer is unique and may be stronger with one quality than another. But it's important to see how those qualities come together to determine how someone will help your team grow.

仅仅将其中的任何一个视为某人在团队中的表现如何是不够的。 每个开发人员都是唯一的,并且在一种素质上可能会强于另一种。 但是,重要的是要了解这些素质如何共同决定某人将如何帮助您的团队成长。

Let's break these each down a little bit.

让我们将这些分解一下。

经验 (Experience)

Experience is typically thought of as years on the job, and while it's not completely inaccurate, it doesn't tell the whole story.

通常认为经验是工作年限,虽然并非完全不准确,但并不能说明全部情况。

Just as every developer is unique, so is their experience. While one developer might have spent five years in an intensive position where they worked to solve hard technical challenges every day. And another might have been kicking their feet up at a local shop where their only responsibility was to update the website every week.

正如每个开发人员都是独特的一样,他们的经验也是如此。 虽然一位开发人员可能已经在密集的位置上花了五年时间,但他们每天都在努力解决艰巨的技术难题。 另一个可能是在当地商店站起来,他们的唯一责任是每周更新网站。

And that's not necessarily a bad thing! We each have our own journey and need to balance our lives to fit it. But it's not realistic to say those 5 years were the same.

那不一定是一件坏事! 我们每个人都有自己的旅程,需要平衡自己的生活以适应它。 但是说那五年是相同的是不现实的。

Then what does experience really mean?

那经验到底是什么意思?

识别先前工作中的模式 (Recognizing patterns from previous work)

Every developer has a story (whether they remember it or not) of a random error they stumbled into through their development experience. This could be something dealing with Javascript, webpack, or even your operating system, and it just doesn't make any sense!

每个开发人员都有一个故事(无论他们是否记得),他们会通过开发经验偶然发现一个随机错误。 这可能与Javascript,Webpack甚至您的操作系统有关,但这根本没有任何意义!

But whether through a peer or by searching on Google, you figure it out. And three months later when you're working on another project and run into the same thing, you don't even have to Google it, or you already know what to Google. You already know what the issue is and can get past it quickly and move on.

但是,无论是通过同行还是在Google上搜索,您都可以找到答案。 三个月后,当您在进行另一个项目并遇到相同的问题时,您甚至不必使用Google,或者您已经知道Google的用途。 您已经知道问题所在,可以Swift解决并继续前进。

This is the kind of experience that makes a difference. Being able to recognize patterns whether because of an error or because it was super successful is what helps each of us grow. These are the experiences that help a team grow when others are stuck and you can get them out of a bind.

这是一种与众不同的经历。 能够识别出由于错误或成功而导致的模式,这有助于我们每个人的成长。 这些经验可以帮助团队在别人陷入困境时成长,而您可以摆脱困境。

认识你不知道的东西 (Recognizing what you don't know)

It's also important to understand what you don't know. I think part of what contributes to my own personal struggle with imposter syndrome is that the more I learn the more I realize I don't know.

了解您不知道的内容也很重要。 我认为促成我自己与冒名顶替综合症个人奋斗的部分原因是,我学得越多,我就会意识到自己不知道。

But this shouldn't be looked upon as a bad or scary thing. This should be inspirational. That means that your craft that you've been working on has that much more cool stuff to explore!

但这不应被视为坏事或可怕的事情。 这应该是鼓舞人心的。 这意味着您一直在努力的Craft.io还有很多更酷的东西要探索!

It's important to realize how this impacts your work and the rest of the team. For example, it doesn't help anybody if you act like you know everything and commit to huge amounts of work. When you commit to that work and actually don't understand it, it could knock your sprint off track which can frustrate the entire team (and the client).

重要的是要意识到这如何影响您的工作和团队的其他成员。 例如,如果您表现得一无所知并致力于大量工作,那么它对任何人都没有帮助。 当您致力于这项工作而实际上不了解它时,可能会使您的sprint偏离轨道,从而使整个团队(和客户)感到沮丧。

Whether it's when you're planning or during development, don't be afraid to ask for help. Come up for air and throw your hands up! Just because you're the only Senior Developer, doesn't mean you can't learn something from a Junior team member.

无论是在计划时还是在开发过程中,都不要害怕寻求帮助。 腾出空气,举起双手! 仅仅因为您是唯一的高级开发人员,并不意味着您无法从初级团队成员那里学到一些东西。

Try to take a good look at where you've been, what you understand, and where you could benefit to dig in more.

尝试很好地了解您去过的地方,了解的内容以及可以从中受益的地方。

领导 (Leadership)

As a senior member of a team, I would expect a developer to have a natural tendency to lead. While this doesn't mean you have to be an actual Tech Lead on a project or make any of the final decisions, this does mean that you should have a basic level of being able to help push the project forward

作为团队的高级成员,我希望开发人员具有领导的自然倾向。 虽然这并不意味着您必须是项目的实际技术负责人或做出任何最终决定,但这确实意味着您应该具备能够帮助推动项目前进的基本水平

了解大局 (Understanding the bigger picture)

If you've worked on projects with team members, you should know that each project or feature typically comes with a bunch of stories to work through to get it done. Each story should be a focused piece that helps accomplish a larger goal.

如果您与团队成员一起进行项目工作,则应该知道每个项目或功能通常都带有大量的故事来完成它。 每个故事都应该是有助于实现更大目标的重点文章。

Where this becomes challenging is if no one on the team understands how each of these stories help to accomplish that bigger goal. As a Senior Developer, you should be able to see how each piece fits into the puzzle and why the story is written with the specific acceptance criteria. And if you don't know, you'll know how to get the answers and make sure it's communicated to the team.

如果没有团队成员理解这些故事中的每一个如何帮助实现更大的目标,这将成为挑战。 作为高级开发人员,您应该能够看到每个部分如何融入谜题,以及为什么故事要按照特定的接受标准来编写。 而且,如果您不知道,您将知道如何获取答案,并确保将其传达给团队。

If you're unsure of the direction, try to take a step back. Try to see where it fits in. Help to lead the project team to that ultimate goal.

如果不确定方向,请尝试退后一步。 尝试查看它适合的位置。帮助引导项目团队达到最终目标。

帮助指导经验不足的团队成员 (Helping direct less experienced team members)

This comes naturally in the ability to help guide those on our team who are more junior or less experienced. It's common for developers to lose focus on the big picture. But as we just discussed, a Senior Developer should be able to continuously have a good idea of the overall project and where the different stories fit into the bigger epic.

这种能力自然可以帮助指导我们团队中的初级或中级以下人员。 对于开发人员来说,失去对全局的关注是很常见的。 但是正如我们刚刚讨论的那样,高级开发人员应该能够对整个项目以及不同故事适合更大史诗的地方不断地有个好主意。

Help guide others on your team to get them on the right path. While it would be beneficial for everyone to understand how everything fits in to the bigger picture, sometimes it makes more sense to help an individual focus on how their specific task fits in.

帮助指导团队中的其他人,使他们走上正确的道路。 虽然对每个人来说,了解所有事物如何适应更大的前景将是有益的,但有时帮助个人专注于他们的特定任务如何适应更有意义。

Try to recognize this struggle when working with others whether by encouraging them to ask more questions or helping to guide them if they're not quite on the right path as you're reviewing their code.

在与他人合作时,尝试通过鼓励他们提出更多问题,或者在您查看他们的代码时,如果他们没有走上正确的道路来帮助指导他们,则要认识到这种挣扎。

导师制 (Mentorship)

It's often more convenient to be heads down on your work and not have to worry about what anybody else is doing, but is that really benefiting anyone?

低头工作而不用担心别人在做什么通常更方便,但这真的使任何人受益吗?

帮助建立其他团队成员 (Helping to build up other team members)

You might be the so-called 10x developer, but doing everything yourself and not helping others can only slow down the overall team. Often you'll be stuck picking up the pieces that you could have easily caught if you spent an extra second pairing up with someone else on your team.

您可能是所谓的10x开发人员 ,但您自己做所有事情而不帮助别人只会减慢整个团队的速度。 如果您与团队中的其他人花费额外的时间进行配对,通常您会被困在拾起本来可以轻松抓住的碎片上。

It's also bad for morale. No one wants to feel alone on a project and even more so as a junior. Software is a big scary world, a little guidance can go a long way to helping others to become more productive and subsequently encouraging a happier, less stressful environment.

这对士气也不利。 没有人想在一个项目上感到孤单,甚至大三。 软件是一个令人恐惧的大世界,只需提供一点指导,就可以帮助其他人提高工作效率,并进而鼓励一个更幸福,压力较小的环境。

It's easy to forget that we were all a junior team member at one time. While you might take things for granted, the concepts might be really challenging for others to grasp.

很容易忘记我们一次都是初级团队成员。 尽管您可能认为事情是理所当然的,但对于其他人来说,这些概念可能确实具有挑战性。

Keep in mind that we're all in this together. Celebrate the wins whether big or small. If somebody's struggling, reach out to help.

请记住,我们在一起。 庆祝胜利,无论大小。 如果有人在挣扎,请伸出援手。

知识共享 (Knowledge sharing)

Sharing knowledge is something many teams struggle with. While we're all usually hopeful that there's a way to accomplish it, most of the time it just goes unsolved. So what can we do?

共享知识是许多团队都在努力的事情。 虽然我们通常都希望有一种方法可以完成它,但大多数情况下它还是无法解决。 所以,我们能做些什么?

Take it upon yourself to share what you know. Did you just rework the core business logic? Offer 30 minutes to walk everyone through the code. Pair up and screen share with your code reviewer if they're having a hard time understanding it.

分享自己的知识。 您只是重新设计了核心业务逻辑吗? 提供30分钟的时间向所有人介绍代码。 如果您的代码审阅者难以理解,则可以与他们配对并进行屏幕共享。

This is something we can encourage everyone to do. You'll naturally learn more by presenting your work by reinforcing what you just worked on. This is helpful whether you're a Senior or it's your first time opening up a code editor.

这是我们可以鼓励所有人做的事情。 通过增强您刚刚从事的工作来展示您的工作,您自然会学到更多。 无论您是大四还是第一次打开代码编辑器,这都将很有帮助。

技能 (Technical Ability)

I intentionally wanted to leave this until the end. This is because, while it's important, there are more aspects to your journey to becoming a Senior Developer than just being really, really good at something.

我有意将其保留到最后。 这是因为,尽管这很重要,但成为一名高级开发人员的过程中,除了真正擅长某件事之外,还有更多方面。

快速行动的能力 (Ability to get moving quickly)

As a Senior Developer, I would expect another Senior Developer to become productive in something quicker than a Junior Developer. If they're an expert with Javascript, I would expect them to understand the core principles and patterns of the language.

作为高级开发人员,我希望其他高级开发人员能够比初级开发人员更快地提高工作效率。 如果他们是Java方面的专家,我希望他们能理解该语言的核心原理和模式。

But back to the idea of recognizing what you don't know, it's not reasonable to expect all Senior Developers to know everything. I wouldn't consider an expert in Ruby any less of a Senior Developer because they don't know Javascript, but I would expect them to understand how to apply what they know when building in and learning another language.

但是回到认识您不知道的想法的想法,让所有高级开发人员都知道所有知识是不合理的。 我不会考虑Ruby的高级开发人员,因为他们不了解Javascript,但是我希望他们了解如何在构建和学习另一种语言时应用他们所知道的知识。

促进软件模式 (Promoting software patterns)

More often than not, the code pattern you just came up with isn't new. And that's okay! The goal of building great software isn't necessarily to be unique with every solution.

通常,您刚想到的代码模式并不是新的。 没关系! 开发出色软件的目标并不一定在每种解决方案中都是独一无二的。

And because of that, we can learn from past work by seeing what's succeeded and what's maybe not gone over so well to find patterns that work for you and your team.

因此,我们可以从过去的工作中学习,看看成功了什么,或者未解决得太好,找到了对您和您的团队有用的模式。

Patterns like MVC (Model View Controller) didn't become popular without reason. Developers learned from the past and have learned from their peers who have solved big software challenges. With that knowledge, they can apply the solutions to their own work. It's not about reinventing the wheel, it's about solving challenges and making a good product.

诸如MVC(模型视图控制器)之类的模式在没有理由的情况下并没有流行。 开发人员从过去中学到了东西,并从同行那里学到了解决大型软件难题的方法。 有了这些知识,他们就可以将解决方案应用于自己的工作。 这不是重塑轮子,而是解决挑战并制造出优质的产品。

我们都有自己独特的旅程 (We all have our own unique journeys ahead)

No matter what anyone tells you, we all have our own unique code journeys. This is meant to encourage you and inspire you to become a better overall developer and understand how your work impacts the rest of the team.

不管别人怎么说,我们都有自己独特的代码旅程。 这旨在鼓励您并激发您成为更好的总体开发人员,并了解您的工作如何影响团队的其他成员。

While you certainly might succeed without taking these things into consideration, you could be missing out on core traits that could make people not want to work with you from a human being perspective.

尽管您肯定会在不考虑这些因素的情况下成功,但您可能会错过一些核心特征,这些特征可能会使人们不想从人的角度与您合作。

Whatever your journey, keep these things in mind as you grow into becoming a better developer!

无论您经历什么旅程,在成长为一名更好的开发人员时,请记住这些事情!

您认为怎样才能成为一名优秀的高级开发人员? (What do you think makes a good Senior Developer?)

Do you think I'm spot on or way off? Share with me on Twitter!

您认为我发现了还是离开了? 在Twitter上与我分享!

翻译自: https://www.freecodecamp.org/news/what-does-it-mean-to-be-a-senior-developer-and-how-can-we-become-one/

如果成为一名高级安卓开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值