总有几位老师让你一生感激不尽----老师侯捷
总有几位老师让你一生感激不尽----老师侯捷
我们每个人心中都有过自己的偶像,我们每个人都有自己喜欢的对象,我们每个人都渴望成为某一种人。从小到大,我曾经把几位老师当过偶像:初中学书法的的庞中华老师,大学时和工作后一直学习的陈家琪老师(百度百科,主页),研究生学习编程时的侯捷老师(网站)。
陈家琪老师(百度百科,主页)教过我C程序设计,跟他学习最多的还是通过他的教学网;跟侯捷老师(网站)学习也是读他的书和看他网上的文章。
我购买并认真阅读过侯老师在大陆出版的著、译的所有图书。由于自己无法出境、出国,前几年,家人去台湾游玩时让她们帮买大陆买不到的《多态与虚拟(jjhou)》,《实战C++》,《实战Java》等书,遗憾的找了几家书店也没有买到。
记得有一段时间我特别期待这本书的出版:
今年二月份,周筠老师(知乎,微博,豆瓣)
在微博上写到“关于侯捷老师和他的书、网站,你有哪些回忆希望与人分享?”时,我转发并回复了一下:
心里又被那个名字撞击了一下。
作为一名老师,一年中最看重的是教师节。每年的教师节是我最幸福的时候,收到教过的学生的短信、微信、QQ消息、微博祝福令我当老师的幸福感爆棚,这时候我也会想起小学、中学、大学、研究生期间给我有较大影响的老师,即使没有联系方式,甚至有的老师都忘了姓名,也默默的祝福他们健康、幸福。教师节,我也总会想到给我一生影响最大的老师----侯捷老师(网站)。
结缘
2000年7月,考进了华中科技大学,在还没有搞清楚VC、C++、MFC、Windows APIs之间关系的情况下,二Boss给了近万行的代码,留下的狠话是“四个星期看懂,修改,增加XXX功能,搞不定你就回家吧”。怎么办?先看书打基础吧。类似侯老师的所说的“拜IDE所赐,靠着VC的click、click,世上又多了不少程序员”,没日没夜的一个月过去了,学会比较熟练使用了VC,完成了Boss的任务,没有被赶回家(感觉人的潜能真是被逼出来的)。只是心里对VC有了疑惑,那些类到底怎么来的,它们之间怎么粘合在一起的?对,那时还是没有分清C++、VC和MFC的关系。
读书时我们宿舍在学校东区,经常会路过当时的华中理工大学出版社(现在的华中科技大学出版社)。有一天,看到出版社十块钱一本处理一些旧书,看着便宜就过去看看。眼睛瞄到一本《深入浅出 Windows MFC 程序设计(jjhou)》的书,翻开看到“第一篇 勿在浮砂筑高台”就深深被吸引住了,还有这么写技术书的?太文艺范了吧!!
"勿在浮砂筑高台” 说明了打好基础的重要性。后来当老师做班主任时,为了帮班上的同学打好编程基础,C语言当义务答疑助教,还全程陪着他们听了《数据结构》课程。
这感觉就像被老婆逼着吃了半年素,然后吃到了肉一样!!
程序设计领域里,每一个人都想飞。但是,还没学会走之前,连跑都别想!
看了这一章,真是有醍醐灌顶的感觉,Windows API、MFC、C++、Visual C++的关系是搞清楚了!!
现在的读者可能不知道当时IT图书的出版乱象,那时候也没有豆瓣这样的网站,买到好书就是碰运气,包括一些经典图书也被短视的出版社给毁了。类似有“翻译快手”之称的邱仲潘之流不知道毁了多少书。台湾的IT图书出版也有类似问题,可以参考一下荣者日安安 辱者定碌碌。
今年(2015年)在哈尔滨工业大学(威海)参加第5届全国高校软件工程专业教育年会(参考我的参会总结)才了解到我国影印版图书的来龙去脉,我们近似合法盗版,几乎可以和国外同步看到一些好书。
买回去如饥似渴的把书读完了,有书、有配套网站,有图书勘误、有答读者问,真是超过对图书的所有预期。之后类似现在天天刷微信、微博,我之后的四、五年几乎天天刷侯捷网站(镜像),直到http://www.jjhou.com无法访问,CSDN上的简体镜像也无法访问。感谢李建忠先生(微博)让侯捷网站在博览网复活(但不明白为什么不镜像简体版??)。
《深入浅出MFC 2e(电子版)》出来之后,买了本很快就看完了。当时我还看到一本《MFC深入浅出》也不错。第一版没有大卖,类似的好书也没有大卖,《深入浅出MFC 2e(电子版)》卖了十多万册,这让我关注了图书编辑周筠老师(知乎,微博,豆瓣),那时,在我眼里,周老师真是个营销高手。当然,现在是有了很大的改观,她不仅仅是个营销高手,还是个好教练。我看了很多书,也知道动手写的重要性,却一直没写什么东西,一方面眼高,很多人写的东西看不上,一方面手低,自己写出来的东西更看不上。现在想想,天天看侯捷的文字,拿来作对比,是不敢写。但周老师一直督促我写东西,一句“写出来不好可以再改”解开了我的心结,这一两个月慢慢习惯了天天写点东西。
影响
确定了自己的职业
我读研究生那几年,华为、中兴、大唐那些公司到华中科技大学招人是一个宿舍一个宿舍的抢学生,为讨好学生,还请同学们吃饭。我们毕业时(2003年),大家都比这个公司的offer,那个公司的offer,谁可以一年拿14个月的工资,谁年薪多少多少。
研究生三年,我在导师的公司里上了三年班,见识了公司里各种见不得人的营销手段。我当时已经想的很清楚了了,坚决要找个学校当老师(后来发现学校也不是世外桃源)。也是因为我坚决想当老师,成全我进入了北京电子科技学院当老师。现在也很庆幸做了这个选择,每天工作就像娱乐,工作就是休息。我的博客的slogan是“读书以自娱,育人以自娱! 做中教,做中学,实践中共同进步!”就彰显了我工作的状态。
从小到大,一直是随大流的,按部就班的读书、读书,一直到了研究生。通过阅读我的电脑探索、侯捷访谈录等文章,通过看侯老师开的课以及课程备忘录,我慢慢思考什么工作适合自己。读大学时,我就有做家教的经验,并且很享受当老师的感觉;读研究生时,在导师支持下,我还给实验室的师兄弟们开课培训了“面向对象和设计模式”技术;通过辅导专业课,也成功帮助一个材料专业的学生考入华中科技大学计算机专业研究生;还辅导了高中同学的高等数学,成功帮助他考入华中科技大学机械学院。在读侯老师文章中慢慢确定了自己的工作方向,开发是一个方向,教育可能意义更大。去公司肯定可以挣更多的钱,但我清楚自己对精神享受的追求远远高于物质享受,并且也只有在学校才可以、也才有时间自由自在的读书,才可以广泛涉猎。
打下了良好C++和Windows程序设计基础
(注意:后文中图书链接尽量选择最新版本了,供现在的读者参考,jjhou 链接到侯捷网站相关图书,有勘误,有答读者问,是很好的学习资料。)
读完《深入浅出MFC 2e(电子版)》,按照"MFC 4 大天王"的推荐,阅读了《Visual C++技术内幕(jjhou,Inside Visual C++)
》、《MFC Windows程序设计(Programming Windows with MFC)》、《深入解析MFC(MFC Internals)》,并输入、编译、运行、调试了书中的代码。Visual C++的使用和MFC的理解让自己的求学和工作变的轻松起来了。
之后根据“C++ 的沉迷与爱恋”和"主厨推荐 侯捷菜单"开始深入学习C++,阅读了《C++ Primer中文版(jjhou,C++ Primer)》、《C++程序设计语言(The C++ Programming Language)》、《Effectiv C++ 中文版(jjhou,Effective C++)》、《深度探索C++对象模型(jjhou,Inside the C++ Object Model)》、《Exceptional C++中文版(jjhou, Exceptional C++)》、《Essential C++中文版(jjhou,Essential C++)》、《C++ 标准程序库(jjhou,The C++ Standard Library)》、《STL源码剖析(jjhou)
》、《
C++设计新思维(jjhou,Modern C++ Design)》,并输入、编译、运行、调试了书中的代码。这些书的阅读和练习让我打下了良好的C++的基础,掌握了学习编程语言的方法。后来上课发现C++课程《Essential C++中文版(jjhou,Essential C++)》里面的内容就够了,但自己深刻理解了什么叫“要给学生一碗水,自己先有一桶水”,并体会到什么叫“会当凌绝顶、一览众山小”。上课课时不够时怎么办?《C++ Primer中文版(jjhou》和《Essential C++中文版(jjhou,Essential C++)》的对比阅读给了我很大的启发。一门课包含ABCD四个模块,课时不够时,一名好老师绝对不是只讲AB,而是把ABCD更抽象、更精华的部分展现给学生,保证学生对课程有个整体观。讲C语言不讲C函数库,讲C++不介绍STL都是不对的。
之后,还读了《重构(jjhou,Refactoring)
》、《Java编程思想(jjhou,Thinking in Java)》、《Practical Java中文版(jjhou,Practical Java)》、《Effective java 中文版(jjhou,Effective java)
》,然后工作后上的第一门课就是《Java程序设计》(相关教学经验交流点这).
MFC封装了Window API,通过“三本 Windows 程序设计好书、再谈 Windows 程序设计好书、苦涩后的甘甜-Windows 系统深耕、推动窗口的手-- 驱动程序”的推荐,还读了《Windows程序设计(Programming Windows)》、《Windows核心编程(Windows Via C/C++)》、《Windows 95 系统程序设计大奥秘(jjhou,Windows 95 System Programming SECRETs)》、《Win32多线程程序设计(jjhou,Multithreading Applications in Win32)》等书,并输入、编译、运行、调试了书中的代码。这对我后来转到信息安全方向打下良好的操作系统基础。《Windows程序设计(Programming Windows)》中文翻译的好多都翻译错了,一些双重否定句意思都译反了,我买了影印版,完整阅读了这部1000多页的英文大部头,然后再也不怕读英文书了。
学习方法
选书买书
侯老师的书质好价高,为此还挨骂。侯老师经常讲的观念是“买书不是买纸,图书定价不要看书厚薄”。像“二十年目睹之怪現象”中说的“本书仓促付梓,误谬在所难免”的书便宜也不能买。“买书买的是知识的价值,不是纸张的价值”,这个观念很重要。看烂书付出很大的机会成本,时间是金钱买不来的。“榮者日安安 辱者定碌碌”中显示海峡两岸都有过出烂书的过程,侯老师以一己之力提升了海峡两岸IT图书的品质,真是功德无量。
“图书是最好的投资”也是读侯老师文章学到的。以前一本好书出来,国内出翻译版两三年就过去了。受侯老师文章启发,我很早就办了信用卡,在Amazon,Pragmatic买了不少书。不少书一千多块钱一本,看起来很贵,但是给我带来的回报可能是几十倍的。太喜欢Pragmatic,电子书买了就可以下载,书在Alpha,Beta版时就可以先睹为快,这是互联网带来了出版奇迹。现在图灵电子书学的有模样了,我几乎购买了图灵所有的电子书,虽然更喜欢多看阅读的平台。可能有人担心电子书毁眼,其实跟纸书没什么差别,具体内容大家可以参考有关李笑来老师的读书五篇博文(转),电子书的好处真是太多了,谁用谁知道,简单想一下吧,出差你带两本《Windows程序设计(Programming Windows)》是什么感觉!!
学习要循序渐进
侯老师给了深入浅出学习的很多书单。"勿在浮砂筑高台”提倡学习循序渐进。比如C++的学习,从《Essential C++中文版(jjhou,Essential C++)》到《C++ Primer中文版(jjhou》,《Effectiv C++ 中文版(jjhou,Effective C++)》、《深度探索C++对象模型(jjhou,Inside the C++ Object Model)》。
后来读程序员的思维训练(Pragmatic Thinking and Learning),了解到德雷福期(Dreyfus)模型。
在Dreyfus模型中,对循序渐进的学习有了更深刻的认识。
学从难处学,用从易处用
使用MFC、STL没有必要了解其实现,但知道它们如何实现的,让你用起来更顺手。
侯老师引用林语堂的话“只用一样东西,不明白它的道理,实在不高明!”
之后的学习,我习惯于深入一层来搞明白一件事情。比如学习C语言编程,我就想了解编译成汇编是什么样子,比如学习系统调用,我就想了解在内核里是怎么实现的,这个习惯对以后的学习和工作带来了很大的好处。
侯老师通过MFC-Lite,STL-Lite让读者掌握MFC,STL的精髓,这种方法指导着我学习很多知识。去年上《Linux及安全》课程给孟宁老师(微博)当助教,拿孟老师的Linux内核分析课程进行翻转,感觉孟老师讲Linux内核真有侯老师写MFC-Lite,STL-Lite的功力。
做事认真、勤奋
认真
侯老师在《无责任书评2》的 开心之果不独证 侯捷自序中说:
我有一个心愿,不是要开发世界级的软件,也不是要开创多么庞大的事业,或挣多少多少钱财,而是希望留下一些值得日后骄傲问心无愧的足迹。並且,如果能够,树立一个电脑技术专栏作家的专业典范。
我认为侯老师是做到了。侯老师是个非常的认真的人,可以看看那么多的答读者问,我们真正在大学当老师的很少见到对工作这么认真的。
干任何事情,认真不糊弄,自己的收益最大。每年暑假我们都给工会填写一个锻炼身体的计划表:
很多人交了也就交了,我不但交了,还认真做了,结果参考每天一万步,一周减十斤。
老师的职业工作量下限明确,上课到了就可以了,上限是个良心活。当了十年老师,你是有了十年工作经验,还是一个经验用了十年,这要看你认真不认真了。糊弄的结果肯定是坑害了自己。
勤奋
看看侯捷写译年表吧,什么叫著作等身?这就叫著作等身,大陆很作者老是抱怨写书不赚钱,我是帮侯老师算过的他能挣多少钱的:)。当年基础比较差,一本书看一、两个月,我最郁闷的是读书速度赶不上侯老师的写书速度。一本书还没看完,新书又出来了,逼着自己不停的学、学、学。
侯老师开玩笑说“那些一边劝我保重身体,一边希望我多写文章的读者最坏了”。
其实,我们很多问题都归结到自己“不够努力”上。
深入了解台湾
这里,有大历史碾过的痕迹。这里,有温良恭俭让的人民。这里,保留着我们的过去。这里,预示着我们的未来。
在"给信息安全专业学生的书单"中我说:
我早期的学习历程:学习C++看侯捷的书;学DELPHI看李维;学Java看王森,蔡学镛;步入嵌入式领域时,这本书(嵌入式系统项目分析入门与实践)给我不一样的感觉。
看台湾人的书,更能理解“这里,保留着我们的过去。”,为此我曾在豆瓣中建立了个台湾计算机技术作家的小组。
认识侯老师以前,对台湾的认识仅仅在他们大选时骂骂民进党,根据我们的宣传并且认为支持他们的人民必定是少部分。我读研究生时(2000年),大选国民党竟然输给了民进党,太不可思议了。
台湾让人民觉得台上的人不好时有能力换换,这太神奇了。我开始关注台湾政治,政论节目。每周一天的休闲娱乐都给了台湾节目,从《全民大闷锅》,《全民最大党》,一直追到《全民大新闻》。
逐渐的了解了为什么是“官不聊生,人民幸福”,怎么人家的官员都那么亲民,真正的为人民服务,而我们的都是些“官老爷”。关键问题是权力是谁给的,当官的就给谁服务。
我开始读《动物庄园(电子版,Animal Farm)》、《1984(电子版,1984)》等反极权的图书。
我上学时是个很典型的书呆子,就是“两耳不闻窗外事,一心只读圣贤书”的那种。一个笑话是:
作为一个理科生,我开始一直觉得学习历史是浪费生命,然而我开始对历史感兴趣了,开始读《
剑桥中国史》,开始阅读唐德刚,开始阅读台湾历史、两蒋的图书。
“书本上和现实的不一致,别人讲的和你认为的不一致”让我开始关注批判性思维了。如果没有批判性思维,就不了解谁在骗你?
我教过的一个学生施晓曦(微博?)毕业后在英国深造过,我跟她的一些对话让我当老师后认为让学生有批判性思维,养成独立思考的习惯非常重要。
没有批判性思维的人民可以是顺民也可以是暴民,大家可能对2012年西安反日示威大游行中的暴行有所记忆。1999年我国南斯拉夫大使馆被炸,我们也被鼓动参加游行示威抗议,后来知道是被利用的。游行示威可以是违法、可以是犯法,不在于法律让不让干,而是领导让不让干。
跟人打交道,交流时,我开始考虑这个人“做事、说话是不是经得起质疑”,慢慢学会不要情感卷入,不因人废言。
侯老师也有论两岸关系,论两岸统一的散文,后来也被删除了。这涉及一个学术自由的问题,学术自由(管理和学术上)非常重要,西方1158年签署了学术特权的法律文件,最重要的是:
大学人员有类似于神职人员才有的自由和豁免权(让学者和大学生的地位超过了贵族)
大学人员有为了学习的目的自由旅行和迁徙的权利(学生签证的由来)
大学人员有免于因为学术观点和政见不同而受报复的权利(不能言者无罪,大学无法做研究了)
大学人员有权要求由学校和教会而不是地方法庭进行裁决的权利(抗战时,司徒雷登用这条保护很多教授和学者)
像哈佛大学的办学目的是让教士们掌握知识布道同时证明上帝的伟大,但教会没想到的是一旦让人们自由研究学问,就产生了动摇基督教教义的新知识。
东施效颦
读研究生时一直设想一定找个会弹钢琴的老婆,至少得会唱歌。你可能不知道为什么。:)
这是侯老师的头像:
这是我的头像:
也就这张头像还能体现我是华中科技大学图像所毕业的,认真学过图像处理,为了做这个头像,我还编写了个Mini-Photoshop的软件。做头像的原理很简单:提取图像灰度,然后二值化。
参考资料
欢迎关注“rocedu”微信公众号(手机上长按二维码)
做中教,做中学,实践中共同进步!
-
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
估计完成时间:8小时
实际完成时间:6小时