我是如何错过财富自由的

前言

在经过多次失败了,我开始对自己投资策略进行反思,竟然发现财富自由可能离我这么近。然而,最终自己竟然没有获得相应的财富,其根本原因可能是我的认知不够。查理芒格说,让自己配得上想要的东西。想要获得财富,那么让你的能力配得上它。曾经的我,由于认知不够,错过了很多机会。我在这篇文章记录下来,时刻提醒自己,升级认知可能是投资里最需要刻意练习的技能。

错过比特币

大约是在2013年的时候,我听说了比特币。当时我去下载一个钱包下来,进行一番挖矿。然后,发现这东西有什么用。甚至在一个网站上,有人免费的派发比特币。我去看了看,没有领到比特币,最后,我就删除了这个钱包。现在想起来,突然这么后怕,我竟然离财富自由这么近。如果我认真的研究了比特币,下载节点去同步,去阅读了相关源代码,说不定,今天写文章的人,就不是我了。

当然,说了很多,这些都是如果,你的认知是无法获得你配不上的财富。连比特币的白皮书都不知道,甚至都没有去阅读一遍,怎么会有相应的认知?对自己持有的标的,都没有理解清楚,如何心安理得地投资?没有对人性的理解,对投资的本质理解,如何进行认知的变现?

错过柚子

我第一次了解到柚子,完全是意外,我的一位同事通过数字货币赚取了人生第一桶财富。从他身上,我知道了柚子。我曾经打算买10000个柚子,但我在第一次够买EOS时,发现这个事情非常复杂。因为国家已经不允许交易所买卖了。所以你必须通过C2C的方式来做。当第一次柚子,跌到5块的时候,那是2017年9月份,我打算买1000个,但C2C又太麻烦了。我甚至还想到柚子跌到3块。后来确实跌到了3块,但我却没有去关注了。后来11月份左右,主网开始上线了,柚子一路涨到120元。

从这件事情后,对我的影响很大,让我明白人生的成功,不仅仅只有一种方法,应该是每个人的答案都是不同的。投资,是你必须要学会的一件事。特别是投资自己,才是最划算的。认知和践行,可能是一对孪生兄弟,两者缺一不可。有了足够的认知,却因为没有行动,也是无法获得变现的。

这让我开始对践行的思考,有了新的认识。

  1. 如何践行?
  2. 如何持续的践行?
  3. 如何深刻对自己进行反思总结?
  4. 如何持续的进行反思总结,并持续改进,促进良性循环?

还会错过区块链的什么

如果不能有效对自身的认知进行反思总结,还可能会错过亲自参与的机会吧。毕竟这是一个伟大的实验,竟然进行10+年,还没有失败。那么如何从这一次趋势获得最大的收益?这个问题答案,可能没有经历过,很难回答。那么我们尝试从逆向思维去解释,如何再一次错过区块链?我觉得有几个点:

  1. 自身认知不够
  2. 对行业没有关注
  3. 没有自身的影响力
  4. 无法理解技术的发展

大家都认为区块链,应该是下一次互联网浪潮的引爆点。区块链连接了所有的人,把数据的所有权还给本人,提升了价值传递的效率。那么知道这个趋势,你应该做什么才是最划算的?

  1. 提升自身的认知
  2. 等待机会
  3. 一击必中

总结

想到了,只是投资的万里长征的第一步,做到了,才是真正的践行。所谓的大师终究是大师,想到了且做到了。很多观点都是经历过时间的洗礼,依然闪闪发光。我等普通人,也只有仰望的权利。

如果你想获得你要的东西,那就让自己配得上它。

我是如何错过财富自由的

作为程序员,我是这样学习写作

​ 2018年1月2号,在这一天,我加入了一个神秘的组织–007不出局。这是一群梦想着,持续写作7年后,就一起去南极的一群人。正好这段时间,自己也在思考人生下一个阶段的计划,发现写作也许是一个靠谱的选择。

007不出局

​ 我是从娜姐的公众号,娜你说说吧加入到007不出局的。当初从订阅笑来老师的财富自由之路开始,发现有一个人留言特别勤奋,竟然从专栏文章的每一篇文章的留言完成了对自身成长的转变,最终得到了笑来的认可。加入007不出局后,其实是为了找到和自己一样想要改变的一群人,一起持续写作,也是为了锻炼自己的写作能力。

​ 2018年1月7号,我发表了加入007不出局后的第一篇文章。文章写得很简单,标题就是不出局就出彩。加入的初心也是想要寻找和我一样,想要成长,学习写作的战友,甚至slogan也让我心动:一个人走的快,一群人走得远。现在已经过去一年,回过头来,看看自己曾经走过的路,当初为什么要出发?

​ 这一年,我大约写了48篇文章,涉及到生活,投资,技术,学习等方面。这些文章几乎记录我的2018这一年经历全部的思考。现在回头看看,觉得非常有意义。写作记录了我的思考经历,一步一个脚印,独立思考的结果,记录着我经历的成长。这些都是宝贵的经验,不然,我们跟一只咸鱼有什么区别呢?

为什么要学习写作

其实写作这件事,我很早就开始做了。最开始在大学里看了刘未鹏的博客,思维改变生活,甚至我还亲自写了一篇文章自我剖析去说明写作的重要性。在文章中也列举了很多写作的好处:

  1. 书写是为了更好的思考。
  2. 教是最好的学。
  3. 书写是为了更好的思考,激励自己去持续的学习和思考,学会持之以恒的做一件事。

后来,看了笑来的财富自由之路,专栏的文章也从很多个角度列举了写作的好处:

  1. 写作是把自己的同一段时间重复销售很多很多次的极少数选择之一,也是相对来看最容易成为普通人起步的台阶之一。
  2. 持续写作很可能是锻炼学习能力、锻炼思考能力、锻炼分析能力、锻炼沟通能力的最直接、最低成本的方式。
  3. 想要获得财富自由的你,必须学会写作。

与所有的失败经历一样,写作这件事情,并没有持续做下去。好消息,我竟然也持续写作一年多了。总体来说,还算一个不错的开始。在这一年持续写作里,我总结出一些方法论来帮助自己更好的写作。

怎么学习写作

我的博客里,记录了从大学到现在工作整整10年的经历。从刚开始写,显得非常笨拙,基本上是想到哪里就写到哪里。到现在为止,我基本确认了适合自己的写作基本方法论。大致会分为以下3类。

3W写作

我把这个写作的方法论称之为3W写作。

那么什么是3W写作呢?

通常情况下,我们要把一件事讲清楚有3个要点:是什么?为什么?怎么用/做?基本就能把这件事情讲清楚了。那么写作也是一样的。确认写作的主题后,就可以从这3个要点展开来讲。

比如我写的必知必会系列。我会从是什么?讲述文章中的技术概念。然后再穿插一些为什么这样选择的原因。最后添加自己在这个技术实践的经历,也就是怎么做。

当初为什么要写这个必知必会呢?在中文的领域,像必知必会系列的知识,非常少。基本上,你只有去阅读相关的中文文档,才有可能找到。碰巧有一部分有人写了,但是大部分的文章,在我看来,大多数只是讲怎么做。但没有讲是什么,为什么这样做的原因。这样的话,我自己只好亲自动手写了。

写的这些技术知识都是我过去这些年的积累,所以写起来也很快。最终的目的是,一方面对相关的知识积累进行了复习,另外一方面方便自己查漏补缺,加强记忆。

阅读笔记

很多时候,我们都听过了很多大道理,却依然感叹没有过好这一生。经过反复思考后,我得出一个结论,其实我们也看过读过很多的书,也依然没有过好这一生。最终的根本原因,可能就是我们真的只是看看而已,并没有做阅读笔记,也没有去实践其中的道理。所以过不好这一生,也是情有可原的。

因为从阅读开始到现在,你根本就没有按照书中的道理去实践过啊。所以,我会总结自己看过,阅读过的文章,然后将自己的阅读笔记写出来。

比如我在看财富自由之路时,写了很多文章专栏阅读笔记。说实话,阅读笔记真的很难写。因为很多观点都不是自己的,所以最好是结合自己的实际经验来思考,输出自己的结论。比如我的阅读笔记:

  1. 你真的理解什么是财富自由吗?
  2. 出售时间之前你要牢记的三条铁律-读后感
  3. 我们重新理解了注意力-读后感

实践经历

这类文章的套路都是一样的。就是写你怎么践行的。可以写自己投资是如何亏钱的,也可以写当初立了多少无效的flag,甚至还可以写自己如何失败的。但文章最后一定要做总结,这样的话,对自己的践行进行反思。虽然我不知道如何才能成功,但起码我总结出如何才能失败的方法。比如我写了很多文章:

  1. 如何有效的践行ARTS
  2. 如何立一个无效的flag
  3. 作为PHP程序员,我是这样学习Go语言的

总结

在这篇文章里,我总结了3个写作的方法论。这些方法论不一定适合每个人,但也值得你去尝试。写作其实就是把一个概念或者方法论讲清楚的能力。刚开始,写对别人有用的东西,可能会比较难。但随着思考的深入,你一定可以收获对自己有用的部分。写作的核心在于思考与行动。你可以记录自己成长,学习,犯错,反思的经历。但你一定要有输入。没有输入的话,就一定没有输出。输入可以是你看到文章,自己的思考,工作经历,自己曾经犯的错误等等,只有这些宝贵的经历,经过你自己的思考,反思后得出的结论,才是最终的财富。

最后,借笑来的专栏文章几句话自勉:

写吧,只要真写就只能真思考。不要怕现在的自己的笨拙,重要的是未来的你一定不差,因为曾经的你,不怕自己差,不管多差也要硬着头皮实践,久而久之,你就撞见了未来那个一点都不差的你。但行好事,莫问前程。

Redis必知必会

什么是Redis

Redis是一个开源、基于内存的键值对存储数据库。通常情况下,键的类型都是字符串,值的类型有多种,Redis支持值的数据结构如下:

  1. 字符串
  2. 散列
  3. 列表
  4. 集合
  5. 有序集合
  6. 位图

Redis键和常见的值类型

键类型(key) 特点 备注
二进制安全 任何二进制序列作为键
较短的键占用内存较少
非常短的键,不利于语义化 需要在键的可读性和更少的内存消耗,找到合适平衡点。
尝试坚持使用固定的模式 例如,object-type:id => user:1000
键最大为512MB
Strings SET/GET 设置和获取字符串值 与Redis键关联最简单的值类型
支持包括二进制数据的字符串,最大512MB
SET nx 如果key不存在就设置值
SET xx 如果key存在才更新值
SET ex 设置指定的过期时间,多少秒
SET px 设置指定过期时间,多少毫秒
INCR key 解析字符串作为整数,自增1,得到的值作为新的值
EXISTS key 检查当前数据库是否存在给定的键
DEL key 删除键和关联的值
TTL key 检查键的剩余生存时间
列表(List) 通过链表实现 在常量时间内添加新元素到头部或者尾部,访问元素所需时间跟元素的索引成正比
LPUSH key value 将新元素添加到列表左侧,也就是头部
RPUSH key value 将新元素添加到列表右侧,也就是尾部
LRANGE key 0 size-1 从列表获取指定范围的元素,可以为负数。-1是最后一个元素,-2列表倒数第2个元素
RPOP key 从列表查找元素并同时从列表尾部弹出元素
LPOP key 从列表查找元素并同时从列表头部弹出元素
LTRIM key 0 2 只保存最新的N个元素,并丢弃所有最旧的元素
BRPOP key 阻塞版本的RPOP,等待指定列表的元素到达,若超时就立即返回。
BLPOP key 阻塞版本的LPOP,等待指定列表的元素到达,若超时就立即返回。
客户端以有序方式获取元素,返回值为2个元素的数组,超时则返回NULL
hash(哈希) hmset key k1 v1 k2 v2 设置哈希键多个字段值
hget key k1 获取散列中的指定字段
hget key k2
hmget key k1 k2 返回散列表中的多个字段值
hincrby key k1 value 对散列表中的指定字段自增值
集合(Set) 该集合是无序的
sadd myset 1 2 3 给指定集合添加多个元素
smembers myset 返回指定集合的元素
sismember myset 3 检查集合中元素是否存在
sinter k1 k2 k3 执行多个键间的交集
spop key 随机删除一个集合中的元素
sunionstore k1 k2 获取多个集合对应的并集,存储到第一个集合中。
scard key 获取指定集合的元素个数
有序集合(Sort Set) zadd key score value 添加有序集合的分数和值
内部实现是采用跳表+散列表实现。
zrang key 0 -1 返回指定有序集合全部元素,默认为升序
zrevrangekey 0 -1 倒序返回元素
zrangebyscore key -inf 1950 获取指定的排序之后的元素
zremrangebyscore key 1940 1960 删除指定范围内的元素
zrank key value 查询值所在的位置
位图(bit) SETBIT key 10 1 设置指定位图值
GETBIT key 10 获取指定位图值
BITCOUNT key 计算设置为1位的计数

为什么要用Redis

  1. Redis的访问速度快,完全基于内存操作,网络层采用epoll单线程解决高并发的问题。
  2. Redis有着丰富的数据类型,常见有5种:string、Hash、List、Set、SortSet、Bit等。

怎么用Redis

Redis列表

列表对很多任务都有用,比如:

  1. 记住用户发布到社交网络的最新更新。
  2. 流程之间的通信。
  3. 使用生产者将消息推入列表的消费者-生产者模式。

Redis集合

标记新闻文章的标签。假设文章id为1000,有标签1,2,5,77,那么你可以设计:

sadd news:1000:tags 1 2 55 77

也许你想要反向关系,标签对应的文章列表

sadd tag:1:news 1000
sadd tag:2:news 1000
sadd tag:5:news 1000
sadd tag:77:news 1000

smembers news:1000:tags

为了模拟基于网络的扑克游戏,你可以使用(C)lubs(黑梅花),(D)iamonds(红方块),(H)earts(红心),(S)pades(黑桃) 标识牌面的不同花色:

sadd deck C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 CJ CQ CK
   D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 DJ DQ DK H1 H2 H3
   H4 H5 H6 H7 H8 H9 H10 HJ HQ HK S1 S2 S3 S4 S5 S6
   S7 S8 S9 S10 SJ SQ SK

Redis位图

实现一个用户每日访问的最长连续性。位索引为,获取当前的unix时间戳,减去初始偏移量,然后除以3600*24。对于每一个用户都有一个包含每天访问信息的小字符串。使用BITCOUNT获取给定用户访问网站的天数,BITPOS调用,计算出最长的天数。

假设网站公开的日期为20190502,转化为时间戳为1556726400,那么位索引的计算公式为=(当前00:00:00的时间戳-1556726400)/(3600*24)取整,那么20190502的索引为0,20190503的索引,那么刚好=1。通过BITCOUNT可以计算出用户在指定期间访问网站的天数。

参考链接

  1. 介绍Redis数据类型和抽象
  2. 数据类型
  3. 为什么要用Redis