收到工资1182415.18元,爱你DeepSeek!
今年DeepSeek爆火,生成式AI和大模型技术呈现爆发式增长,也让算法工程师重新成了炙手可热的岗位,岗位薪资远超很多运维、嵌入式、前后端岗位,在程序员中稳居前列。AI的快速发展也给很多程序员带来更多
阅读全文今年DeepSeek爆火,生成式AI和大模型技术呈现爆发式增长,也让算法工程师重新成了炙手可热的岗位,岗位薪资远超很多运维、嵌入式、前后端岗位,在程序员中稳居前列。AI的快速发展也给很多程序员带来更多
阅读全文多重继承这东西。一开始不是为了炫技。是为了活下去。那是 80 年代。C++ 还叫 C with Classes。项目开始变大。文件多。人也多。复用的冲动特别真实。你写了一套“通用能力”:能打印,能扫描
阅读全文有些语法。长得像小修小补。当年却真救过人。你写着写着。会突然发现。你想复用一个基类。但你不想把它的所有东西都“送出去”。更麻烦的是。你还不想为了这点事。去改基类。回到 C with Classes 的
阅读全文80 年代的工程师很少一上来就讨论“对象模型”。他们更常讨论的是。这段代码能不能少复制一点。这个模块能不能少改几处。这个改动能不能别把整个项目带崩。那时候 C with Classes 还很年轻。你能
阅读全文——给求职焦虑的你,一个能写进简历、也能讲进面试的虚拟 CPU 项目很多年之后。你再回头看那段找工作的时间。大概率只记得两件事。一件事。刷题。刷到怀疑人生。另一件事。面试官翻着你的简历。抬头问一句:“
阅读全文很久以前。大家写 C。想复用。只能复制粘贴。或者写一堆宏。也有人开始玩“结构体套结构体”。看起来像继承。但谁都知道。这东西全靠自觉。自觉这种东西。最不可靠。C with Classes 出现以后,新的
阅读全文那会儿大家写 C。写在一堆 .c 和 .h 里。项目开始变大。但工具和语言,还是那个工具和语言。你想复用一段逻辑。第一反应不是“继承”。第一反应是:复制粘贴。然后祈祷别漏改。再然后。你就会开始讨厌自己
阅读全文你第一次见到 std::move。大概率会被名字骗一下。move。那不就是“移动”吗。于是你心里会冒出一个很自然的画面。我把东西 move 走。原来的地方就空了。然后你会以为性能会更好。故事要从更早的
阅读全文那会儿我刚从 C 走到 C with classes。项目不大。人也不多。我们写代码的标准很简单。能跑。就算赢。直到有一天。同一份程序。在我机子上不炸。到了客户那台机器。啪一下。我去问原因。没人能一句
阅读全文八十年代初。贝尔实验室里有一拨人。他们在用 C 写系统。代码能跑。但维护很痛。痛点不新鲜。就是“忘了收尾”。忘了 destroy。忘了 free。忘了某个 init。然后线上开始讲鬼故事。有人想把这事
阅读全文decltype 这玩意,到今天都像个老朋友……它不是为了让你写得更“高级”,而是为了让类型别再靠猜。你写模板写到凌晨,就会理解这句话的分量。那会儿还叫 C++0x,标准还没定,可项目已经要交付了。你
阅读全文——给想把“内存管理/RAII”真正讲清楚的你,一套可验证的硬核训练很多年之后。你再回头看那段找工作的时间。大概率会记得两件事。一件事。刷题。刷到怀疑人生。另一件事。面试官翻着你的简历。抬头问一句:“
阅读全文我第一次被“静态成员”坑到。不是崩溃。是链接错误。那种很有年代感的红字。undefined reference to Foo::kCount当年我还以为自己把 C++ 写坏了。后来才明白。我只是把“变
阅读全文我第一次真正在意“常量”。不是因为它难。是因为它太容易被写错。然后还很难查。那会儿我在修一个老项目。头文件里全是 #define。像家谱。谁也不敢动。但线上就是这么爱挑这种时候出事。某次夜里。报警响了
阅读全文那天我都准备下班了。工位灯都关了一半。群里突然有人 @我。“线上有个小服务。启动就崩。刚发的版本。”我第一反应是。谁又把构造函数玩坏了。因为这种事故有个味道。像新买的咖啡机。啪一声。跳闸。我们那会儿刚
阅读全文我第一次看到这句输出。是很多年前。一个老同事把打印丢给我。他说。“你看,C++ 连空都不让你空。”#include <iostream>struct Empty {};int main() {
阅读全文auto 这东西。我第一次认真看它。不是在 C++11。是在更早的老代码里。那种你一打开就能闻到“2003 年味道”的工程。你会看到一堆熟悉的老朋友。static。extern。register。还有
阅读全文我刚学 C 的时候。函数很“老实”。你要它改谁。你就把谁的地址传进去。void inc(int* p) { ++*p;}int x = 0;inc(&x);你看。谁被改。一眼就知道。后来我第一次
阅读全文内存不是黑盒。你把它想成一排“字节格子”。从地址 0 排到地址 N-1。每一格。正好 1 个字节。很多问题就不再神秘。比特。字节。地址。sizeof。会在同一张图上对齐。很多教材也会用一句话开头。然后
阅读全文我最早学 C 的时候。老师不爱讲“对象”。他只讲内存。讲地址。讲 malloc。然后拍着黑板说。“结构体就是一段连续的字节。”这句话听起来粗。但它很诚实。后来我开始写 C++。同样的结构体。突然就能有
阅读全文我第一次被 sizeof 教做人。不是在课堂。是在一次很真实的协议联调里。那会儿我还年轻。看见结构体就手痒。总觉得它天生适合当包头。于是我写了一个很朴素的东西。#include <cstdint>st
阅读全文——给求职焦虑的你,一个能写进简历、也能讲进面试的虚拟 CPU 项目很多年之后。你再回头看那段找工作的时间。大概率只记得两件事。一件事。刷题。刷到怀疑人生。另一件事。面试官翻着你的简历。抬头问一句:“
阅读全文如果你把时间往回拨。拨到那种“机房时代”。一台机器。一套生态。CPU、总线、外设。乃至编译器和文件格式。都在同一个家族谱里。那时候你很少听人争论“字节顺序”。不是因为大家更聪明。是因为边界更少。数据大
阅读全文我第一次在代码评审里看到那种 for 循环。长得像一段咒语。你看得懂。但你不想再看第二遍。std::vector<int> v{1, 2, 3};for (std::vector<int>::iter
阅读全文我很早就认识花括号。那会儿还在写 C。它的工作很单纯。给数组塞初值。给 struct 填字段。int a[3] = {1, 2, 3};struct Point { int x; int y; };P
阅读全文空指针这事。在 C++ 圈子里。真吵了很多年。有人说。写 0 就行。反正大家都懂。有人说。别装。老代码都写 NULL。还有人更直接。说这不是风格问题。是类型系统的问题。要解决就得给“空”一个类型。后来
阅读全文printf 这套东西。来自 C 的年代。那时候机器慢。内存小。接口越薄越好。可变参数一上。大家都觉得很优雅。然后代价就被悄悄塞进了“约定”。格式串要和参数对齐。你不对齐。它也不一定立刻骂你。它可能当
阅读全文lambda 不是突然冒出来的。它是 C++ 很长一段历史里。“回调”和“算法”把人逼出来的产物。九十年代 STL 把算法搬进标准库。sort、find_if、for_each 这些东西一出来。大家就
阅读全文我写 C 的那几年。struct 就是一块内存。你负责填。编译器不插嘴。你也不用去猜它的心思。后来开始写 C++。一开始还挺爽。我什么也没写。对象居然能“默认就能用”。还能拷贝。还能赋值。那会儿我以为
阅读全文我第一次用 enum。是在一个还带着 C 味道的 C++ 项目里。那项目很老。老到你能在角落里闻到宏定义的烟味。当时我们刚从 #define RED 1 这种写法里缓过劲。看到 enum。心里一乐。“
阅读全文