在这个难以入眠的夜里,乔布斯年在斯坦福的演讲里说的“Connecting the dots”又萦绕耳际,即当我们往回看,就清楚了

自己曾经的生活和现在甚至将来是串联在一起的,这些经历决定了我们事业、生活的走向和方式。韦哥这两年都没有过五

四青年节的权利了,回忆青春,可谓“从前的点点滴滴回涌起,在你五味杂陈的心里”。

大学毕业的时候,我有了一年多的Windows VC++的编程经验,相对于周围的同学来说,算是比较“会写程序”的了,

因为你懂的,大学里普遍被认为正事的是打游戏,即使是计算机专业的学生,也很少有编程经验,而且普遍对编程有

一种恐惧感。10月份的时候,我就去一公司的软件出口事业部进行实习面试,虽然感觉表现不够好,但还是通过了面

试,给的待遇还可以,一个月挣的钱相当于在学校里一年的生活费,让我这个农村出来的穷孩纸受宠若惊。于是没有

想太多就去实习,之后也正式入职了。现在回想起来,我觉得当时在应届生里我还是有一些竞争力的,为什么没有去

多尝试几个公司,多面几次试呢。现在想想,并没有多少后悔,但还是觉得当时应该多试试,多选择。我也曾经年少

轻狂,英语6级考试就是一直不愿意考,因为学校规定大二结束才能考四级,而我大二时已经在背GRE单词了,大三

直接拿牛津字典看了,我觉得大三后再去考6级是对我的侮辱,我北大的同学大一就过6级了。我自认为英语不错,拿

过两次竞赛奖,虽然最好的也只是全国竞赛二等奖,但我认为我大一或大二过6级是没问题的,那样我才会有成就

感。现在看到一些招聘要求写着英语6级时,我只能笑笑。

第一份工作是Windows开发,接下来5年,我顺理成章地继续Windows开发的工作,从应用层到内核驱动,还一度对

软件破解有些兴趣,经常上看雪论坛逛逛,下载一些软件然后使用Olldbg、IDA Pro做一些分析,并学会用Windows

Sysinternals上的那些工具。Windows编程的书籍如《Windows核心编程》、《深入浅出MFC》,《Windows内核原

理与实践》、《Windows驱动开发详解》、《寒江独钓-Windows内核安全编程》、《c++反汇编逆向分析技术揭秘》

等等书籍读了个遍。我最后一份Windows工作试用期结束时,领导给我的评语是“解决问题能力强,尤其在Windows

编程领域,具有专家级的水平”,虽然我自己认为评价过高,但心里还是有些高兴,因为这些年持续不断的学习似乎得

到一些认可。然后我参加微软的远程上机面试,职位是内核驱动开发,给银行做项目。面试后他们给我的评价是:对

Windows内核驱动开发基本了解,但加密算法方面没有达到项目要求。

然后我就找到了现在的这份工作,第一个项目是调试一个开源项目,包括Windows内核驱动、Linux内核驱动和应用

程序。我之前只是装过几次Linux,大部分的命令都不会用,但是为了做项目开始加速学习,一个多月下来,从对

Linux比较陌生到学会调试其内核驱动并分析内核代码,基本的命令使用也熟了。其实在有了Windows经验以后,我

学习Linux还是比较顺畅的,虽然有些东西需要时间的沉淀。比如在Windows下,我会去了解PEB、TEB这些内核的

进程、线程数据结构,PE文件格式,内核同步机制等这些东西,那么到了Linux这边,我也会去找类似的东西是怎么

实现的,于是就会了解task_struct,ELF,spinlock等东西。但是原来有些我在Windows需要借助比如反汇编工具去看

的东西,在Linux下我可以看源代码了,这让我有一种自由和舒畅的感觉。接着,我打算开始研究Linux内核。

现在的业余时间里,我就研究Linux内核源码和虚拟化技术,分析开源云平台如OpenStack代码,这些对于做云计算的

人来说绕不过,虽然有些人可能觉得做云计算就是拿开源的东西来搭建一下就完事,但我自己觉得这样的云计算至少

我自己是不敢用的,同时我认为如果一个公司要做公有云,没有自己的内核和虚拟化团队做支撑,只是想拿个KVM或

Xen装装就能为客户服务,简直就是给自己埋了个定时炸弹。

我有时候会想,如果我从一开始就接触Linux编程而不是Windows,那么我前五年的时间就是在做Linux开发,以我的

性格肯定早就研究了Linux内核,这样我对Windows程序可能一窍不通,但对计算机的理解、对Linux内核的实现机制

的理解、对各个协议栈实现的理解一定会远远高于现在的水平。但是回到乔帮主的“Connecting the dots”,谁又能知道

我因为对Windows的较为深入的理解,加上对Linux内核的继续探索,会在未来给我带来怎么样的连锁反应呢。虽然我

也知道,有些人可能永远不会去了解内核,但同样能用shell、python写出挺溜的东西,喜欢研究内核的,在做同样的

事情时,并没有能表现出多少优势。但是我还是希望自己了解更多底层的知识,不喜欢被蒙在鼓里的感觉,并且相信量

变到一定程度会引起质变。

我有一个缺点同时也能勉强认为是优点,就是醉心于资料收集。不好的地方在于,花了那么多时间去收集资料,而真

正用心去研究带来水平提升的少,没有达到本来的目的。好的地方在于,通过这些我极大开阔了自己的视野,一般同

事们遇到什么技术方面的问题时,我总能告诉他们哪儿有这方面的较好的资料可以学习,或者翻出藏在我电脑某个角

落里的文档让他们看。好的地方还在于,因为长时间的关注,每当我打开微博、微信、RSS阅读器时,那些技术干

货资料、各种技术大会的分享信息就从四面八方涌过来,使我能更迅速地了解行业资讯,更快的找到我想学的东西,

但不是我去google,而是它们给我推送D。

如果你看到这里,应该对我有些了解了,如果你也是搞云计算方向并有意愿交流的,可以跟我联系,邮箱:

wwsh52@sina.com。如果感觉对我还是没什么了解,那我觉得还是婉拒垃圾推销等邮件吧,你知道,我不

会买的。

About me --- Connecting the dots的更多相关文章

  1. 《Connecting the Dots: A Knowledgeable Path Generator for Commonsense Question Answering》一文的理解和总结

    构建常识问答知识路径生成器 论文贡献 ​ 提出学习一个多跳知识路径产生器来根据问题动态产生结构化证据.生成器以预先训练的语言模型为主干,利用语言模型中存储的大量非结构化知识来补充知识库的不完整性.路径 ...

  2. SIGKDD历年Best Papers

    作者:我爱机器学习原文链接:SIGKDD历年Best Papers SIGKDD(Data Mining)(1997-2016) 年份 标题 一作 一作单位 2016 FRAUDAR: Boundin ...

  3. 【乔布斯05年斯坦福大学毕业典礼上的演讲】——Stay Hungry, Stay Foolish.(转)

    Steve Jobs: Commencement Address at Stanford University "Stay Hungry, Stay Foolish." 求知若饥, ...

  4. 每日英语:A New Way to Learn Chinese

    Entrepreneur and author ShaoLan Hsueh thinks that English-speakers can start learning to read Chines ...

  5. You've got to find what you love

    你必须找到你爱的东西 You've got to find what you love 史蒂夫乔布斯2005年6月在斯坦福大学毕业典礼上的演讲 I am honored to be with you ...

  6. Stay Hungry, Stay Foolish--2005斯坦福大学05年毕业演讲

    转自http://www.cnblogs.com/daizhj/articles/1493813.html 斯蒂夫•保罗•乔布斯(Steve Paul Jobs,1955年2月24日出生-)是蘋果電腦 ...

  7. 数据挖掘方面重要会议的最佳paper集合

    数据挖掘方面重要会议的最佳paper集合,兴许将陆续分析一下内容: 主要有KDD.SIGMOD.VLDB.ICML.SIGIR KDD (Data Mining) 2013 Simple and De ...

  8. AGC017 F - Zigzag

    传送门 Time limit : 4sec / Memory limit : 256MB Score : 1600 points Problem Statement There are N(N+1)⁄ ...

  9. Data Visualization – Banking Case Study Example (Part 1-6)

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

随机推荐

  1. pytorch下可采用visidom作为可视化工具

    2018/9/18更新  感觉tensorboardX插件更好用,已转用https://github.com/lanpa/tensorboardX 更新:新版visdom0.1.7安装方式为:cond ...

  2. 单例/单体模式(Singleton)

    单例/单体模式(Singleton) 首先,单例模式是对象的创建模式之一,此外还包括工厂模式. 单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3, ...

  3. python ATM大作业之alex思路

    一 ATM alex想了一个思路,就是定义一个函数,这个函数可以实现所有的atm的功能:取款,转账,消费等等. 为了实现这个想法,alex构建了一个两级字典,厉害了.我发现,厉害的人都喜欢用字典.这里 ...

  4. hdu 3685 多边形重心+凸包

    Rotational Painting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  5. LA 3905 Meteor 扫描线

    The famous Korean internet company nhn has provided an internet-based photo service which allows The ...

  6. vue.js源码学习分享(九)

    /* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods);//获取arrayMethods的属性名称 /** * By defaul ...

  7. 转 PHP 使用 Redis

    PHP 使用 Redis PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP ...

  8. JQuery 入门学习附常用UI模块

    一.简介 jQuery 库可以通过一行简单的标记被添加到网页中 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操 ...

  9. C语言集锦(一) C代码生成图片:BMP、PNG和JPEG

    1.生成BMP图片 在学习图形图像的过程中,最简单和常见的格式是BMP和PPM.下面将给出生成BMP的极度精简代码,然后讲解BMP格式. #include <stdio.h> #inclu ...

  10. AC日记——Aragorn's Story HDU 3966

    Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...