学习金字塔

学习金字塔

这是我的第一篇技术博文

    有这样一种理论,是人类认知逻辑遵循一个递进关系,就像一个金字塔:

金字塔

被动学习阶段

听觉渠道获得的知识之占5%;教会别人可以占到90%;既然是人类一般认知的逻辑,那么就可以把此逻辑应用到编程上。假设出现了这么一种软件,听到别人说,上网搜索后可以了解一个大概,这时至少应该知道了名字、用途、作者等基本信息;进一步了解后,可以得知出现这个软件的场景、可以解决什么问题、实现的语言等,到此为止前5%的认知水平基本就达到了。我认为不管什么学科,达到这个认知水平还是非常简单的,所以遇到不懂的事情,只要简单搜索下,花上半小时基本能入门。

    举个例子,基于BPMN协议开发的activiti工作流引擎是什么个东西?发现activiti就是一套Java程序,用来实现一些流程的控制,比如请假流程、盖章流程等,如果用if-else肯定也能实现,就是太不优雅。至于BPMN协议是个什么东东,一搜索也能了解了,一套XML结构标准,定义了一些对象节点、网关节点以及数据流向节点,可以支持在XML里写Java代码等等。

接下来就是读书和实践阶段了,这部分可以占到总进度的50%,一般来说掌握了这个阶段的精髓,用次技术来工作就是小场面了,这个阶段的学习手段五花八门,看书、写技术文章、复盘使用心得以及自己怎样填坑等,大部分场景都能hold住。注意是大部分,并不是全部,还是给继续学习留了空间。 接下来就是读书和实践阶段了,这部分可以占到总进度的50%,一般来说掌握了这个阶段的精髓,用次技术来工作就是小场面了,这个阶段的学习手段五花八门,看书、写技术文章、复盘使用心得以及自己怎样填坑等,大部分场景都能hold住。注意是大部分,并不是全部,还是给继续学习留了空间。

主动学习阶段

什么情况下我们要继续学习呢?我感觉理由不是很多,要么被逼的,要么是有兴趣,一个一个说。什么是被逼的呢?答案就是你踩了狗屎,流量不知是从哪来的,反正是来了,越来越多,没办法了,只能深度挖掘技术,榨干优化空间,像淘宝、微信这种。经历过这些事情的人,像学的垃圾都不允许。被逼的还有另外一种情况,就是预防还没有发生的事情,比如造原子弹。如果不造原子弹别人就有可能利用核威慑,所以手里有原子弹而不用跟没有原子弹就有本质区别的,此处要像共和国的元勋致敬,太不容易了!有另外一种学习方式就高级一些了,就是兴趣。孔子不是说,

    学而知之不如乐而知之。

有目标的学确实厉害,但为了乐趣而学更厉害。为什么?因为乐趣是无止境的,有目标的方式,如果实现了可能学习的动力就没那么多了。所以问题来了,怎么能让自己有兴趣学习呢?参考自己30多年的经验,似乎没有哪个知识是我主动要学的,娱乐和足球除外。对待足球的问题上,从来都是提前准备,场上拼命,回家反思。甚至去健身练腿,我也从来不觉得辛苦,为什么呢?因为乐学,我自认为比身边没有专业训练过的人要踢的好一点点。但是我没有找到能转移这种乐学到其他方面的方法,暂时无法复制。那没办法,只能让自己学而知之了。

后记

我为什么要写技术博文?建单说就是被打击了。各种面试给我各种摧残,3年前我出来面试还不是这样,各种面试造原子弹,入职crud。后来想想,就一个原因,人多!筛选人的方式要么是学历,要么是知识,所以有些一辈子可能都用不到的知识就成了面试的常客。所以我要把自己已经知道或者想知道的“原子弹知识”记录下来,免得下次让人羞辱。

void main (int argv, char *argc) {
        print("Hello,world!");
}

Redis二进制位数组-Hamming Weight算法

BITCOUNT命令计算二进制位数组的一个步骤,是利用variable-precision SWAR算法来实现的,即计算Hamming Weight(简写为HW)的值。

https://www.cnblogs.com/NaLanZiYi-LinEr/p/11876246.html

{{{code

unit32_t swar(unit32_t i) {

//步骤1 每两个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x55555555) + ((i >> 1) & 0x55555555);

//步骤2 每四个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x33333333) + ((i >> 2) & 0x33333333);

//步骤3 每八个二进制位为一组进行分组,各组的十进制表示就是该组的HW

i = (i & 0x0F0F0F0F) + ((i >> 4) & 0x0F0F0F0F);

//步骤4 i*0x01010101语句计算出HW并记录在二进制位的高八位,>> 24通过右移运算,将HW移动到最低八位,就是最终的HW

i = (i*0x01010101) >> 24;

return i;

}

/}}}

 

28岁退休的程序员-有感

InfoQ上发布了一篇,关于一个28岁程序员“退休”的新闻。故事大概是这样的:

简单总结下我的感受吧。题目明显是为了吸引人起的,用以“骗取”所有程序员的关注。提前退休和实现财务自由应该不只是程序员的梦想吧,所以小编成功了。翻看文章仔细看,这种同学的成功路径是不可复制的,但是人生态度可以借鉴。实习进入支付宝,创业公司被字节跳动收购,投资房产、股票等等人生遭遇。虽然不是程序员的最顶尖水平,但是能入职支付宝在国内肯定是少之又少。据我所知,蚂蚁金服(前身是支付宝)有开发人员7500人,运行的应用有3k多,这还是几年前的数据。如果国内有400w-500w的开发者计算,国内仅有0.16%左右的人有可能进入支付宝;继而创业被收购,这个概率粗略估算也只有1~5%;最后又投资成功,哈哈,这个比例没法再小了。所以说看到这个新闻就幻想自己也能退休之类的,呵呵,还不如去买彩票中500w的概率大。

我不想酸谁,这样的遭遇谁都想遇到,如果他胆敢说:再让我过一遍人生我还能如此!嗯,这种人应该远离他。因为但凡是忽略环境影响,认为完全是自己优秀的,都是耍流氓。自己的努力必然是需要的,但只是必要条件,没人敢说是充分条件,像你一样优秀的人一定不少,为什么成功的是你?

 

https://mp.weixin.qq.com/s/Hh_5h1TbhLas0HaLTCtmIg