程序员|程序员的三重境界,看看你在哪一重( 二 )


下面这个例子可以较好地解释出前两类程序员的差别 。
【程序员|程序员的三重境界,看看你在哪一重】一所大学的第一节离散数学课上 , 老师看了一下课堂上的同学 , 说 , 我只看一下 , 就能够背出在座的同学们哪个座位上的同学是戴眼镜的 。 同学们纷纷表示不信 , 说这好几十人老师你怎么记得下来 。 然后老师微微一笑 , 转过头去 , 在黑板上画了个表 , 依次写下哪个座位上的同学是戴眼镜的 , 丝毫不差 。 同学们都震惊了 。 说老师你的记忆力太好了 。 老师说其实很简单 , 我们教室的座位 , 每排八个座位 , 共八排 。 其实就是一个八个二进制数而已 。 我只需要把戴眼镜的同学设为1 , 其他没戴或空着的座位设为0 , 每排记一两个数 , 最多记16个二进制数对应的十六进制数就好了 。
就像这样 , 如果戴眼镜的同学设为1:


所以这位老师要记的数其实就两行 , 20384d12 60385f92 。 这样数据编码解码之后 , 具体哪个座位上的同学戴眼镜就很明显了 。 是不是一说就觉得很简单了呢?
对于第二重境界的程序员 , 他们会很熟练的解决普通程序员很难解决 , 或者解决方法很笨的问题 。 因此 , 这一类程序员的不可替代性也比第一类程序员高得多 。 事实上 , 对于大部分第一重境界的程序员 , 很多连基本的二进制数都不会换算 。
这个境界的程序员 , 能够熟练的解决大数据、高并发、流处理等场景下的各种问题 。 年薪顶点大约在50到100万左右 。
第三境界:高等数学 , 攻艰克难
如果说第一境界和第二境界是普通人能够理解的工作的话 , 第三境界的工作可能已经在普通人能够理解的东西之外了 。 这并不是说他们从事的工作是正常人无法涉及的 , 更主要的是 , 从科学角度来说 , 第三境界的程序员 , 他们的工作所涉及的科学问题和工程问题 , 是普通人一辈子也看不懂的东西了 。 这也是第三境界与第二境界的最主要差距 。
他们的程序要处理的问题 , 描述起来 , 可能是酱婶儿的:

对于第三境界的人来说 , 他们的主业已经不是程序 , 而是程序只是实现他们思路的一种方式方法 , 他们最主要的工作是在推导数学问题 , 在解决问题的基础上 , 写个程序验证一下 。 他们惯于把实际的问题抽象成数学问题 , 用各种让人看不懂的方程、公式来描述我们这个世界的运行基础 , 他们可能熟练掌握傅立叶变换或勒贝格积分 , 也可能深谙深度学习和人工智能 ,
对于他们 , 学习和掌握某一领域的前沿技术 , 并且应用到工程实践中来 , 是一种乐趣 , 也是一种自我价值的实现 。
通常来讲 , 他们的程序 , 要么有着各种写在大学教科书上的理论支撑 , 要么支撑着自己的论文和理论 。
对于这一境界的人来说 , 薪资待遇通常已经不是他们考虑的问题了 。 而是工作更是他们人生的一个乐趣 。
那么 , 各位程序员朋友们?你们又在哪个境界呢?