核心观点 - 资深工程师Jake Wharton在离职后列出求职九条准则,首要原则是“不沾AI”,该原则直接淘汰了约80%的潜在工作机会[3][23] - 他认为AI工具并未提升软件质量,且存在版权和伦理问题,高管强制使用AI形成自上而下的不健康工作氛围[22][23] - Kotlin已从竞争优势变为行业基本门槛,真正的差异化在于Kotlin Multiplatform等深入技能[18] - 依赖风投融资的公司被排除后,约95%的潜在工作机会消失,坚持价值观需接受降薪[34] 求职准则与行业影响 - 第一条“不沾AI”:拒绝加入AI公司、不做AI核心产品、不接受强制使用AI,直接淘汰80%机会[3][20][23] - 第二条“不沾加密货币”:认为加密货币更像缺乏内在效用的庞氏骗局,从散户榨取价值[24] - 第三条“远程工作”:自2015年起远程工作,重视面对面交流但拒绝每日通勤[25] - 第四条“开源”:开源对职业发展起核心作用,现代技术完全建立在开源基础上[26] - 第五条“客户高于股东”:反对“平台劣质化”,偏好可持续商业模式而非短期股东利益[27] - 第六条“人高于利润”:反对零工经济剥削性手段,如Uber和Airbnb将运营成本转移给承包商[28] - 第七条“小而专注”:小团队能培养一致性、快速决策和雄心勃勃的解决问题能力[29] - 第八条“多元、公平和包容(DEI)”:地理差异导致工程师收入差距,反对基于不可控特征的歧视[31] - 第九条“工作与生活的平衡”:手机不装工作软件,避免给初级同事传递全天候工作的错误信号[32][33] - 排除风投融资公司后,约95%的潜在公司被排除,因风投支持公司通常提供更高薪酬[34] AI对软件行业的影响 - 高管将AI视为加速产出和削减工程成本的捷径,但现实往往并非如此[22] - AI模型在侵犯版权基础上训练,如Meta使用BitTorrent下载受版权保护的书籍[22] - Coinbase CEO裁员14%并归功于AI,称“非技术团队也能交付生产代码”,Jake Wharton认为其立场短视[35][36] - GitHub Copilot转向基于用量的计费模式后,开发者账单从每月30美元飙升至约1400美元[36] - 依赖LLM的公司将面临运营成本飙升一到两个数量级,百倍成本增长会粉碎AI替代工程师的论点[36] - Cash App在Jake Wharton离开后裁掉了70%的工程师,高管要求留下的工程师用LLM完成四人工作[37] - 负责任使用LLM是作为辅助助推器,不负责任是用其编写超出技术能力范围的代码[38] - LLM基于2022年前人类数据训练,若不断用模型生成内容反馈训练,容易出现“模型崩溃”[39] - LLM本质是统计预测系统,并不真正理解设计决策背后的原因[39] Kotlin语言发展与应用 - Kotlin在Java语言停滞不前时出现,当时Oracle接管Java,发布周期长达两年[5] - JetBrains作为工具公司,能将新语言与IDE及基础设施一起交付,且能利用现有Java生态系统[5] - 2017年Google宣布Kotlin成为Android官方语言之一,Jake Wharton成为Google Kotlin团队第一位工程师[6][7] - Android团队起初对采用Kotlin有疑虑,因Kotlin当时仅稳定一两年,Google采取渐进式引入方式[8] - Kotlin应用范围从Android扩展到后端服务,Spring已正式提供Kotlin优先支持[9] - Kotlin Multiplatform(KMP)被用于iOS应用和桌面软件,如JetBrains自己的Toolbox[9] - Meta、Google和Amazon在生产环境中使用Kotlin,Meta向Kotlin基金会贡献了格式化工具[12] - Kotlin已从能脱颖而出的技能变为行业默认基本要求,真正差异化在于KMP等深入技能[18] - Kotlin相比Java的巨大优势是空安全(Null Safety),将可空性纳入类型系统,在编译阶段阻止空指针错误[44][45] - Kotlin在错误处理方面存在痛点,所有异常都变成非受检异常,难以检查函数失败模式[46][47] - Kotlin真正的优势在于生态系统、开源库和工具链,IntelliJ IDEA和Android Studio的开发者工具领先于Xcode[48][49] - Kotlin开源生态系统健康,源于JetBrains完全在公开环境中开发语言和编译器[62] - Kotlin治理由JetBrains、Google和更广泛社区三方共同主导,由独立Kotlin基金会负责[75] Kotlin与Swift对比 - Swift错误处理是一等语言特性,强制显式处理可能抛出异常的函数,而Kotlin异常处理形同虚设[46] - Swift拥有真正的结构体和紧凑连续的内存表示,Kotlin继承JVM对象模型,对象布局在内存中碎片化[47] - Kotlin在纯粹语言特性上并无绝对优势,但工具生态系统提供更高效且愉悦的开发体验[48][49] - Xcode重构大型iOS代码库是痛苦的事,IntelliJ二十年前就已具备基本重命名重构功能[48] 编程语言与开发实践 - Rust在错误处理方面做得最好,直接在类型系统中表示可选性和易错性[50] - Rust迫使开发者直面所有权、借用和资源生命周期,与严谨工程实践完美契合[51] - 学习不同编程语言能拓宽技术视野,理解不同设计取舍[60] - Rust的所有权和借用规则会从根本上改变编写Kotlin和Java的方式[60] - 接触C、Zig或Rust能理解底层内存布局和CPU缓存未命中带来的影响[61] - 探索Swift、Rust、Zig、C或Haskell不是为了职业精通,而是为了扩展心智模型[57] - Haskell从根本上重塑对数据建模的认知方式[58] 开源生态与依赖管理 - 开源带来巨大的招聘和声誉价值,发布高质量库标志着成熟的工程文化[65] - 现代开源工作中很大部分是隐性的公司赞助,公司雇用全职人员开发项目[68] - 个人业余项目成为其他公司代码库中“承重的基础设施”,但缺乏可持续资金支持模式[68][69] - 依赖是一把双刃剑,引入库时就承担对该代码的全部责任,如同自己编写一样[63] - 向上游贡献修复代码应成为默认心态,以积极“主人翁精神”对待依赖[64] - 共享开源代码库代表累积的集体工程智慧,是单一提示词生成器无法复制的[64] 公司规模与组织文化 - Square从Jake Wharton加入时的200人扩张到约12,000名员工,组织惯性、官僚主义和产品臃肿不可避免[30] - 公司规模变大时,工程师职责范围急剧缩小,如Twitter一位工程师仅负责私信输入框[30] - 小团队提供更多学习机会,工程师被不断推离舒适区,必须事必躬亲[30] - 高管强制要求使用特定开发工具,尤其在持续裁员背景下,形成不健康工作氛围[23] - 风投支持公司通常能提供更高薪酬,但排除后约95%的潜在公司被淘汰[34]
狂裁70%工程师指望AI顶上?Android之神算了一笔账:补贴一旦退潮,AI账单直接贵过程序员