我用Claude三分钟做完了同事三天的活,他当场沉默了,我心里也不是滋味

13 阅读5分钟

背景

iOS攻城狮去年4月份从上海回到长沙工作,面试时有接触做海外工具类项目的公司,其中就有类似LED跑马灯这种项目(当时很纳闷为啥这种小众的需求也能养活一家公司)。这次趁着假期,想用Flutter实现一下这种效果。于是,我花了几十字描述需求,丢给Claude,结果三分钟就生成完整的了商业级App。主要分为四个模块:

  • 跑马灯
  • 手电筒
  • 大字幕
  • 设置

涉及到的技术点主要有:

  • 状态管理:Riverpod
  • 渲染引擎:CustomPainter + Ticker
  • 数据持久化:shared_preferences
  void _drawText(Canvas canvas, double x, double y) {
    final theme = ColorTheme.find(message.colorThemeId);
    switch (message.effectId) {
      case 'blink':
        final a = (sin(phase * 5) + 1) / 2 * 0.8 + 0.2;
        _drawString(canvas, x, y, theme, opacity: a);
      case 'breath':
        final a = (sin(phase * 1.5) + 1) / 2 * 0.7 + 0.3;
        _drawString(canvas, x, y, theme, opacity: a);
      case 'wave':
        _drawWave(canvas, x, y, theme);
      case 'neon':
        _drawNeon(canvas, x, y, theme);
      case 'rainbow':
        _drawRainbow(canvas, x, y);
      default:
        _drawString(canvas, x, y, theme);
    }
  }

  void _drawString(Canvas canvas, double x, double y, ColorTheme theme,
      {double opacity = 1.0}) {
    if (theme.isGradient) {
      _drawGradient(canvas, x, y, theme, opacity: opacity);
    } else {
      _tp(theme.singleColor.withOpacity(opacity))
        ..layout(maxWidth: double.infinity)
        ..paint(canvas, _offset(x, y));
    }
  }

  void _drawGradient(Canvas canvas, double x, double y, ColorTheme theme,
      {double opacity = 1.0}) {
    final tp = _tp(Colors.white)..layout(maxWidth: double.infinity);
    final rect = Rect.fromLTWH(x, y - tp.height / 2, textWidth, tp.height);
    canvas.saveLayer(
        Rect.fromLTWH(x - 10, y - tp.height, textWidth + 20, tp.height * 2),
        Paint());
    tp.paint(canvas, _offset(x, y));
    canvas.drawRect(
      rect,
      Paint()
        ..blendMode = BlendMode.srcIn
        ..shader = LinearGradient(
          colors: theme.colors.map((c) => c.withOpacity(opacity)).toList(),
          begin: Alignment.centerLeft,
          end: Alignment.centerRight,
        ).createShader(rect),
    );
    canvas.restore();
  }

  void _drawWave(Canvas canvas, double x, double y, ColorTheme theme) {
    double curX = x;
    final chars = message.text.split('');
    for (int i = 0; i < chars.length; i++) {
      final waveY = y + sin(phase * 3 + i * 0.6) * 14;
      final tp = _tpChar(chars[i], theme.singleColor)
        ..layout(maxWidth: double.infinity);
      tp.paint(canvas, Offset(curX, waveY - tp.height / 2));
      curX += tp.width;
    }
  }

  void _drawNeon(Canvas canvas, double x, double y, ColorTheme theme) {
    final glow = (sin(phase * 2) + 1) / 2 * 8 + 8;
    final color = theme.singleColor;
    final style = TextStyle(
      fontSize: message.fontSize,
      fontWeight: FontWeight.bold,
      color: color,
      shadows: [
        Shadow(color: color.withOpacity(0.9), blurRadius: glow * 2),
        Shadow(color: color.withOpacity(0.5), blurRadius: glow * 4),
      ],
    );
    final tp = TextPainter(
      text: TextSpan(text: message.text, style: style),
      textDirection: TextDirection.ltr,
    )..layout(maxWidth: double.infinity);
    tp.paint(canvas, _offset(x, y));
  }

  void _drawRainbow(Canvas canvas, double x, double y) {
    double curX = x;
    final chars = message.text.split('');
    for (int i = 0; i < chars.length; i++) {
      final hue = ((phase * 0.3 + i * 0.12) % 1.0) * 360;
      final color = HSVColor.fromAHSV(1, hue, 11).toColor();
      final tp = _tpChar(chars[i], color)..layout(maxWidth: double.infinity);
      tp.paint(canvas, Offset(curX, y - tp.height / 2));
      curX += tp.width;
    }
  }

文字特效包括闪烁、呼吸、波浪、霓虹、彩虹流等,完整代码,效果如下:

Image

思考

实现后,我沉默了。坐在窗台前发呆了一会儿...

回想起Oracle刚裁了三万人。

理由是:要给AI腾出现金流。

公司利润涨了95%,裁员。

Block裁掉40%员工,CEO说得很坦诚:AI让小团队能干大组织以前干的活。

消息发布当天,股价涨了23%。

华尔街在鼓掌。


然后我看到一个更让我难受的数据。

有研究追踪了美国2.85亿条招聘广告。

结论是:AI高暴露度岗位,入门级岗位数量下降了18%到40%。

不是裁员。

是根本不招了。

企业不需要那么多新人进来打基础了,因为AI帮中级员工把基础活全干了。

那些排队等着进来的应届生,敲了半天门,发现门已经在关了。


有人说:AI只是工具,会用就不怕。

这句话我以前也说过。

现在我觉得,这句话是对的,但是它说的和你以为的,不是同一件事。


我做了一个实验。

三分钟建完Flutter项目以后,我继续用Claude往下推。

我让它帮我接入一个复杂的第三方SDK。

它给了代码。

跑不起来。

我让它修。

它改了。

还是跑不起来,换了另一个地方报错。

我用了三十分钟,才把这个问题搞定。

那三十分钟里,我至少判断了五次:它给的方向对不对、改动有没有副作用、下一步该往哪走。

每一次判断,都是我的,不是AI的。


AI给了我一块建好的毛坯房。

但毛坯房里的水路怎么走、墙能不能打、哪里藏着老问题——

这些还是得我来。

只不过,现在不会这些的人,根本进不了门。


这才是真正让我脊背发凉的地方。

不是"AI取代程序员"。

是门槛在移动。

以前你用三年打基础,然后有机会做复杂的事。

现在,那三年的基础工作,AI一秒钟能做几千遍。

你没有机会用三年时间"从基础成长起来"了。

你从第一天起,就必须站在AI已经帮你建好的基础之上,往上走。


所以我现在想清楚了一件事:

AI时代真正的分水岭,不是会不会用AI。

是在AI给出答案以后,你有没有能力判断这个答案对不对。

判断能力,不是靠看视频学来的。

不是靠背八股文学来的。

是靠一个一个真实问题砸在脑子里,搞定了,积累出来的。

那我们怎么办?

我说三个不废话的事。

第一件事,立刻把AI用起来,但不要只用它生成。

用它测试你的判断。

你先想好方案,然后问AI,看它给的和你想的哪里不一样,为什么不一样。

这样你还是在成长。

反过来,你什么都不想,直接把AI输出的往上交,你的判断力就是在退化。

第二件事,向上走,不要横着走。

不要花时间去学"怎么把AI用得更顺手"这种技巧。

要花时间搞清楚你所在领域里最难的那个问题是什么,把它搞清楚。

AI能帮你速成浅层的东西。

深层的东西,它只是帮你省时间,但路还是你自己走。

第三件事,别等行情好了再说。

那47个Oracle的DBA,被AI用8个月学完了他们的经验。

他们可能每一个人当时都觉得,"我这岗位稳着呢,技术活哪有那么好学"。

等到知道的时候,邮件已经在路上了。

结论

所以我的结论是什么?

不是"拥抱AI就能赢"。

也不是"坚守初心终会胜"。

是:

在AI能做的事里,你只是执行者。

在AI做不到的地方,你才是那个人。

你要知道自己的那个地方在哪里。

然后,每一天都往那里多走一步。

就算只有一步。


你有没有用过AI做出让自己惊喜、又让自己有点害怕的东西?评论区聊聊,我想看看大家的真实感受。