分享

撕破迷雾,看清基础

 新用户77664965 2021-03-30

今天和一些做投资的朋友谈信创,这个火热的概念把中国的股市拉上了好几万亿的市值,投资人都激动不已,所以拉着我聊聊商业机会。不过其实我也不大明白信创是什么,第一次听到的时候还问了问边上的专家,人家告诉我说这是信息技术应用创新的简称。作为国家战略,中国要逐步建立基于自己的IT底层架构和标准,形成自有开放生态。基于这个建立起来的产业生态,就是信创的主要内涵。

我在深圳的Oracle Code 2019上做过一个主题演讲:云时代开发者的机遇和挑战,里面有一页提到了“栈的世界”。估计台下非计算机专业的同学们听懂的不多。大概的意思是在计算机的世界里,我们理解的知识结构都是分层的,比如计算机体系结构里从硬件,到虚拟化,再到操作系统中间件,运行时数据库,最后是应用程序。

图片

在计算机的世界里,这种分层的概念无处不在。比如在写软件的过程中,我们主要的工作就是搭积木,用各种各样不同的模式,把积木搭起来。至于说积木里面,积木上面下面是什么,其实关心或者知道的人并不多。平时可能问题不大, 但是如果不知道每一层里面究竟干了啥,一旦遇到真正的问题,很有可能就束手无策了。

信创这个概念也是一样,还是得在每一个层次上深挖下,到底要做啥。如果要做自主的IT生态,那么就需要把我上面那张PPT里的栈的世界里的东西从头到底都做一遍。诚实的说,这需要时间和人力的堆积,不是说做就能做出来的。

我今天给投资的朋友举例子的时候说,Oracle做数据库做了那么多年,如果说有一个国内企业说能迅速超过Oracle,这显然是不现实的。他最多在某一个技术点上超过。而全面超过,要么就是这个技术不再被大家使用,要么就是我们投入了巨大的人力物力,否则绝无可能。


计算机软件的基础   

科学最基础的,还得算是数理化。硬件的基础是硅,软件的基础是二进制。所以要搞出比CPU还牛的东西,机会应该在新材料或者量子里,当然这个我不懂,就不胡说八道了。

软件的基础是二进制,大家看到的五花八门的IT世界,都离不开二进制。不过很可惜,由于这是基础,所以基本上用不到,导致我们很多人对计算机的理解浮于表面。

图片

我面试工程师的时候经常会问一个问题,就是float在计算机系统里是怎么存储的?这样会引出各种相关问题,比如多少位的系统,IEEE 754,大数端小数端等等,除非是专门做底层系统的程序员,大部分人都答不上来。还有人让他写个排序算法,直接就给了我一个list.Sort(), 真是哭笑不得。

在我过去的编程历史里,操作二进制数据的机会也不多,毕竟无论是写C++还是C#,都有现成的库把这些基础封装掉了,不过也有几个例外。

一次是串口RS232通讯,需要8个字节8个字节传输,我曾经用过VB6,也用过C#或者C++对中断进行写和读,实现了对冲印机机械装置移动的控制及红外摄像头步进电机的控制。

还有一次是参加微软2004年的Imagine Cup做项目的时候,需要对彩信包进行读写。彩信的格式是基于WAP 203和209协议,当时.NET的开源社区还远远没有现在那么发达,所以我就抱着厚厚的协议按照字节对二进制流进行读取,眼珠子都看直了。

图片

还有一次是立体照片文件MPO格式的读取,那是按照JFIF格式封装的,一样的没有标准的库可以用,只能自己根据协议把二进制流读取出来。

图片

这些经历让我在写代码的时候,遇到不明白的库,基本上都有习惯深挖,了解他到底做了啥。好在C#和Java可以用反射了解库内部的大致原理,而不会囫囵吞枣,闭着眼睛用。

我在讲这些的时候并不是说程序员都要从二进制流进行文件操作,但是必须要花时间去了解原理是什么。我遇到过一些比较初级的程序员在写代码的时候,不了解HTTP协议的原理,也不知道TCP的三次握手,上手直接写,到处抄代码,勉勉强强写出来以后遇到各种问题,也不知道为什么。这是永远也不能成为一个好的程序员的。

商业的基础   

最近不写代码了,但是习惯总还是在。遇到一些概念的时候,还是希望深挖这些概念的本质。虽然有可能会犯聪明人犯的蠢事,比如以为这个问题以前我遇到过,可能其实并没有。不过我还是认为,凡事都想看清问题基础的冲动是一个好欲望,就是有点累。

商业世界里的概念也是五花八门,稀奇古怪。我经常遇到一些换汤不换药的产品,东西是差不多的,但是说得天花乱坠,好像世纪大发明一样。我的这个习惯让我避免了一些坑,能尽量减少被忽悠。

商业的基础是需求。只有深刻地理解需求,才能推动商业的进步。需求分为主动的需求和被动的需求,意识到的需求和没有意识到的需求。在今天的这个环境里,需求不能通过一句简单的云计算,云管平台或者数字化转型来替代,必须不断细分到颗粒,这样才不容易落到陷阱里。

比如很多年前有个客户跟我说要User Generated Content的支持。那个时候UGC的概念还很热,但是如果销售拿着这个需求回来,只能说没有任何用处。我们要了解客户为什么要UGC,拿了用户内容怎么用,什么样类型的UGC是需要的。分清需要,欲望和需求,最终才能完成商业的循环

图片

无论在计算机世界里,还是在商业的世界里,都需要花大量的精力深挖基础,拨开迷雾探寻本质。如果没有能力触碰基础,就像是常在河边走,哪能不湿鞋,迟早会遇到无法解决的问题。就比如用开源技术的时候,大家一开始看上去都差不多,真正的核心问题只有了解基础的人才能解决,这样的团队才能在商场上笑到最后。

凡事都花点时间,看看基础到底是什么,的确是个好习惯,就是有点累。

曾今,伏案只识技术世界

而后,抬头遍历创业之艰

现如今

不惑之年

以创业者眼光,再探技术世界

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多