2022H2半年小记

Kaffa 发布于 最后修改

分类: 文章

ALaunch 和 Leetcode

在上半年设计了 ALaunch,后因参加面试停更了两个月,去 Leetcode 刷完几十题,通过了算法面试,但 ALaunch 更新却放下了,后因面试流程挂起,让停更显得很无谓,空耗费时间,唯一的收益是发现面试刷 Leetcode 只是一个同其他考试雷同的小游戏,你只需要掌握每种语言及其有限的特性和标准库/包、基本算法和基本数据结构就可以玩转。

到最后在线面试,发现帮你通过面试的,其实还是那些过去的几十年中积累的基础技能,可在程序世界的公司们喜欢使用此类游戏化的方式挑选员工。类似的还有很多类似的测评,如一些更难的认证和考试,如 PMP,CFA,GRE/GMAT 等,找一个智力水平正常的中国大学生脱产投入,一定可以在 5 次以内通过,这是学习的认知心理学规律决定的。

商业、业务和信息技术的关系

经典概念因为难以准确定义,在不同的领域通常会演化出不同的名词,中文商业和业务是 Business 的翻译,一体两面,商业偏学术沙盘,业务偏企业实操,信息技术即业务模式的固化。信息技术与商业模式的关联上有两种,一是商业模式验证后,利用信息技术加速复制业务;二是信息技术本身作为产品和服务。对于个人创业 PMP 很有用,但在企业工作,学习了 TOGAF 后更能打通理解商业的任督二脉,从而理解企业运作和经营。

武器之中,棍的优势是长,且力出一线,适合武术精英;良好的架构好比双截棍,让普通人也能打出百斤之力。因为双截棍有一个分割结构,更灵活多变,好适应对手打法。在创业初期,需集中资源开拓创新时,职能分离的灵活结构并不是理想的组织结构,但在守业阶段,分层和分离,却可以更好的保护和固化商业模式。毕竟创业是短期主义,企业是马拉松,长期主义更吃防守和抗风险能力。

Mark Russinovich 推 Rust,Bjarne Stroustrup 讽之

作为一名编程语言爱好者,这二十年间我至少用过二十种以上的编程语言。有些一直在用如 Python,有些只用过那么几次,如C、Object Pascal、Objective C、Lisp。如果把这些语言看作一颗世界之树,你会发现基本的毛细根系都是Assembly、C 和 Shell,再上是 C++、Java、C#,然后是 Python、Go、JavaScript/TypeScript系、PHP系、Ruby等,还有一些如 Lisp,还有一些离我们很远。

Bjarne StroustrupMark Russinovich,此两人都是世界少有的开发者,前者是 C++ 之父,后者是使用 C++ 编程几十年,原来的 Sysinternal 公司创始人后被 Microsoft 收入囊中,现在的 Azure CTO,前者都在学术世界取得非凡成就,后者在商业世界成功非凡,Russinovich 是顶峰,Stroustrup 更是顶峰之巅。

C++ 的诞生就是 Bjarne Stroustrup 的连续性哲学的体现,它完全实现了 C 的后向兼容,这样便继承了 C 的财富,而同等的语言变革的例子 Python 2 到 Python 3 就是另外一种哲学,Guido van Rossum 仁慈的独裁也让 Python 取得了另一种成功,现在正和 Anders Hejlsberg 共同在 Microsoft 工作着,致力于将 Python 性能翻倍,而后者是另一个天才,Turbo Pascal 编译器的主要作者,Delphi、C# 和 TypeScript 之父;而进化失败的例子也比比皆是,如从来没有的 Perl 6 变成了 Raku。

2202年了,这个商业世界并不缺少语言,缺少的能满足人们欲望的语言,清晰,灵活,紧凑,开发与运行效率兼顾,且安全。

Rust 为什么还有机会?要从编程语言的大局说起,每一种久负盛名的语言背后都有一个成功的商业生态。

C++ 是所有商业生态的基石,Java 能成功,相对于 C++ 来说,是因为 JVM 解决了平台差异封装了变化,同时抹平了菜鸟程序员和普通程序员之间的差异,满足生产率需求,也就是成本的需求,再遇上了 Web 时代后,虽然 PHP 商业友好,但深入后遇到瓶颈后都只能自己撸,坑多,标准轮子少;dotNet 出身于 Windows 平台,商业上需 Windows Server 授权,研发上需 Visual Studio 授权,天然对创业企业不友好,而 JavaScript 抓住了 v8 和 异步,加上移动互联网的前端机会牢牢站稳了脚跟,Go 把并发平民化了获得了一定的市场份额,其实 Rust 在 Firefox 48 中走入公众视线,距今不到 7 年,如今编程世界的生产率相较于 10 年前,也并没有质的飞跃,只是变得更分散了,痛点也更碎片化了。这导致计算和人更近,而对商业逻辑计算的看护成本更高,随着安全产品化后,对安全主题的关注逐渐从水下浮出水面。

但这些却不是我这一个月来学习 Rust 的原因,之所以开始磕 Rust,是从系统论的角度考虑,我的假设是,一,商业世界的底层是 C/C++,那些属于顶级极客,基础建设被解决了;商业世界的上层,被 Java 和 JavaScript 解决了,包括 Go 它们都是靠 GC 的;二,对于在校学习了 C、Java、Python 的年轻人来说,再学习 Rust 和 C++ 的成本基本一致,而 Rust 更潮更高薪,还能收获零开销的内存安全。

“你也是个 Rapper”

我也不是一个追新者,Bjarne Stroustrup 暗讽说某些高管总是迷恋新事物,让我想到了老舅,未来可能没有新说唱,但 Rap 会一直存在;可能其工作的行业影响其认知吧,Stroustrup 先是从事研究和教育,后转入大摩,会不会是因为教育和金融都是亘古不易旧事物,总在不变中思考变化。而 Russinovich 却一直在变化中。

在此留下未来10~20年关于 C++ 和 Rust 的判断:Rust 会拿走 C++ 2/3 的份额。世界的发展是连贯的,但从来都不是线性平滑的,旧事物已然太卷时,年轻人需要变革,甚至是颠覆,Rust 正是这样的新赛道。

感谢阅读。