我在80年代中后期开始编程,不知道算是上古不。
我的入门阶段是靠学校里被废弃的Apple II编写 Applesoft Basic 和 6502 汇编,虽然当时信息缺乏,但 Apple II 是我出生年份(1977)发布的计算机,中央图书馆总会有一些相关的中英文书籍,小学阶段应该只能读中文。
后来90年代初上中学获得 PC,除了读原装 DOS 手册,也开始购买新书,大部分是台湾出版的。印像比较深刻的是旗标出版社原创的《C 语言实务》,相比其他翻译书籍的质量好很多。这段时间都是自己从书本挖掘知识,遇到问题自己解决,也没有人指点方向,可谓完全野蛮生长。
再后来连上了 BBS,开始可以和其他人沟通讨论,也可以取得到零碎的从国外漂来的一些文档和源代码。记得当时也看过 John Carmack 的一些早期文章。自己也在 DOS 下搞一些简单的三维图形、GUI等。在当时 VGA 编程像是黑科技,通过一些非官方的标准去实现 Mode X,再写汇编去画图等。
对于题目中的描述:
而自己学编程那会儿却:缺少资源、找到的资源质量差、在不要紧的地方上、浪费了很多时间、绕了很多弯、踩了很多坑。
导致现在的新程序员「成长速度」比当初的自己快。
我觉得,从效率来说,的确会比较慢,走了很多远路。但跑步距离远的话,总是会有一些得著,例如:
有些编程会像做数学题,去解决一些问题。做数学题如果不是自己思考、试错,只是背诵标准答案,那么并不能训练解难能力。只是从 stackoverflow 或 github 里直接找答案,虽然效率快,但会同时减少这方面的训练。长期下来,对于未有人遇到过的问题,可能没有足够能力去自行解决。
也许,最好在遇到问题时先想一个方案,试验一下,再去找别人的方案,作出比较,那么长远来说可能是更好的事。当然,现在找别人方案比以前容易许多,足不出户能看到全球专家的讨论、文章和代码,这是十分好的事情。
我觉得选择学习什么时,是很难判断「不要紧的地方」。有越多人选择学习、研究不同的东西,而不是一窝蜂拥去一个地方,也许对于整个社会来说更有利。有时候,在打稳基础之后,关注一些不太主流、旁枝末节的东西,也可能有意想不到的收获。是不是「浪费了很多时间」真的很难说,或许有一个时间点,刚好在关键地方用上一些别人不知道的东西,你就变成了英雄。撇开功利主义,我觉得挖掘自己的兴趣是人生很重要的事情,推动自己做自己喜欢的事情。
这绝对是好事!我们难道想设置多重关卡,避免他们成长得快么?相反,我认为很多老程序员都希望通过写文章、回答问题、开源项目,令自己的知识经验能薪火相传。当然,同时老程序员也获得了这个世代的知识基建带来的好处,可以和新程序员一样去更高效地学习更多知识。
我这种从“上古时代”活到现在的程序员,回忆起上古时代,觉得那时候学习编程的确效率非常低,如今学习效率的确高了很多。
我花时间最长的一门语言就是C语言,觉得花了2-3年才完全掌握,以后语言都没花这么久,现在学一门新语言也就几周吧。
那时候硬件性能太差了,PC上打个 dir,去上个厕所回来可能还在滚屏。由于机房的设备都是共享的,每次编程之前要花几十分钟配置环境安装软件工具。在线文档,搜索引擎,开发者社区统统不存在,唯一的参考就是图书馆借来的书,遇到问题主要靠猜测和冥想。
但是,上古时代也有好处,就是不容易走弯路,因为就没有几条路可以走,硬件平台只有 Intel体系,操作系统只有DOS,语言只有C和汇编,开发平台也就Borland家和微软家可以选,算法基本就是数据结构和算法教材上那些。而如今的程序员入门时期面对太多的选择,肯定不会所有选择都是最优解,容易误入歧途。
所以上古程序员学习效率低主要低在工具低效和文档缺乏上,而现在程序员学习效率低则低在信息过载和选择困难上。
学习效率提高是产业成熟的必然,如果培养一个程序员总是那么难,软件互联网这个行业是做不大的。不要担心入门变容易了,程序员水平就变差了,教育的普及会让高水平的程序员总数变多(虽然占总体的比例会降低),他们会充分利用便利的学习资源达到超越前辈们的水平。
我想讲点儿别的:
无意中撞进了某个人的一个文章,文章内容大意是有个面试题,要在亿级数据中判断某个元素是否存在。
我表示,如果需求没写错,这玩意儿直接遍历不就好了么?最差的情况(那个元素在数据的末尾)也不过是全部遍历一次。(当然你要反复判断各种元素那另说,但需求中显然没有)。
结果已经有三四个人回复我内存装不下了……
所以我觉得,从什么地方入行,什么时候入行,很大程度上影响了这个人的思维模式……
越来越便利,对于很多人来说,基本上和另一个概念等价“基本功越来越差”。
因为各种工具的便利性,使得很多基础的原理和内容,是被屏蔽/封装起来的——所以这才可以上手快嘛。
如果只是满足于coding,高效出活的话,这么干当然没问题。而且,实话说,老板们也会很喜欢这些新人:倒也不完全是因为工资低,而是因为市场供应大,你走了随时可以抓个人过来就能顶你的位子,完全不影响业务。
然而,当你要有一定的议价能力,有一定的不可替代性,那就表明你的技术要要深入进阶到一定层次,这时候你就会很快发现你的天花板其实是很低的。而且,实话说,拼coding、拼出活,一定程度上拼的是熟练度。你的价值高低,很大程度来自于你的手速,以及投入的时间:所以你看那么多程序员都在说自己怎么怎么加班,老板怎么怎么压榨,就是这么回事。
更可怕的一点是,一个人一旦陷入了这种工作状态,本质上和富士康的流水线工人是没什么区别的。这时候,你是几乎没有任何额外的时间精力去深入钻研技术的。
这里是一个曾经在富士康呆过的经历:
然后,这是我的一个回答,尤其注意翻看评论区,看看多少人在评论区里说:因为老板催着上功能,所以没时间没精力去做优化?
你体会一下这些程序员的心态,再对比一下上面说的富士康的工人的精神状态,就会发现他们都是一回事:都是螺丝钉,无非是价格有点区别而已(而且,说句难听点的,coding螺丝钉对比流水线螺丝钉的溢价,在5年10年中长期来说,多半是逐步下降的)。
实话说,我没办法反驳他们——因为我知道他们说的现象确实是广泛存在的。但这对他们来说,屈服于这种压力,不去在学习中和工作中去积累各种优化的经验(当然也包括踩坑),那他是很难突破那层天花板的。而且,到了一定层次你就会发现,踩坑数量多少,一定程度上代表了水平的高低(前提是别总是踩同一个坑)。
所以,什么叫做:良药苦口?虽然我不确定我的拿回答对他们来说是不是良药——毕竟我只是指出了问题,而那药方是不是真的有用,也很难说。但对他们来说,已经被压榨/洗脑到了习以为常,以至于哪怕是被人指出有问题,都是要急眼的程度了。
总而言之,当今这批程序员,比你口中的“上古程序员”,起点确实更高,但是天花板却要低得多。
所以,扪心自问,我这批“上古程序员”,虽然以同龄的收入来计算,远不如当今的程序员(无论是相对值还是绝对值)。但有幸在coding还是一门技术活,而不是苦力活的时候,通过大量踩坑而积累了经验,打好了自己的基础,突破了被压榨劳力的天花板。得以站在大潮前面,随着大潮一路前行——不好意思,水平不够,不敢说引领大潮。但至少我觉得在心理上,比起低着头被各路黑心老板用皮鞭去追赶大潮的,要舒坦很多。
商场运营方的本质是物业公司,
想各种办法吸引人流过来,接着招商,目的是收取租金,然后涨租金。
所以这个问题的本质,是来福士想要吸引的大批顾客群体,他们是不是在意棒棒入内。
如果他们其实希望棒棒不入内,那么来福士不过是个手套防火墙而已,抵挡了来自网络和外界的骂名。
如果他们反对禁止棒棒不入内,那么就算没有这个报道一段时间后来福士自己也会被用脚投票的顾客教做人。
商场是否以为棒棒影响了形象不重要,最终用户怎么想的才重要,想想谁掏钱?
所以,到底是顾客有这样的需求而商场才这么去干?还是商场自以为是的猜测了顾客的需求呢?这只有顾客自己知道了。