Admin Avatar

初级工程师关心编写软件。他们重视代码质量,采用最佳实践,投入大量时间学习新技术,最终目标是创建优雅、高性能、可维护的软件。

高级工程师关心构建系统。对他们来说,创建软件只是一个步骤。他们首先质疑是否需要构建软件,询问它会解决什么问题,以及为什么解决这些问题很重要,然后询问谁将使用该软件和使用规模,并且考虑软件将在哪里运行以及如何监控,还决定如何衡量软件是否真正解决了它应该解决的问题。

以下为全文译文:

初级工程师关心的是编写软件。他们重视代码质量,采用最佳实践,尝试采用前沿技术。他们投入大量时间学习新技术。对他们来说,最终目标是创建优雅的、高性能的、可维护的软件。

高级工程师关心构建系统。对他们来说,创建软件只是其中一个步骤。首先,他们质疑是否首先需要构建软件。他们会问这能解决什么问题,为什么解决这些问题很重要。他们询问谁将使用该软件以及使用规模。他们考虑软件将在哪里运行,以及他们将如何监视软件是否正常工作。他们还决定如何衡量软件是否实际上解决了它应该解决的问题。

构建系统比构建软件难得多。甚至可能会不舒服。作为一名工程师,呆在自己的洞穴里专注于完善这段美丽的代码是非常诱人的。人们很容易认为确定需求是产品经理的工作,而部署软件应该由运营团队负责。然而,通过参与构建系统的这些方面,您可以带来很多价值。你是最了解你的软件的人,也是最了解如何运行它、如何监视它、扩展它有多容易等等的人。更重要的是,你的分析能力和解决问题的能力使你对产品需求的洞察力非常有价值。

技术专长当然是非常重要的。优雅的、高性能的、可维护的软件更容易运行、更少中断、更容易扩展和推理。然而,它可能会解决一个错误的业务问题。或者可能客户不喜欢它,因为您甚至不知道性能问题,因为您没有监视它。

让我们更深入地看一下构建系统的一部分活动的列表(并非详尽无遗) :

  • 定义需求-与产品经理一起工作,了解他们想要解决什么问题; 也许你会有一些想法,如何用更少的努力来解决它?
  • 定义 NFR-与 PM 讨论非功能性需求-系统应该处理多少用户,对性能、吞吐量和延迟的需求是什么?是否有任何安全性或遵从性考虑因素?我们需要审计吗?需要的可用性是什么?
  • 计划迭代——与您的团队一起提出一个实现计划; 确保您定义了小的、可拆卸的里程碑,以便您可以尽快开始交付价值; 在里程碑上与 PM 达成一致。
  • 确定依赖关系——确保您确定了团队之外的所有依赖关系,并与您的 EM 或团队直接合作,以获得一些预计到达时间。相应地调整你的里程碑。
  • 测试——取决于你的公司如何运作,与你的团队或 QE 团队一起决定你的测试策略。同意推出所需的质量阈值(例如没有未解决的主要错误或测试覆盖率超过 X%)。
  • 部署-与您的团队一起决定如何部署系统。您是否需要一些新的基础设施,或者可以重用现有的基础设施?如果你需要很多的话,需要多少钱?
  • 可观测性——决定如何监控系统的健康状况,并建立解决生产问题的流程(例如团队待命)。使用第三方解决方案(如 Sumo Logic)来设置监视器和仪表板。
  • 展开沟通——一旦你与你的团队和项目经理就展开日期达成一致,确保所有的利益相关者都意识到这一点。检查是否需要更改文档。
  • 衡量成功——确定能够告诉你项目是否成功的度量标准。有人在用新系统吗?用户是否设法完成他们的任务?为此,您可以利用您的可观察性套件。

我遇到过许多工程师,他们坚信提升职业生涯的唯一途径就是投资于他们的技术技能。虽然这一点很重要,但对你的公司来说,唯一重要的事情是你对业务的影响有多大。将重点从软件转移到系统将使您处于一个更好的位置来增加它。

From:阮一峰 科技爱好者周刊(第 232 期)《什么是高级工程师?》

Admin Avatar

一个人很难擅长整个技术堆栈。我建议初学者专注于堆栈的一个部分:前端,或后端,或底层架构。随着你不断深入自己的领域,你将获得涉足所有领域的信心。

From:阮一峰 科技爱好者周刊(第 231 期)Hacker News 读者

有的时候需要模板里打印下进行Debug,那么一些比较老旧的框架,使用的Smarty模板引擎,是如何调用var_dump的呢?
方法示例如下:

{$array|@var_dump}

参考资料Smarty側 で var_dump() 出力する方法[……]

阅读全文

Admin Avatar

我认识的那些不知道自己热衷什么的人,都努力得不够。他们只是坐在那里,等待事业的灵感来袭。

他们不应该等待,应该去创造,然后就会知道自己的激情在哪里。

From:阮一峰 科技爱好者周刊(第 231 期) – David Perell

bg2022112421

以下内容摘录转载自:阮一峰 科技爱好者周刊(第 232 期) —— 日记的作用

编程有一个术语叫做”橡皮鸭”,指的是这样一种场景。

程序员遇到一个特别困难的问题,有时会找到其他人,向他人描述这个问题,希望其他人给点建议。

但是,在描述问题时,为了让他人理解,程[……]

阅读全文

Admin Avatar

如何通过价值观设计帮助团队成长?

分享一下我的做法供参考。我的公司只讲究一条价值观:人人都要当“妖怪”。

这起源于一个段子:孙悟空能大闹天宫,为什么打不过路上的妖怪?因为天兵是“打工人”,妖怪都是“创业者”。

我要求我的员工为了梦想、出彩、家庭幸福、对社会有益而工作。甚至,尊重他们的“自私”,建议他们把自己的梦想结合到工作中。

相应地,我的2000名员工中有200名合伙人,我提供资金,让他们自主运营,设计好分钱机制、监督机制,设立“悟空”部门,寻找机制漏洞。

价值观服务于经营目的,为了团队成长,就得让员工当“妖怪”。

From:生财有术-妖怪113

Admin Avatar

如何理解长期主义?

长期主义是每件事都不凑合。对长期主义者来说,要么不做,要做就做好,没有“凑合做做”的中间状态。

在践行过程中,我总结了六点经验:

  1. 不盯着眼前的利益,而是着眼于未来的价值。
  2. 不预测变化的东西,而是聚焦于不变的东西。
  3. 可以忍受短期内看不到回报,但是期待更长期的回报。
  4. 内心想到的回报曲线不是线性曲线,而是一个指数曲线前期波澜不惊,后期增长迅猛。
  5. 对待人方面极有耐心,不求短期利益交换,而是更长期的认可,能释放更长久的价值。
  6. 对长期有信心,对短期有耐心。

From:生财有术-张辉