惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
Hacker News: Ask HN
Hacker News: Ask HN
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
The Exploit Database - CXSecurity.com
The Hacker News
The Hacker News
Security Latest
Security Latest
Attack and Defense Labs
Attack and Defense Labs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Scott Helme
Scott Helme
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
WordPress大学
WordPress大学
雷峰网
雷峰网
L
LangChain Blog
Y
Y Combinator Blog
I
Intezer
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
W
WeLiveSecurity
P
Privacy International News Feed
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
A
About on SuperTechFans
AI
AI
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
Martin Fowler
Martin Fowler
K
Kaspersky official blog
U
Unit 42
S
Schneier on Security
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
T
Tor Project blog
aimingoo的专栏
aimingoo的专栏
Engineering at Meta
Engineering at Meta
G
GRAHAM CLULEY
美团技术团队
TaoSecurity Blog
TaoSecurity Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
爱范儿
爱范儿
F
Fortinet All Blogs
有赞技术团队
有赞技术团队

博客园 - Anders Liu

编程十年 (16):后记 编程十年 (15):宿命,程序员 编程十年 (14):毁人不倦2 编程十年 (13):毁人不倦1 编程十年 (12):阅尽天下.NET文章无数 编程十年 (11):与文字的不解之缘 编程十年 (10):我不是比尔•盖茨,我只是厌倦了 编程十年 (9):情系.NET 编程十年 (8):歪打正着C# 编程十年 (7):科班?自学? 编程十年 (6):虚荣的C 编程十年 (4):步入编程殿堂 编程十年 (3):初识计算机 编程十年 (2):前传2——哪有这么牛逼的游戏机? 编程十年 (1):前传1——记我家的电子产品 老刘连载:编程十年 关于《警惕常量陷阱》之补充 四世同堂!Anders Liu给您拜年了!(此文纯水,不喜勿入) .NET/CLI元数据中使用的压缩整数
编程十年 (5):站在网络边缘,却陷入信息孤岛
Anders Liu · 2011-04-22 · via 博客园 - Anders Liu

编程十年 (5):站在网络边缘,却陷入信息孤岛

高一结束后,已经进入1999年了。计算机课虽然结束了,但我和计算机并没有完全绝缘,因为这个时候一种新的行业正如雨后春笋般在我们的国家发展起来——网吧。我已经不记得是谁带着我第一次进入网吧了,不过记忆犹新的是,几乎每天晚自习的时候,我们几个闹将都要一起翘课跑到网吧里玩上一两个小时。

我就读的高中比较特殊,每天晚上放学后,吃完晚饭还有晚自习,一直要上到夜里10、11点左右(夏天将近11点才放学,冬天早一些,10点多)。也正是因为如此,老妈不得不每天给我10块钱吃完饭用,否则赶回家吃饭再赶到学校上课是来不及的。这就为我攒下了充足的网费——我只需要花上2块钱,就能在学校后面的路边摊吃上一大碗凉皮或4个烧饼,剩下的8块钱足够上2个小时网的。

那时候去网吧主要就是连红警,偶尔也玩星际,到了高三的时候,貌似CS就出来了,于是就专门打CS了。我和很多通过网吧接触网络的朋友类似,使用的第一款网络软件并不是IE(或者别的浏览器),而是QQ(那会儿还叫OICQ)。班里有几个经常泡网吧的同学都有QQ号,所以也怂恿我申请了一个,还互相加了好友;不过因为身边的人上网的不多,所以我的QQ号上很长一段时间就这么几个人,而且如果他们在线的话,那么我们一定是在同一家网吧里……

可怜我虽然在上个世纪末就接触到了网络,但并没有学会如何利用这个强大的工具,以至于很长一段时间我都不懂得网络编程,甚至抵触网络编程。

说到高中时代的网吧,还有一个有趣的回忆,那就是我在网吧里见到过最全的Windows操作系统版本——Windows 95、Windows 96和Windows 97(D版无敌啊-_-)。有的时候,两个人甚至为谁用Windows 97的系统、谁用Windows 96而大吵出嘴……

其实我对游戏没什么太大兴趣。即便老是翘课跑到网吧玩游戏,但我也只是图和哥们儿一起哈痞,至于玩游戏本身我是兴趣淡淡、输得多赢得少。也正是因为如此,班里的哥们儿才喜欢和我一起去网吧,但分拨时又不喜欢和我一拨。

每天只能提心吊胆地接触这么一会电脑,自然无法满足我的欲望;而且,虽然每天到网吧只是打游戏,但我对编程还是念念不忘的。于是,我的一个想法在慢慢膨胀——拥有一台自己的电脑。

二十世纪90年代末期,感觉中国人民的生活水平日新月异。虽然初中时家里还很贫穷,但等到了高中,明显感觉家里生活状况好了起来。再加上那个时候计算机行业突然成了热门行业,所以当我再次提起买电脑时,爸妈并没有太多的反对。正好我一个表哥是搞IT的,当爸妈从他那里知道“编程”是什么东东、以及自己攒一台电脑只需要6000多块钱之后,他们终于狠下心决定给我弄一台。

我记得在1999年夏天的一个周末,我怀揣着6700大洋忐忑地坐公交车(活那么大还没见过这么多钱呢)辗转到天坛附近的一个小院落里和表哥接了头,然后他从家里翻出大大小小十余个纸盒子,我们在胡同口拦了辆“面的”就开始装车。从天坛到通县要开很久,但我的心早就飞回去了。

等车到了家门口还没停稳,我就迫不及待地拉开车门开始卸车。我们家在6层,也不知道哪来的精气神,我这一趟一趟地往上搬箱子啊,也不知道跑了多少趟。终于所有的箱子都堆在我的卧室里了,我连大气也不像喘就缠着表哥给我装机器。(现在想想表哥挺仗义,就为了让我了解电脑的结构,宁可把这些散件这么远运过来,也没有提前组装好带给我。)

然后我们开始拆箱,表哥一件一件地给我指,这是主板、这是硬盘、这是内存、这是软驱、这是光驱……不一会就组装好了,而我也对计算机的硬件有了一个大概的了解。然后开始装操作系统,我没想到的是,表哥竟然给我搞来了最新的Windows 98——呃,不过是盗版的。

装完系统之后,开始装驱动程序——在这之前我根本不知道程序是怎么装到电脑上的。不过很快我就知道了——下一步、下一步嘛。驱动程序也装好之后,表哥问我要什么游戏不。我很果断的跟他说,不要,给我装个QBasic。表哥想了想,说QBasic是DOS自带的啊,再说了,这年头谁还用QB啊,给你装个Visual Basic吧。我傻傻地问,那一样么?表哥也不确定的告诉我,应该一样吧,反正都是微软出的。

这个时候,应该是1999年的夏天,我知道了Visual Basic,还知道了微软公司。

表哥给我装的VB——也是我第一次接触的VB——是Visual Basic 6.0,当时最新的版本,也是.NET出现之前的最后一个大版本。在表哥走了之后,当我打开VB的开发环境时,我茫然了,根本不知道这是一个什么东西,也不知道在哪里开始输入我的代码。所以我赶紧又管爸妈要了点钱,坐车跑到了西单图书大厦,几经踌躇买了一本《Visual Basic 6.0从入门到精通》。这又是一本对我产生很大影响的书,也是内容非常充实的,从IDE环境到VB语法都讲得很透彻。

于是接下来的一段时间里,我每天中午的一小段午休时间、下了晚自习到睡觉之前的几十分钟和整个的周末都泡在电脑边,抱着这本书啃VB。

VB是很简单的,所以很快就上手了。不过所谓的上手也只是熟悉了VB的语法,和函数、子过程、事件等等这些概念而已,编程作品也仅限于记事本、计算器这种基础的小玩意。当然其间也想过编一些小游戏,不过由于基础知识太弱,一直没有实现。

回想那个时候的自己,基础知识真是匮乏得很。

首先是不懂算法和数据结构,甚至连算法这个词都没听说过,所以很多想法实现起来非常困难。

其次是不懂Windows API。尽管我买的那本书上也有介绍过如何在VB中声明和调用Windows API函数,但我并不知道这是操作系统提供的强大功能,只是认为只要在VB中写这样一个声明,就可以得到一个神奇的功能了。而且,我会使用的API也仅限于书中给的一些例子,像什么MessageBeep、MessageBox之类的。

然后就是不懂面向对象。这没办法,在.NET出现之前,VB就是这么一个半面向对象的怪物,所以我买的那本书根本不好意思提面向对象。直到后来看别的书才知道,原来VB是面向对象的,属性方法事件一样不少、继承封装多态样样皆可。

还有一个更要命的问题很长时间一直阻碍着我,那就是对网络的不了解,甚至是一种抵触。其他的毛病我还可以赖老师或者书上没讲,而这个问题纯粹就是我的见识短造成的了。我买那本书上专门有一部分是介绍网络和C/S架构的应用程序的,但是每次看到这里我都会跳过。

那个时候对网络可以说一无所知,虽然在网吧也联网打游戏,但每次进游戏的时候,都是按照同学教我的顺序“先选第2个,再选第3个……”,根本不关心菜单上显示的文字(都TMD是英文)。而且,因为是在网吧接触的网络,所以在我的第一印象中,网络一定是由好多台计算机组成的,而我只有一台计算机,是不能玩网络的。我就是生硬地认为,客户端程序和服务器端程序是不能放在一台机器上的,更不知道用“127.0.0.1”就能访问到自己的机器(哦,对了,我那时候连什么是“服务器”、什么是“IP地址”还不知道呢)……

除了不学网络编程以外,那个时候在家里也没法上网,因为那个年代上网成本很高。首先是设备不方便,要想上网必须买猫,一个猫就是几百块大洋;其次就是网费很贵,只能拨号上,算下来一个小时要4块多钱。虽然这个费用和去网吧差不多,但是去网吧可以偷偷地,而如果在家上网的话,每个月爸妈交电话费的时候脸色一定会很难看。

所以在那个年代我的电子信息来源基本上就是书和光盘——我估计绝大多数有电脑的人都和我情况类似,所以90年代末期出版商很流行的做法就是买书送光盘——而现在,大多是在书的封面或封底印上个网址,送光盘被认为是很浪费和很傻比的一件事。

当然,其实就算家里经济条件允许我上网,也是白瞎,因为当时见识很短,网络对我来说就能干两件事——聊QQ和联机打游戏——其中打游戏还TMD是局域网的。

就这样,我名副其实地陷入了一个信息孤岛。我有着自己的计算机,却没有办法共享别人的资源,我也不知道在家里的时候除了玩玩单机游戏和写写单机程序之外还能干点什么。