前言

人是会成长的。

人跟人的区别就是,有些人是吃了亏后才长大的,有些人是直接有人指点后长大的。

简单分享下自己最近十年吃了没文化的亏。

吃亏一:比特币的认知

我是在上大学期间知道比特币的。

当时是2013年,价格从年初13美元涨到高峰期1000美元。得知的是挖矿就能挖到,一个就可以卖几百美元,自己当时每月生活费只有1000元,挖一个的话,一个月生活费就有了。

所以在我的华硕AMD笔记本上安装了挖矿程序,配置好,开机挖了一天,屁都没有挖到,而后就结束了,也没有深入去研究,当时对比特币的认知,只是了解到这是一个搞外快的。

2014年大学毕业,工作后自己有了点钱,时间来到了2015年,这时候自己又开始关注比特币了,对比特币有了个中等程度的研究,知道这个是未来,开始看一些文章,准备买一些比特币。年少的我看了一些国内的所谓科技博客、媒体文章,文章里充斥着一些交易所的黑暗爆料,交易所坐庄、低价买高价卖,中间吃点等,自己就信以为真,为了不让交易所赚自己钱,又错过了第二次上车的机会。

2020年,9月份左右,比特币又开始涨起来了,这次认真分析并且研究透彻,但我又害怕风险,时间拖了下去。刚好10月1日,马云在上海外滩金融峰会的演讲,他讲到,做没有风险的创新,就是最大的风险。同理可证,如果一个投资没有了风险,那就没有了收益。马老板的一番话,给了我另外的见解,所以果断买入了比特币,同时看了下虚拟货币排名,发现以太坊排名第二,但比比特币便宜的多,想着就多买几个,反正亏了就当打水漂了。

我得到的教训:

  • 不看国内的新闻、文章等,卸载各种国内新闻app、微博、资讯app,仅保留了微信。 2018年开始到现在,我也过的好好的:)
  • 投资有风险,风险越大,收益越大
  • 要去关注新鲜事物,并且有自己的研究和认知,要独立思考

吃亏二:技术的认知

我的10年技术人生 c++ -> 易语言 -> php -> js -> node -> go -> java

我的技术启蒙是从大学的 c++ 课程开始的,虽然当时的课程索然无味,但我觉得编写c++很酷,可以操作计算机,避免重复劳动。

兴起-贴吧抢楼

真正让我燃起对技术的热情是百度贴吧抢楼。大学的时候整天泡在贴吧,自己混学校贴吧,混一些小说的贴吧。贴吧是有等级的,需要经验才能升级,所以需要签到,发帖,抢楼,尤其是抢二楼,可以得到别人的回复,可以得到更多贴吧经验,实现快速升级。

插入个题外话,贴吧是一个很好的论坛产品,是我最爱之一,无人超越,要不是sb百度过度商业化,铺天盖地广告,也不会变成现在的垃圾站。

这时候开始鼓捣 易语言 ,写了一个windows软件,名称叫做「黑猫抢二楼」,分发给自己的吧友,自己的小弟,软件支持以下功能:

  • 登陆百度账户
  • 指定抢几楼(比如2楼)
  • 一键转帖(搬运帖子)
  • 验证码,百度的验证码是一个九宫格的汉字验证码,这个我当时都忘了自己是怎么支持的,当时花了一天搞这个,不知不觉就过去了,犹记得当时搞出来后的兴奋样子

后续产生一个新问题,抢二楼需要挂着机器,需要自己开着电脑,但我们宿舍晚上是要断电的,断电后,电脑没电,也没有网了,晚上不能抢了。

当时是2013年,各种应用容器百花齐放,比如google的gae,新浪的sae、百度的bae,因为玩百度贴吧,所以就用到了bae,心想百度自己的机器,延迟肯定是最低的,抢楼快。而且bae是支持 php 代码的,只要写好代码,上传上去,设置好定时,一分钟执行一次。也是从这里开始接触到了php,这下子打开了新的大门,原来代码可以这样用,可以这样玩,可以做这么多事情,把贴吧抢二楼换成了php版本,挂在了bae上。而且写了一个教程,分发给了几个同学和吧友,遥想当年,各个热门小说吧的二楼都被我们霸占了,没有人抢得过我们,一时风头无两。

泡贴吧的过程中,又刷到了chrome、firefox吧,此时开始学习 js,接触到了油猴,可以自己定制贴吧样式,去广告,回帖加小尾巴,js+chrome,所见即所得,太棒了,一度认为js是最好的语言。

第一份工作

2014年毕业,参加工作后,进入了一个人数10+的小公司,干了半年广告运营。当时业务发展较快,写代码的就一个,需求却很多,技术缺人。当时的技术大哥得知我之前用过php写过软件,就发给我一个 node 的教程,让我看一下,不懂得问他,当时被那连环的callback搞晕了,仅仅记住了怎么用,why 我是不知道的,不过当时也是缺人,我看完文档,实现一个小功能,而后就直接上了,直到后续整个项目交接给我自己维护。

2016年,无事可做,另外一个同事不会node,但打算用 php 重构 node 之前的代码,又重新写了一遍php,当时会node后,我是瞧不起php的:)

2016年,同年,公司开始搞很多站群,淘宝买了一堆php的cms 站点,开始学习运维,各种 shell 脚本玩的很溜,因为流量大,图片都放在了cdn。又由于要更新网站内容,都是复制粘贴操作,看到cms有一个接口可以提交更新,就开始学习爬虫,搞成自动化任务,每天自动爬一些资讯,然后post到cms。这时候开始学习 go

这里面有两点,一个是运维,当时看了鸟哥的linux私房菜,tcp ip 详解,shell脚本写的很多,把很多工作都自动化掉了,也让我对运维有很深的执念,以至于2017年很想做一个运维,当个划水的运维。直到后来到大公司,发现根本不是那回事,而且运维也早已经被sre给取代掉了。

另外一点是自己开始学习go,写了很多爬虫,爬一些资讯、八卦、优惠信息。go真的小巧,不占内存,写爬虫分分钟,对于内容而言,就是首页、列表页、详情页三个页面,采集规则落一下,而后监控一下更新就可以的。当时每天上班都是划水,打游戏,看书。当年竟然看了80本书,可见我有多么闲。

第二份工作

2017年,从北京来到了杭州,进入一家云通信公司,人数100+,这家公司技术栈就比较现代了(相比较原来北京的小公司),技术栈是 java+mq+mongo+redis+jstorm+odps. 这时候见识到了java的强大,做了一些业务模型的抽象、建模、流程优化,创造性的提出了多机监控,让短信通道的自动切换时长不超过1分钟,之前最长是3分钟(他们之前一直以为自己的监控能够做到1分钟切换,实际并不是)

这份工作,给自己带来了超级多的新鲜感,网络协议、smpp、cmpp、haproxy、iptables 中转、java、shell、消息队列、财务对账跑sql、分发任务、双十一支持、当然自己也做出了很好的结果,支撑公司渡过了一个上升期。

之前每次大促,本地机器上传到odps做对账都很浪费时间,我分析之后,并且做了实践,发现其实比较吃磁盘io和网络,所以协调运维同学提供了高性能的ssd机器,并且改成shell多线程上传日志。之前都是一个人通宵来搞,后来变成1个小时就搞定了,根本不需要熬通宵。

第三份工作

2018年,在上一家公司做到天花板之后,去了阿里的电商,想去见识更多的业务问题,技术问题。阿里的电商base,是java,所以阿里是一个java base的电商。

阿里的电商其实有很多可以讲的,之后专门出系列来讲。

在这里,自己见识到了一个超大型网站的运行,见识了双十一,见识到了各种商业,打开了自己的眼界。阿里的技术基建已经相当完善,自己所在的部分是业务中台,更多的是对业务做抽象,分层、对商品、订单、用户等模型进行升级、包装、分层、提供更好的业务抽象和解决方案。

误区一:java 很垃圾、吃内存,还有虚拟机

2013年,自己就知晓了java,此时各种培训班都有教java的,自己用了下那丑陋的eclipse,还下载了一个jdk,完了还要配置一大堆东西,觉得这个语言太二了,这么麻烦,写法这么繁琐,不漂亮,也不知道能干啥,不像js所见即所得,所以就没有放在心上。

直到工作2016年,又有老同学给我发了一个java的培训班课程,引导我学习一下,转java,我说这个有啥好学的,此时我刚学go,go才是先进生产力呀,java吃内存,还有一个虚拟机,而go直接编译好就可以跑。

2017年,在云通信公司见识到了java可以这样写

2018年,进入阿里后,看到java的代码,才知道自己当时认识的肤浅,java这个生态,所有的配套框架、配套中间件、各种实现,太多太多,还有神器springboot。java的分模块、接口、各种设计模式,让分布式大型协作成为可能。

误区二:算法无用

2018年的时候,自己开始系统性的看计算机,此时看到一个怎么都绕不过的坑,数据结构和算法,自己对算法没有什么兴趣,自己看了一些课程也没有让自己能够进入门道,觉得太复杂了,也没有啥用,有google,自己搜一下不就得了,而且各种语言自己实现的数据容器本身已经很好用了。

2020年的时候,开始看外企,发现面试必考算法,自己又开始刷算法,发现leetcode easy水平自己是没问题的,但medium的就有问题。

2022年的时候,也就是这篇文章成文的时间,发现算法确实有帮助自己去理思路,去分解问题。同时发现其实也没那么难,基本上就那些套路,是可枚举的,是可以学会就能受益终身的。

结语

时常回过头来看看来时的路,可以指引走的更快更好一些。