2022国庆长文:以股票领域为切入点,聊聊程序的Level
一.我们编下的程序,究竟帮人解决了什么问题?
从进入这行,我等程序员们就在不断地学习语言、类库、工具、业务等等。看着多年积累下来汗牛充栋的技术书籍,大家可曾想过,自己编下的程序,究竟能帮到人多少?
如果不想透这个问题,每天只是机械地把需求和变更翻译成代码,那么三五年之后,你只会在发薪日能高兴一会,长此以往,你会觉得自己无足轻重,人生也没多大意义。为什么下此断言?因为这是我的真实经历。
机械翻译还有一个恶果,就是把自己变成了精致的利己主义者,就代码而言:可能风格良好,建模贴切,运行流畅,但就是没解决用户想要解决的问题。没解决问题,程序还是一个白象。作品不解决问题,作者自然就会无足轻重。
别小看作品交付后的口碑!软件公司是门可罗雀还是下自成蹊,决定因素不在自我标榜上,而是扎根在客户心里,通过客户的言行展现出来。
用户到底想解决什么问题呢?绝对不是把结构化数据存储到DB中去,再以合适的方式展现出来这么简单!这个层次太low了,只能在上世纪末本世纪初说说,今天还这么说是会被人唾弃的。
恰巧股票也是我沉浸下去的领域之一,是一个好的切入点。现在我就把自己当客户,提出自己的真实需求,请各位看看能否帮我解决需求:
我最想要的,莫过于“告我神秘代码”,即从A股四千个股票代号里,给我一支两周内能涨两成的代号来。我只要一个六位代号,别的界面、环境、运维什么的都不重要,运行效率也不需要太高,一个星期内能得到答复就行。我只需要一个钮一个文本框的界面,按下去后一周内能把六位数字显示给我看。拿到代号后我会逐渐验证,如果正确率超过8成我会开始下单。如果持续获利,那费用什么的都好说。
这需求够简单了吧?能做到吗?难度非常大,以至于计算机诞生以来,没听说哪个团队实现过。所谓AI顶流阿尔法狗,只敢玩玩棋牌乐,对股票领域很自觉地退避三舍了。
如果神秘代码做不到,那么降一个档次,择股做不到就择时吧?分析现在该买还是该卖?该重仓还是轻仓?这个老手分析指数、成分股以及指标均线似乎就能做到,但反复钝化是需要考量的,场外因素似乎也该纳入。如此数学模型会很复杂,难度也不小。
再退一步,如果择时做不到,那么展现还可以吧,从服务器下载股票数据,画出K线图,均线,指标这些对程序员来说不难对吧?但是炒股软件都免费把这些给我了,我再雇程序员重画一遍有何意义呢?
以上三个层次,不客气的说?即使是BAT那样的公司,也只能做到第三层。计算机对于现实的无能为力,可见一斑。
实话实话,我也做不到,我要是能做到了,一周赚个百分之二三,就能衣食住行无忧,长期复利下去,十年后超过二马都不在话下!
朱德庸说,公司是无能的人抱团取暖而成,有能力的人,自己就把路趟出来了,何必还要依靠公司!信哉此言!
软件不能保证人在股票期货市场的高胜率,这个事实早已被大公司和计算机专家验证过了。
在浩如烟海的股票数据中寻找潜力股,有如在遍布石头的大山里寻找金矿脉,其难度真不是一般的大。列出数据太易,犹如石头随手可捡;找出矿脉太难,有如挖掘巷道几十米,挖出的全是花岗石石英之类的。
但是,还是得试下去,总不能老了还说:我老汉山中一生,净挖花岗石了,连黄铁矿都没见到,更别说黄金了。
二.等用户来告诉你程序该怎么样,你已经落入下乘
在某些程序员眼里,用户是金主,用户是验收者,用户是最终评价人...直到用户是上帝!
在我二十多年的职业生涯中,以下场景见过多次:
程序员虚心地坐在侧位,请教客户流程应该怎么走...
客户大步流星地赶来,询问信息到哪儿了,为什么未到他哪儿...
客户毫不客气的说,对于业务,你们不如我懂,你们这么做肯定是错了...
客户之间抽烟闲聊说到,别看他们(程序员)一个个貌似高精尖的样子,可流程怎么跑、数据怎么看,大部分都是我教的...
以上场景我自己就是亲历者或是旁观者,回忆起来还宛如昨日。
让客户来讲业务,第一失望者就是客户,他心里想着信息化、智能化,结果只是无纸化,把日常该做的事搬到了网上,他们预想的智能并不存在,计算机不是电脑而是计算器;第二失望者是程序员自己,尼玛自己苦心孤诣学的数据结构算法设计模式编译优化都用不上,整天就是把一些庞杂凌乱的数据从这里倒腾到那里,极其无聊吧还一点不能错,错了就挨批。
很多商业软件的结果都是:公司、程序员和客户都知道软件其实很low,但彼此心照不宣,公司拿了营收、程序员不动脑子得到了薪水、客户背后收取了回扣。受害者其实就是公有的虚拟实体,只是大家都不提。
和房地产业一样,地产公司卖出房子、建筑公司有了营收、工人们有活干又薪水可拿、GDP高涨、地方政府有政绩可吹,貌似都收益,但成本都由高位接盘的购房者承担了。
一旦接盘者乏力,整个行业都会遭受崩塌式的溃败,这就是如今房地产业的现状。软件业会不会成为下一个?
我一直有个天真的想法:那就是知道是坏事,就不能继续做下去,我相信报应迟早会来,不在自身,便在子孙。天真的背后是天理,所以我笃信它。
关于商业软件大多数很low,这个问题有两点原因:一是很多需求就low,就是简单的无纸化电子化,用低代码就可以解决的,不是非用程序员不可;二是程序员心里不上进,自己把自己当成一个业务到代码的翻译机。
第一点是现实积累而成的,我们管不了;第二点根子还在我们自己,不去管就会迟早会祸及自身。
如果一个人总是做录入、验证、匹配、入库、展现的活,长此以往,他没有年龄危机,那真是没有天理的事。
天理存,人欲灭。其实大脑也是偷懒不爱思考的,它会驱使主体得过且过,但天理不允许,它会不断淘汰落后的跑得慢的吃老本的,所以即使单位碍于情面留人,天理也不会留人。
虽然人人都会衰老到不得不得过且过,但青壮年积累多少完全决定了老年的生活质量。
钱多有钱多的活法,钱少有钱少的活法,即使撇去猪栏的理想不谈,如果到老了还说:我CRUD做了一辈子,没觉得做软件有什么牛逼的!那连自己这关都过不去。
三.翻译官和力工
聊到这里,忽然特想要聊聊女生,聊聊她们的成绩。
小学女生一般成绩都较好,因为听话坐得住,初中努力的女生也能成为尖子生,到了高中,初中曾经是佼佼者的女生基本都渐渐名落孙山了,到了高三,不愿被理科虐的女生都转去文科班了,剩下一小撮继续受虐。
女生的生理和体能是她们逐渐落后男人的主因,这在世上任何国家都是普遍性规律。
但在我曾经工作了七年的某外企,高中三年被理科虐哭的女生,进入IT行业凭借英语却翻了身!一众程序员像是力工,而通口语的女生像是吆五喝六的翻译官!
为什么会这样?在甲方看来,交出去Coding的程序不难,因此谁来做程序并不重要,重要的是有人能沟通,起一个桥梁的作用,这时口语好的女生就容易脱颖而出了!
尼玛曾经被数学虐哭的文科班女生却凭语言翻了身,成为项目中的关键人物,可气当年数理化好的尖子却如力工般不受重视。拜口语不好所赐,我曾经被这个异常的现状反复折磨过,心里写满了大大的不服。
我现在明白了,翻译官比力工作用大,只是因为活low,谁来都能干!
想想看老外发过来的活是什么?非核心的编码,界面和控制调整来调整去,中间逻辑的手动转换,表结构的调整影响的方方面面.....就这些如何成就一个有理想的程序员?
很多人不这么想,他们觉得活不累工资照拿就完了,我也曾这么想这么做过,但事后看来是为了工资荒废了自己的七年。
做惯了的日常事能养人,同时也在杀一个人。
外企的程序员为什么热衷于语言,无非就是心知肚明做的东西太low,想用语言给它镀个金,可镀过金的一块钱硬币就当一百用吗?
我不是想抬高理科贬低口语,而是觉得程序的核心价值不可能在后者上,程序员的高级阶段也不该是翻译官。
各国都知道数理化为代表的科学是国力的根本,所以用高考来选材;外企发包方也知道自己做核心的有技术含量的,把无价值的Coding、GUI、TESTING甩给中方;程序员的业余时间也没几个小时,他却把时间都用在了语言上。
鱼与熊掌,只能取一个,你会选什么呢?
四.你写过的最蠢的代码是什么?
这是23年9月份CSDN征文里的一道题,作为一个程序员,如果是在寂寥无声的深夜问自己这个问题,你内心的回答会是什么?
如果把写程序比做走路,那么孩提时代的磕磕绊绊谁都经历过,这是必由之路,也没啥可笑的,笑别人也等于笑自己。
可笑的是,在已经娴熟行走的状态下,还在磕磕绊绊的行走!
比如很多商业项目,无非是稍复杂的表数据处理程序,重复写,反复调,改了又改,加班改,这不就很可笑吗?
比如某个OA项目,因为某领导一句话非要添加一些时尚元素如ES,费劲弄上了,几个月后又因为另一个领导一句话就下马,功夫全白费,这不可笑吗?
比如写在标签上的一句提示语,某人觉得不妥,找人问询,来来回回数封邮件,花一个星期,烦无数人,最后就改了一点,和谷歌翻译差别也不大,这不可笑吗?
一堆人讨论设计了三个月,方案一拿出来就一张A4纸,上面几个框框标上符号说是主要对象,再拉几个箭头就说是对象间关系,这种Word做的设计图,让开发团队一个月编出初版来,这不可笑吗?
要我说,走路摔跤不可笑,跑快了摔个大马趴也不可笑,前进中犯错是难免的,大方向是对的!可笑的是明明可以前行却半主动半被动地一直在原地转圈徘徊!虽说不费劲赚了不菲的工资,但这是用你的心气你的命换的,短期纾困可以,但长期这样你不觉得亏得慌吗?
骂了一大通,也骂不动了,想起电视剧《刘老根》片头曲,贴出来作为结语:
毛驴儿拉磨哟它走不出那个圈儿
井里蛤蟆就能看见巴掌大的一块天儿
通天大道本来就有笔直的一条线儿哟
何苦还要翻山越岭诶
嗨 硬去拐那几道弯儿
唉嗨唉嗨哟 唉嗨唉嗨哟
会飞那才叫龙哪
得道那便是仙儿
摸着石头过河
早晚也能找到边儿
最后,衷心希望每个程序员都能找到自己的通天大道!
END