发布于 2026-01-05 4 阅读
0

7 Practices of Excellent Developers (And All-Around Awesome Humans)

优秀开发者(以及各方面都很出色的人)的7个实践

我们都想实现自己最大的职业目标,但我们常常过于关注目标本身,而忽略了实现目标的方法。

这往往会导致兴奋、动力、失败、倦怠和放弃的无休止的循环,而当我们有了新的想法和新的动力时,这个循环又会重新开始。

对于想要开启并建立成功的开发人员职业生涯而言,关注你每天所做的小事与关注你的目标同样重要。

目标是好的目的地,但却是糟糕的地图。

结合正确的实践方法,设定好的目标是实现职业成功的绝佳途径。

但是,目标本身可能会导致挫败感,因为我们没有建立起一个合适的体系来实现这些目标。

今天,我想介绍 7 种做法,也就是你应该每天培养和努力的事情,这些做法随着时间的推移可以积累起来,从而打造一份优秀的职业生涯。

通过每天一点一点地专注于做这些事情,你就能建立起一套属于你自己的系统,从而实现你最雄心勃勃的职业目标。

让我们进入练习环节。

做个通才

“样样通,样样松”这句话通常带有贬义,但这完全是本末倒置。

除非你非常清楚自己的人生目标,并且永远不想做其他任何事,而且这件事还涉及一项非常具体的技能,否则做通才总是比做专才更胜一筹。

如果你想成为世界上最伟大的小提琴家,那么你应该专攻小提琴,但除了像这样非常具体的目标之外,与其在某一方面成为世界上最好的,不如在大多数方面都比大多数人做得更好。

学习和综合运用多种技能是为自己和他人创造价值的关键。

它能提供更稳定的工作保障,尤其是在人工智能不断发展的今天。计算机可以被编程来完成几乎任何一项特定任务,而且效率远超人类。

我们的经济价值在于能够运用多种技能,并将它们结合起来,创造出能以某种方式给人类带来快乐的事物。

但是,如何才能真正掌握所学知识呢?一万小时定律又该如何解释呢?

如果你看看那些为了达到类似数据而进行的研究,你会发现它们都是针对那些目标非常具体且始终相同的技能进行的。

让我们以高尔夫和国际象棋为例,这两个常见的例子说明了为什么我们应该像激光一样,无休止地专注于一项技能。

高尔夫和国际象棋都有一个非常具体的目标,那就是通过尽可能高效地反复做同样的事情来实现这个目标。

无论是挥杆击球还是学习何时移动棋子,目标都是一样的。

但是像编程或设计这样的学科呢?这些学科的目标会随着每个项目而变化,几乎从来没有统一的目标?

当我们审视这类抽象技能时,那些脱颖而出的人往往是那些将知识拓展到不同领域的人。

想了解更多相关内容,我强烈推荐阅读大卫·爱泼斯坦的《范围》一书,并观看他与马尔科姆·格拉德威尔的辩论。

那么,作为开发者,我们应该重点关注哪些技能呢?

我认为对于开发者来说,最重要的三项技能是编码、设计和营销。

这三项技能的融合构成了世界上每一家成功软件公司的基础,学习如何有效地将它们结合起来解决现实世界的问题,将使你成为一名不可或缺的开发人员。

如果你深入钻研,精通多种语言和框架、多种设计类型和多种营销方法,你对任何软件公司来说都将是极其宝贵的人才。

你也应该花时间学习这些学科领域的子技能。学习多种语言和框架,学习不同类型的设计,学习不同的营销策略、技巧和原则。

将这些技能与有效的沟通和写作等普遍适用的技能结合起来,你就拥有了一份收入丰厚、回报丰厚的职业的秘诀。

然后,这一点很重要,要通过建造实物来运用和练习这些技能。

与其开发一些简单的玩具应用,不如在真实情境中学习技能。这才是最佳的学习方式。

但这里存在一条微妙的界限。

我们希望在这些方面做到卓越,而不是在所有方面都平庸。

在《如何才能在几乎所有事情上都做得更好》一书中,帕特·弗林阐述了成为通才的 5 项原则,这些原则可以帮助我们了解如何才能成为最好的通才。

这些原则是:

  • 技能叠加 > 专精
  • 短期专业化
  • 八分之一法则
  • 集成 > 隔离
  • 重复与阻力

让我们简要地了解一下这些内容,看看如何运用它们来成为优秀的开发人员。

技能堆叠胜于专精

我们之前已经提到过这一点,但基本前提是,学习多种技能,然后学习如何有效地将这些技能结合起来解决问题才是正确的方法。

我认为,通往人生成功的另一种途径(而且我认为这种途径不如前者)是专注于某一件事情。

在 Web 开发领域,这意味着要精通多种语言、框架和互补技能,这样你才能拥有广泛的技能来解决问题。

我认为这一点在网络和软件开发领域尤为重要,因为新技术来得快去得也快。

如果为了追求技术专精而忽略其他方面,那么当该技术栈不再流行时,你的职业发展可能会遇到一些困难。

短期专业化

这样我们才能确保我们在所学习的所有技能方面都不会变得平庸。

目标不是不断地在不同的事情之间切换。目标是在短期内专注于某件事,精通它,然后将其转为维持状态,同时学习其他东西。

在 Web 开发中,实现这一目标的一个好方法是选择技术栈、设计系统和营销策略,将它们结合起来,构建一个虽小但真实的产品。

完成之后再学习其他东西。

80%法则

这一原则的存在是为了确保我们不会陷入任何领域的专攻。

对某一学科掌握80%以上,并在此基础上结合其他学科的知识,就足以取得成功。

事实上,你可能甚至不需要达到 80%。

一个对多种技术栈有 50% 掌握程度,并且同时具备设计和营销能力的开发人员,对于大多数公司来说,其价值将远远高于一个对单一技术栈有 95% 掌握程度,但对其他领域一无所知的开发人员。

他们的工作保障也会好得多。

值得注意的是,这条规则的另一个原因是,一旦你达到某个程度,提高你在某个学科上的熟练程度需要付出更大的努力,但收益却越来越小。

它的原理与力量训练非常相似。在训练的最初几个月里,你会看到力量的显著提升,而专业举重运动员往往需要花费数月甚至数年的时间进行艰苦卓绝的训练,才能将他们的最大举重重量提高一两磅。

整合优于隔离

这就是我们打造实物的原因。

通过构建小型玩具应用或新奇工具来学习开发固然诱人,但通过构建真正的应用,在实际环境中运用和练习你的知识更有价值。

通过这种方式,你就能熟悉你选择的技能在现实世界中的应用。

随着知识的增长,你对潜在雇主和客户的价值也会随之提升。

重复与阻力

每天都要有所创造,去做那些有挑战性的事情。

跟着教程学习是了解新技术的好方法,但却不是精通新技术的好方法。

如果你想真正学到什么东西,就必须努力奋斗,并且持之以恒。

跟着课程或教程学习感觉很好,但会给人一种虚假的知识感。

任何曾经按照教程制作过东西,但后来却发现自己很难着手自己的项目的人,对此都深有体会。

创造尚不存在的东西。遇到错误并学会解决它们。探索生态系统并学会找到最适合工作的工具。

如果你感到大脑疼痛,感觉被某些事情难住了,这恰恰表明你正在真正地学习,所以要坚持下去。

保持专注

网络开发领域极其多元化,而且每天都在不断发展壮大。

弄清楚应该把精力集中在哪些方面可能会让人不知所措,而且随着新技术每天都在发布,保持专注的斗争永无止境。

一次只专注于一件事对你的成功至关重要。

当你开始一个项目时,一定要先完成它,然后再开始一个新的项目。

我喜欢把想尝试的新技术列成清单,当我完成当前的项目后,我会从清单中选择一项新的技术,然后开始一个新项目来学习它。

The ability to stay focused will make or break your ability to build real-world projects, which will make or break your ability to build a great portfolio.

Learn to focus.

A great way to do this is to assign yourself new projects in 30-day sprints. So you choose a new tech stack and spend 30 days building something with it.

This way, whenever you start to get a case of shiny object syndrome, write it down in your list, knowing that you can dig into it after your project is done if you still want to.

But how do you find your focus?

One of the hard parts about breaking into the field is how to figure out what to focus on first.

There are two ways I like to go about this.

First, if you have a company or companies in mind you would really like to work for, and you have your heart set on them, research their tech stack and learn that.

If not, figure out what is currently growing in the field and choose that. This should be pretty easy if you are active in the community, reading, and interacting with others.

An obvious choice at the time of this writing is React.

A decent place to start (but not something you should rely on exclusively) is to check out what projects on GitHub have lots of stars and seem interesting to you.

Compare that to what people are starting to hire for, and what existing companies are using to find a few options.

Be careful with relying on things like GitHub stars exclusively. They are not a good indicator of what companies are actually using in real-world, paying projects.

But they can provide a good starting point for your research.

There is no exact science and guarantee that you will pick a winning language or framework that will be popular 10 years from now. That’s where being a generalist and learning how to learn comes in.

You should never become stagnant in your learning and assume what you know now will be relevant in 5 years, or even 1 year.

Don’t stress out too much about your long-term focus, this will ebb and flow with your current job and with the industry.

But commit to relentless effort on your short-term focus. Once you start a project, finish it, and then start a new one using a different mode of the same technology, or a completely new one.

Come up with problems that need to be solved, research the best available technology to solve it, and then learn and execute.

Do this in short bursts to get small but useful projects created. Don’t jump around. Finish one project before starting the next.

This way you’ll actually learn and will build up an impressive portfolio in the process.

Learn in public

This is one of the most valuable lessons I ever learned. If you did nothing but this you would skyrocket your chances of landing a great job.

The core concept is very simple.

As you are learning, write about it.

That’s it.

Start up a simple website (you can do this easily with Dev.to) and just start writing about the projects you are working on.

Build real things that solve real problems, and write about the process.

拥有自己的网站,在上面撰写关于你正在做的事情的文章,这强烈表明你认真对待自己的职业生涯发展,并渴望成为一名优秀的开发人员。

一开始这样做可能会让人望而却步,而且它很容易让人陷入分析瘫痪。

我该写些什么?

我必须要有自己设计并定制编写的网站吗?

如果我的写作水平很差怎么办?

你必须克服这些障碍,然后开始行动。

随着时间的推移,你的写作水平会不断提高,随着你的粉丝越来越多、作品越来越多,决定写什么也会变得更加容易。

建立关系

我天生就不擅长建立人际关系。我更喜欢独来独往,所以这对我来说很困难。但如果​​你想在事业上取得成功,建立良好的人际关系至关重要。

“人脉”这个词听起来很可怕,它让人联想到尴尬的聚会、俗气的罐头式陌生邮件和虚假的人际关系。

但建立真正的人际关系非常有价值,而且完全不必感到尴尬或虚伪。

建立真正的人际关系是打造成功职业生涯的关键要素之一,但这一点往往被人们忽视。

你获得的每一份工作都离不开他人的推荐。如果是通过求职申请直接招聘,那么推荐人很可能就是招聘经理。

但很多时候,这份工作会因为你认识的人,了解你的技能,在听到招聘信息时想到你,并把你推荐给招聘人员而到来。

潜在雇主对推荐人的部分信任会转移,因为推荐人会为你获得该职位的能力作担保。

我就是这样找到现在这份工作的,也是无数其他人找到绝佳机会的方式。

很多时候,绝佳的招聘机会不会公开发布,因为有人已经认识合适的人选。即便公开发布,那些没有任何关系或背景信息就直接投递简历的人,相比那些有关系的人,也处于非常不利的地位。

你建立人脉的目标是尽可能多地认识合适的人,让他们了解你的能力和对新机遇的渴望。

但这在实践中究竟是什么样的呢?

有很多比我更擅长人脉拓展的人,我最喜欢的是莫莉·贝克。如果你想了解构建强大人脉的具体方法,我强烈推荐你阅读她的著作《拓展人脉》(Reach Out)。

她教网络技术比我做得好得多。

解决实际问题

新开发者最容易陷入的陷阱之一就是无休止地学习课程和教程。

你会学习无数不同的教程和课程,并在动手实践的过程中不断学习,整个过程你都会感觉很棒,觉得自己学到了很多东西。

而当真正要自己动手做点什么的时候,你就会感到完全束手无策。

That’s because while courses and tutorials are a great way to be introduced to new technologies and concepts, they are not great for the majority of your learning.

For that, you need to build your own real-world projects.

By real-world, I mean projects that you build in order to solve a specific problem that you or someone else has.

They should have real parameters for success and real challenges to overcome. Todo lists are great for being exposed to the basics and deciding if you want to learn more, but you should always build real things as the bulk of your learning.

Building real things that don’t have a step-by-step process is what you’ll be doing when you land that first job, so start figuring out how to do it now.

Embrace the struggle.

That feeling when you don’t know how exactly to do something, and you Google the crap out of it, try different things, fail, and eventually figure it out.

That’s real learning.

Doing that over and over again is how you’ll not only learn the best but build the best portfolio to prove your knowledge and skill set.

Never stop learning

Staying stagnant is the enemy of success in any career, but more so for development and tech industries than most other fields.

Find relevant newsletters to subscribe to, continue to read posts on sites like Dev.to, and stay up to date on the industry and where things are headed.

When you find a new technology that looks interesting to you and looks like it might have some traction, schedule in some time to learn it and build something with it.

This way, you always have basic knowledge of the current tech and can scale up that learning as needed if you want a specific job or it is required for your current job.

Make sure you continue to learn about not only development but other related skills like design and marketing. See the section above on being a generalist for more on this.

Cultivate discipline

Finally, there will be days when you don’t feel like doing any of this.

You’ll be tired, overwhelmed, angry, distracted, or a million other things.

Ignore that feeling. Keep going. Stick to your learning and your creating.

Professionals show up, amateurs wait for inspiration.

My favorite book on discipline is Mindful Self Discipline by Giovanni Dienstmann.

There is no shortcut here, there is no easy answer or hack to make all this magically easy.

There are, of course, smart and not as smart ways to go about doing things. But once you’ve figured out the system and know what work needs to be done you have to do the work.

You can also follow me on Twitter.

文章来源:https://dev.to/krgrs/7-practices-of-excellent-developers-and-all-around-awesome-humans-e1n