如何看待中国学生为了进 Google、微软等企业疯狂地刷题?

范狂夫

应景搅和一局,其实也是因为看到「高中数学学那么多三角函数公式到底有什么用?」这个问题下面一堆天赋型学霸纷纷表示情绪稳定,鄙视刷题流学霸的盛况,而有感而发。

就用一个老迈年高跟不上时代注定以螳臂挡车的跳梁小丑角色被童年才俊驾驶的历史の五对负重轮碾为齑粉的不入流码农的身份,传授一点过时的经验吧。

在世纪之交,微软兲命昭昭的时代,境内市面上流行一大堆Windows编程书籍,关注点是面向天赋低下只能笨鸟先飞的勤能补拙型刷题流只配担任革命螺丝钉的蓝领码农,而不是以「算法」为核心。

那时候境内计算机专业的贱种学生,通常是「抱着一本谭浩强整天『i++++ii+++++i』的做填空题」,被如今这些二十一世纪海外信息技术之路上奋勇前进的精英们嘲笑。不过呢,除了钦定课本之外还是有点与时俱进参考书的。

比方说《Windows程序设计(第五版)》(«Programming Windows, 5th Edition»),1998年出版,纯粹以C语言直接调用Win32 API,没有使用任何「IDE」而是以「编辑器」结合「命令行编译器」的形式,即便在美帝灯塔国也是从业人员赞不绝口的经典。

后来嘛,2001年,与时俱进的作者配合与时俱进的微软,推出了《C# Windows程序设计》(«Programming Microsoft Windows with C#»),同样还是纯粹以C#直接调用.Net API,还是不用「IDE」,而这次赞不绝口的从业人员就少得多了。

而到了«Programming Windows Sixth Edition Writing Windows 8 Apps with C# and XAML»的时候,已经近乎被境内信息技术从业人员无视了。作者Charles Petzold过气了,该退位让贤目送与时俱进的童年才俊钦定接班人兲命昭昭的登基了也。

除此之外,运气稍好的作者Jeffrey Richter也有名著《Windows高级编程指南(第三版)》(«Advanced Windows, 3rd Edition»,1997),以及《Windows核心编程》(«Programming Applications for Microsoft Windows, 5th Edition»,1999)。

由于专攻「核心」,直到«CLR via C#»都在高举紧跟微软与时俱进,从而在新时代「.Net Core」跨平台的大背景之下,结合已经开放且开源的生态圈继续发挥余热。

既然「user32.dll」和「kernel32.dll」都有经典了,那么「gdi32.dll」相关阐述就由「华裔香蕉」Feng Yuan的著作《Windows图形编程》(«Windows Graphics Programming: Win32 GDI and DirectDraw»)负责了也。

上面罗列这三个系列并非手滑随便打字,因为Windows的基础就是那三个动态链接库,分别代表了三个重要的功能模块。因此,二十年前惦记着在业界发展的贱种蓝领码农,都会深入学习相关内容的系列重要著作精神。

这三个系列的经典,还都是专注于C语言。而Jeffrey Richter本人使用了一套自定义的消息与回调函数之间的映射宏,而不是任何类库,甚至直接批评微软为啥发展「Visual」之「C++」而不是不忘初心牢记使命立足于最基础的原则增强开发工具。

这么一看,果然过时了吧?是吧是吧是吧?再这么刷题一点用也没有是吧?比方说在知乎看见Qt大拿抱怨,说Windows当中只有窗口才能接受消息,于是为了实现啥通用的事件处理必须开设个隐形窗口什么的。

很遗憾,因为当代主流操作系统,无论是Windows还是Linux还是基于BSDmacOS,都是由C写成的,底层接口毫无例外是C而不是其它什么。于是即便关注开源的精英,也知道GnomeKDE风格不同,前者用C后者用C++,所以通常根据屁股决定支持某一方。

扯远了,过时的经验还没提呢。当年我是这样「刷题」的:

Windows 2000时代,按照三大模块按部就班练习。

到了Windows XP时代,「GDI」换成「GDI+」了,这个没有参考书籍,只能根据经验和官方帮助文档更新练习内容自主刷题。

再往后就是「C#/.Net」时代了,情况好多了,也能用得上「IDE」了,这时候就根据组织安排和岗位职责忘我的投身于热火朝天的生产生活斗争实践当中去了也。

加一句,当年刷题的时候,直接从微软官网下载公开的免费的Platform SDKDDK,然后用免费的「Borland C++ Command Line Tools」编译,确实没有用「IDE」,只需要「编辑器」。

再加一句,现在看来「刷题」的内容确实没啥用,不能直接为宗室勋贵创造价值(或曰「剥削」)然后被摘桃子灭口。但是呢,有个开源的操作系统「ReactOS」就是山寨Windows,以「NT 4.0」开始,可能涉及到Win2k部分内容,目前还没到XP呢。

就是说,如果以「英特纳雄耐尔就一定要实现」为目标,这些「刷题」的练习内容,同样可以为「人类文明」作出贡献。

2018.02.24