首先,写本文主要还是写给自己。今年45了,在许多公司,包括华为大唐,工作了许多年。也在许多私企工作过,大多数时间在一线,也从事过项目管理,不成功,也不喜欢。特别是公司强加的KPI,要我开除员工的时候。
所以,绝大多数时候,还是想的技术。当然,不是说管理我就不精通,是在中国用不上。像大型复杂系统的开发,这种,在中国就是屠龙术。我们都是等着抄。
而技术方面,确实自认C++算是一个强项,但这个算不是什么专业技能。
不过,有一个技术方面,近年来,我越来越有自信,确实比一般人强得多。而且,自己似乎真正悟道了其中的真谛。
就是人机界面的友好与否,以及如何设计人机界面。
实际上,大型软件人机界面设计是极为困难的事情。我也是许多年,一直没有想清楚,没有那么游刃有余的自信。
比如以前在DT开发本地操作维护平台的时候,我觉得,自己还没有完全领悟。但确实是还算不错吧。理解了角色,用户分级。等等。这些在这里不一一详述了。我想说的是那种感觉。以前我在青岛,第一份工作是电气工程师,当时AutoCAD,自己也就花了十天时间,达到公司中上水平。那是第一次在工作中有了一种控制感;对自己的控制。
但是接下来,公司,还要我学习一下3DMax时(现在可能没这软件了),发现无论如何,也不能掌握。这时理解,人与人是不同的。作为一个工科学生,思维模式,有一定局限。
但是人机界面,我在大学给学校编程时,就一直在思考,可以说,可能是近期,我觉得自己可以相信自己已经掌握了。
我自己近期也参与设计了一个工具。就不多说了。
最近在调试Arm板卡,比较了一下从VisualStudio2019、2022的CMake远程调试,与VisualGDB的配置过程,的不同。
算是深入思考了两天。
图我不让在这里了,因为大家有兴趣可以到各自网站去看。
本文也是我自己的备忘。
我只是想要总结一下,为什么微软的作品,与VisualGDB的作品,几乎相当于小学生与业内专家的差异。
要知道,vs2017就已有这类功能,这两个产品,在这个方面,为什么还是差这么多呢?
当然,作为微软的人,可以抱怨,需要与微软的产品线绑定,对ARM支持不好,但这可不是理由。
我认为,理由只有一个,就是微软的程序员,不理解人机界面设计的最基本路线,或者说:道。
一定要有地放矢:也就是说,每个界面,一定要适配现实存在的特定的场景。永远不要朝着所谓通用的方向去设计。
这里有人可能不理解:场景有千万种,你为什么还要这么说呢?
第一:相信我,如果 你的软件实现的优雅,场景也会变少的。
第二:在 一个场景下实现的令一类真实存在的客户满意,也比所谓的通用的设计,却不对应任何用户强;
第三:通用的确是必要的。但那些通用的过程,需要隐藏到后面。像DNA一样,是绝对唯一的,但呈现出来的,却是32W种蛋白质。当然,要注意,这与互联网那种大而不当的所谓中台没有任何可比性。那种垃圾堆,再大也是大的垃圾堆。是没有构建的一种堆肥。
我想,构建主义哲学,是今天我能理解这些的理论基础吧。
一个人,你觉得你真正掌握一种技能的时候,绝不是你会了,而且是内心知道它是如何萌生的。
写本文也是一个备忘。
因为总有一天,我也不得不去灵活就业。是吧。所以,看来,那些巨无霸,并不是像看起来那么聪明。