程序员老鬼

年薪60万的同事竟然不会用GitHub,是当场撕开皇帝新衣?还是加入夸夸群喊“大佬666”?

最近刷到一条帖子,年薪60万,不会用GitHub?我一开始也震惊了,以为是标题党,结果真不是。楼主说同事连clone和pull都分不清,这放到我们组,那是要被调侃到下班不敢喝奶茶的程度了。
Image
但冷静一想,其实也不稀奇。大厂里真有些年薪几十万的“大佬”,靠的不是代码,而是沟通、资源整合、拍板能力,GitHub?那是写代码的人用的,他只负责定方向。
不过我还是忍不住想问一句:你年薪都60万了,不会用GitHub,是不是有点“太把自己当产品经理了”?
我觉得吧,这种事说穿了确实像“皇帝的新衣”,但也不能一刀切,人各有长短,有人会写代码,有人会写PPT,也有人擅长开早会。你觉得该夸还是该撕?【备注:文末可领最新资料】。

算法题:有效数字

有时候刷题真的就像谈恋爱,乍一看你以为人家很好懂,结果一深入交流就发现……你根本猜不透她到底想表达啥。😵‍💫
“有效数字”这题就是这种——题目看上去很“正常”,但细节那是一堆隐藏的坑。
题目大概是这样的:实现一个函数,用来判断一个字符串是否表示一个有效数字。
举个栗子:
"0" ✅"e9" ✅" 0.1 " ✅"abc" ❌"1 a" ❌"2e10" ✅
你可能会说:“这不就是个判断是不是数字的事吗?” 我一开始也是这么想的,结果一开写——我草,原来是要自己写个小型的解析器啊!谁懂啊?
这题你不能用 Double.parseDouble(s) 来糊弄过去,题目没那么傻,测试用例会让你当场去世。咱得上真活。
我是怎么做的?老老实实写个有限状态机(Finite State Machine)。虽然听起来像是要去参加 ACM,但其实逻辑也不复杂,就是状态+转移。
简单来说,一个数字可以有以下结构:
  • • 开头可以有空格

  • • 可以有正负号

  • • 整数部分

  • • 可选的小数点

  • • 小数部分

  • • 可选的指数部分(e 或 E 后面跟个整数)

  • • 结尾还可以有空格

是不是瞬间觉得像是在搞个 CSV 解析器?😂
上代码吧,不然显得我只是嘴炮:
public boolean isNumber(String s) {    s = s.trim();    boolean seenDigit = false;    boolean seenDot = false;    boolean seenExp = false;
    for (int i = 0; i < s.length(); i++) {        char c = s.charAt(i);
        if (Character.isDigit(c)) {            seenDigit = true;        } else if (c == '+' || c == '-') {            // 只能出现在第一个位置或者 e/E 的后一位            if (i != 0 && s.charAt(i - 1) != 'e' && s.charAt(i - 1) != 'E') {                return false;            }        } else if (c == '.') {            if (seenDot || seenExp) return false;            seenDot = true;        } else if (c == 'e' || c == 'E') {            if (seenExp || !seenDigit) return false;            seenExp = true;            seenDigit = false; // 重新判断 e 之后是否有数字        } else {            return false;        }    }
    return seenDigit;}
这个写法简单粗暴,状态全靠变量控制,虽然不如手写状态机清晰,但应付面试题够用了。实际项目当然要更优雅点,但我跟面试官的感情还没深到那个份上。
我在这题上最大的感悟就是:细节决定成败,尤其是当题目跟“字符串解析”有关的时候,别以为你能偷懒,题目就是让你吃细节的亏的。
说个我踩的坑吧:我一开始忘了 "." 和 "3." 这种是合法数字,直接写死了 “没数字不行”,结果挂了好几个测试用例。后来才发现,小数点前后只要有一边有数字就行。
有时候写算法题真的像是在撸猫。你摸头它咬你,你摸肚子它踢你,你说那我不摸了,它还委屈你不爱它了。
但是这种题,撸完之后还是挺有成就感的,你不仅写了代码,还顺手写了个迷你“编译器前端”,让你体验了一把“语法分析”的快乐(?)
总之,我觉得这题最大的价值在于——它很考察你对字符串、状态管理的理解,同时也挺适合用来当“写代码不要跳步骤”的练习,尤其是对咱们这种老在项目里靠库吃饭的人来说,刷题刷出原始感,还是挺上头的。
下次再碰到面试官说:“写一个判断是不是数字的函数”,你就别骂他傻了,这哥们可能真的是想看看你写解析器的样子。

最后,我为大家打造了一份deepseek的入门到精通教程,完全免费:https://www.songshuhezi.com/deepseek

也可以看我写的这篇文章《DeepSeek满血复活,直接起飞!》来进行本地搭建。

-END-

ok,今天先说到这,老规矩,给大家分享一份不错的副业资料,感兴趣的同学可以链接我,微信:hls404 找我领取。

以上,就是今天的分享了,看完文章记得右下角点赞,也欢迎在评论区写下你的留言。