Skip to content

告别

很久没有来动博客了,今天考完试忍不住想提笔写点什么,想了想,告别二字较为合适。

去年年初决定考研,我放弃了暑假实习的机会,放弃了出去玩的计划,每天开始奔波于图书馆和寝室之间。

看着一起打比赛的小伙伴们纠结于投简历和面试,经历了实习阶段,再到后面拿了return offer开始享受大学时光,他们变而我不变。

我的生活依旧是单调的两点一线,时不时听听张宇的段子,学校的食堂已经快吃到吐了,每天也似乎在简单的重复。

或许是考研复习真的太无聊了,我开始在图书馆里看起了各种书籍,而书籍的海洋让我沉醉不已。

从我的豆瓣中能看出,当时我读了大量金融及股市相关的书籍,幻想着自己能在股市中大展风采,获取不菲的财富。

但想法在去年10月份发生了转变。

有一天晚上离开图书馆的路上,我突然在想:

玩金融游戏很多时候只是把钱从一些口袋转移到了另一些口袋,这真的是我想要做的事情吗?

技术改变世界才是很cool的事情。

于是,放弃了对金融的追求,把自己摆回到对技术的热爱上。

考研虽然枯燥,但给我很多时间静下心来在图书馆阅读各种书籍。

而且复习专业课给我补了很多计算机基础知识,数学的巩固及英语的强化还有对资本论的初步涉及都给我后面的生活带来了很大的帮助。

2017漫长的考研复习已被寥寥几笔带过,2017年底考完初试,通过初试,过年前决定放弃考研复试并去做点自己想做的事情,和家里商讨此事并获取同意。

年后母亲变卦,硬逼我参加复试,我很不情愿,所以走形式在今天完成复试并做了点小操作保证自己无法被录取。

面试安排在浙大玉泉校区,下着小雨,发现古朴的浙大校园非常美。机试安排在夜晚的紫金港。

把复试全部完成后,一个人安静又开心的走回宾馆,和浙大也和那个为考研奋斗了许久的自己告别。

为什么会在考研通过初试后决定放弃读研的机会呢?

2017年11月我去上海参加了TechCrunch举办的Hackathon,临时遇到情况需要我重新自己去组个队打比赛。

我记得自己周五晚上基本没睡,一直在到处拉人,周六早上也早早跑去会场拉人。

有小伙伴说周六早上给我答复,我等到了周六早上,等来的是失望的结果。

所幸自己在会场中认识了几个小伙伴,也勉强组出了个队伍,并在最后获得了中信挑战项目的第一。

这次Hackathon真的是把自己的潜力给逼了出来,队伍自己来组,brainstorm时需要理解每个团队成员的想法并把握方向,项目进度需要主动去跟进和推动,最后展示需要把东西说的足够nb。

短短两天给了我想象不到的成长。

考研结束后的第一天我就跑去上海到欢乐互娱实习,并在年后第一个工作日辞职。

辞职的原因是因为自己更想去做区块链相关的内容,所以跑出来加入了一个Startup,这件事情是自己在年前就定下的。

在大年三十和初一这两天,我们团队做了个以太坊上的dapp,3天时间流水过700ether,抽手续费赚了近40ether。

在startup中接触到了很多资源,而这些资源是浙大研究生阶段无法给我的。

换句话说,我想去浙大读研的目的已经在startup中达到,而且远远超出,所以这也促使了我和过去的自己告别,趁年轻的时候去做点更cool的事情。

写到此时已是新的一天,主动给自己的人生做了次转折,愿能一往无前。

 

坚持一件小事情

记得小时候看过一个关于挥手的故事,可能很多人都看过:

苏格拉底在上课时,要求他的学生每天做一个简单的挥手动作。动作虽然很简单,但坚持了半年以上的却只有一个人,这个人就是柏拉图。

无意中在qq群里看到有位巨巨提出了一个每天AC一题的想法并得到了很多人的响应。出于just for fun的心态,我也加入了这个活动。活动有固定一个qq群,没有ac的人自觉退群。因为出发点不是利益驱动,所以大家也无所谓故意造假之类的。
活动有一个Github的rep,大家会把AC的代码放到这上面。感兴趣的同学可以 >>戳这里<< 。

我的做法是把我自己每天AC的第一道题代码贴在上面,并标明日期。有记录的是从2016年05月05日开始的这个小游戏,不知不觉间,已经更新到了2017年05月10月。我在这天之后,最终决定停止游戏。

这整个过程总结起来就是两字–“坚持”。

目标很简单,每天都AC一题,但实践的时候,难度并不小。记得自己有好几次因为事情忙,差点忘记写题。印象最深一次是已经23:40了,在床上休息的我突然想起来自己今天好像没有写题,匆匆忙忙跳下床完成了AC。

从一开始的经常忘记到后来的形成习惯,每天坐在电脑前第一件事情就会想想自己今天有没有写题。

记得在准备区域赛的时候,自己每天都会写很多题,所以完成难度并不大,可在自己退役准备考研以后,每天主要时间都花在复习上,经常性是一天中第一次打开电脑已经是晚上22.30以后了,一方面疲惫的自己没精力去想难题,另一方面时间上也不允许我去思考很难的题,所以我只好不得不找点简单的题目写。

但还是坚持下来了,github上记录了我所有的commit过程。当然,偶然有几天发生了意外,我也在github上做了记录和说明。我的记录页面 >>戳这里<<

至于结束游戏的原因也很简单,我确确实实证明了自己坚持的能力,游戏的初衷达到了。能坚持一年以上,这自然已经成了习惯,在外部环境不发生巨大变化的条件下,坚持一年和坚持十年其实是一样的。

坚持是一件很有意思的事情,有时候我经常会问自己是否具有走向成功的必要条件,“坚持”就是我认为其中的一项。 (Continued)

C++坑点记录- set删除

最近在写一道Facebook hacker cup的题时,需要使用平衡树维护操作。遂调用了C++标准库里的set,在确保解题思路没有出错的情况下,我发现自己始终有一组样例无法通过。在检查了很久的细节并找了标程对跑中间过程以后,我发现我在使用set做删除的时候,迭代器发生了和我预想不一样的变化。

我在一个函数中调用了set的erase操作来删除某个迭代器,函数的传入参数为要删除的迭代器,类似如下

set<int> aha;

void del(set<int>::iterator it)
{
    //一顿操作
    aha.erase(it);
}

然后我在main中想要删除一个迭代器,并左移一位或右移一位迭代器,类似如下

int main()
{
    set<int>::iterator now;
    //一顿操作

    //操作1
    now=aha.find(5);
    del(now);
    now--;

    //操作2
    now=aha.find(8);
    del(now);
    now++;
}

上面是我原来的写法,删除这个迭代器所在的位置,然后移位。
但理想很美好,现实有差距。在我用标程对拍以后,我发现上述操作存在很大问题。
使用erase操作删除一个迭代器以后,我访问该迭代器,他仍旧是原来的值。
但当我想要左右移位时,经测试发现不管你左移还是右移,他返回的都是删除的迭代器在原set中的前一个位置。
也即

    set<int>::iterator now=aha.find(8);
    del(now);
    /*
    现在--now和++now都是同一个位置
    为未删除now的set中,now的前一个位置
    */

了解这个就好办了,我预先存下我要删除的位置,然后迭代器先更新,再调用删除即可。
这个主要还是对STL不够熟悉造成的,为此,我后来还去翻阅了set中erase操作的函数原型及返回值