我的 MBTI 测试结果:INTJ-A(建筑师型)

“思想成就了人的伟大。人不过是一根芦苇,是自然界最脆弱的东西,但他是一根会思考的芦苇。”

—— 布莱士·帕斯卡

最近做了一次 16Personalities 人格测试,结果是 INTJ-A(Architect,建筑师型)。以下是对结果的解读和记录。


核心数据

能量 · Energy — 偏好深度社交,从独处中恢复精力 ████████████░░░░░░░░ 62% 内向 ────────────────────── 外向

心智 · Mind — 关注抽象概念和未来可能 ██████████░░░░░░░░░░ 52% 直觉 ────────────────── 观察

本性 · Nature — 以逻辑和客观标准做决策 ████████████░░░░░░░░ 64% 思考 ──────────────────────── 情感

策略 · Tactics — 喜欢提前规划,按计划推进 ████████████░░░░░░░░ 63% 判断 ──────────────────────── 展望

身份 · Identity — 自信型,从容应对压力 ██████████░░░░░░░░░░ 51% 自信 ──────────────────── 动荡

INTJ 建筑师型解读

作为 INTJ,拥有远见与务实的罕见结合。分析型思维始终渴望理解周围的世界,被永不满足的好奇心和优化系统与理念的欲望驱动。用战略性思维面对生活,总能提前规划好几步,并为各种意外情况做好预案。

独立是最鲜明的特质之一:极度重视自主性,常常倾向于独自工作,将自己的判断和能力置于一切之上。这种自立,加上智力优势,能自信且富有创造力地解决复杂问题。

性格特质细节

理性的态度在很多情况下很有用,但也会给人际关系带来挑战:

  • 可能会觉得情绪表达和社交客套令人困惑甚至多余,更偏好直接沟通和逻辑讨论。这会让别人眼中显得冷淡疏离,即使内心其实很在乎。
  • 对知识和进步的追求永无止境,对自己和他人都有极高的标准,始终追求效率与效果。这种对完美的执念既是优势也是隐患:它能推动成就大事,但如果不加管理,也容易导致压力和 burnout。

职业道路分析

优势:在充满智力挑战、能实现创新想法的环境中如鱼得水。擅长发挥战略思维和解决问题的能力,通常会被科学、技术或商业战略等领域吸引。既能看到大局,又能兼顾关键细节的能力,是任何组织的宝贵资产。

挑战:偏爱独立工作、厌恶办公室政治的特点,有时会阻碍职业发展。学会应对社交动态、有效地向他人传达想法,对职业成长至关重要——独特洞见只有在被他人接受和采纳时,才能真正发挥价值。

优势与弱点

优势

  • 创新思维:能看到别人忽略的可能性,找到更聪明的解决方案
  • 独立工作者:能高效自主完成任务,无需频繁监督
  • 概念性思维:轻松理解抽象复杂的想法,适合战略规划
  • 持续改进:本能地优化流程,持续提升效率
  • 客观判断:基于事实而非个人偏见做决策,赢得同事尊重
  • 可靠表现:在关键任务中表现稳定,是团队的可靠支柱

弱点

  • 社交网络不适:不愿主动推销自己,限制了机会
  • 抗拒约束:反感僵化规则和不必要的限制
  • 忽视社交动态:看不懂办公室政治,容易引发误解
  • 不愿授权:不信任他人能力,导致过度劳累
  • 过于直白的反馈:追求效率时可能说话伤人
  • 对常规缺乏耐心:容易被重复任务消磨热情

个人成长方向

成长之路充满了智力探索和自我反思。始终主动拓展知识、打磨技能,渴望精通一切。这种自我提升的驱动力让人不断突破,但真正的成长,在于学会平衡理性与感性:

  • 理解并接纳自己和他人的情绪,学会表达情感、理解他人视角,将极大改善人际关系和整体幸福感
  • 学会庆祝小成就、接受不确定性,避免因过度追求完美而陷入内耗

关于 INTJ-A(自信型建筑师)

相比 Turbulent INTJ,Assertive INTJ 的特点:

  • 面对压力更从容,不容易陷入自我怀疑
  • 对自己的能力和决策更有信心,行动更果断
  • 更少被他人的评价影响,能更专注于目标本身

以上,记录一下自己的 MBTI 结果。也许过几年再测一次,看看有没有变化 😊

当猜数字游戏遇见飞书机器人

一个人的时候,有时会想写点小东西——不是为了有用,只是为了有趣。昨天晚上,我就在飞书上让 Hermes Agent 给我写了一个猜数字游戏。

玩法

系统随机生成一个四位不重复数字(0-9),你来猜。每次猜测,系统会告诉你两个数字:

  • A = 数字正确且位置正确
  • B = 数字正确但位置不对

比如秘密数是 1284,你猜 1234,结果是 2A2B——两个数字(1 和 4)位置正确,两个数字(2 和 3)数字对了但位置不对。

直到猜出 4A0B,游戏结束。

从终端到飞书

一开始它写的是一个终端交互版——用 input() 接收猜测,在终端里 print() 结果。这当然没问题,但我想在飞书聊天里直接玩,不需要 SSH 进去。

所以改了一版:把游戏逻辑模块化,用 JSON 文件持久化状态(秘密数和尝试次数)。这样每次你在飞书发一条消息,Hermes 就调一次 Python 脚本,读状态、做判断、写回状态、回复结果。整个过程对玩家来说是无感的,就像在和一个真人裁判对话。

源码

完整的游戏脚本,不到 60 行:

#!/usr/bin/env python3
"""猜数字游戏 — 飞书/聊天交互版(文件持久化)"""

import json
import os
import random

STATE_FILE = "/tmp/guess_number_state.json"


def _load_state() -> dict:
    if os.path.exists(STATE_FILE):
        with open(STATE_FILE) as f:
            return json.load(f)
    return {"secret": None, "attempts": 0}


def _save_state(state: dict):
    with open(STATE_FILE, "w") as f:
        json.dump(state, f)


def is_valid(guess: str) -> bool:
    return len(guess) == 4 and guess.isdigit() and len(set(guess)) == 4


def start() -> str:
    secret = "".join(random.sample("0123456789", 4))
    _save_state({"secret": secret, "attempts": 0})
    return (
        "🎯 猜数字游戏开始!\n"
        "规则:我已生成一个四位不重复数字(0-9)。\n"
        "- A = 数字对且位置对\n"
        "- B = 数字对但位置不对\n\n"
        "直接输入你的猜测(4位数字)即可开始!"
    )


def guess(guess_str: str) -> str:
    state = _load_state()
    secret = state.get("secret")

    if secret is None:
        return "游戏还没开始!请说「开始游戏」"

    if not is_valid(guess_str):
        return "输入错误!请输入4位不重复数字(0-9)。例如:1234"

    a = sum(g == s for g, s in zip(guess_str, secret))
    b = sum(g in secret for g in guess_str) - a
    state["attempts"] += 1

    if a == 4:
        msg = (
            f"🎉 恭喜!猜对了!\n"
            f"答案:{secret}\n"
            f"总共猜了 {state['attempts']} 次!\n"
            f"说「再来一局」重新开始"
        )
        _save_state({"secret": None, "attempts": 0})
        return msg

    _save_state(state)
    return f"结果:{a}A{b}B(第 {state['attempts']} 次)"

核心逻辑其实只有 evaluate 那一小段——sum(g == s ...) 算 A,sum(g in secret ...) - a 算 B。干净利落。

实战:1284 的四次对峙

游戏开始了。我并不知道秘密数是什么,只能靠每一次的反馈去逼近。

第一猜:4637

0A1B

四个数字只有一个存在,而且位置也不对。信息量很少,但至少排除了三个数字。

第二猜:1289

3A0B

这一下子从迷雾中走了出来。三个数字完全正确,且位置也对。唯一的遗憾是最后一位猜错了——但这也说明,那三个数字(1、2、8)已经锁定了。只是最后一位不是 9。

接下来就是一场耐心的排除。剩下那位,只可能从 {0,3,4,5,6,7} 里选。

第三猜:1287

3A0B

不是 7。

第四猜:1283

3A0B

不是 3。

第五猜:1284

🎉 恭喜!猜对了!答案:1284,总共猜了 5 次!

那一刻的感觉,就像终于拨开最后一层迷雾,看到了山顶的风景。五次,不多不少。从第二次猜中前三位开始,后面三次不过是在逐一验证那最后一个数字——用最小的代价,完成了最后的确认。

一点感想

猜数字的魅力就在于,它既需要逻辑推理,又保留了一点运气成分。你永远无法一步到位,但每一步都在缩小答案的可能空间。这种「越猜越近」的感觉,和调试代码时的二分查找、逐步缩小 bug 范围,本质上是同一种思维方式。

而把它搬到飞书机器人上之后,又多了一层趣味——像是多了一个随时陪你玩游戏的朋友。

如果你也想玩,说一句「开始游戏」就行。😄

跨越半个世纪的存储浪漫

存储发展变迁

1956年的5MB,是需要被小心翼翼抬着的"数据巨人",每一寸空间都写满了时代的局限。它需要几个人合力搬运,被裹在厚重的防尘布中,像一件需要被供奉的精密艺术品,郑重地搬进机房。在那个年代,5MB的容量足以让一台大型计算机高效运转,每一次读写都像是一次跨越空间的长途跋涉,珍贵又缓慢。

2020年的1TB,是可以轻轻捏在指尖的"信息海洋",每一次读写都藏着科技的温柔。一张指甲盖大小的Micro SD卡,就能装下当年这台庞然大物20万倍的数据,它轻如鸿毛,能被轻易揣进口袋,随我们去往任何地方。

64年的时光里,硬盘从"比人还大"缩成"比指甲还小",存储容量从"几MB"跃升到"几TB"。那些曾经需要一间屋子来安放的数据,如今能被我们随手携带;那些当年需要复杂流程才能完成的读写,如今只是设备里毫秒级的响应。

我们总说"科技改变生活",可最动人的改变,从来都藏在这种对比里:当年的遥不可及,如今已是习以为常;当年的庞然大物,如今只剩方寸之间。这不是魔法,是无数人用智慧,为我们把世界,装进了更小的容器里。