最近学习用Visual C++ 作为平台的Windows 编程,感觉到学习这种编程技术的过程与学习物理的思维差异非常大。最明显的,比如对于物理课本,在学习的时候值得一个字一个词的认真去读,有时候需要读上好几遍。但在学习编程的时候,即使是号称世界级的教科书,也最好是不懂的地方就跳过去,不需要的地方跳过去,不求甚解,以能够动手上机操作为目的。我现在明白了这种差异来自于一个是面对的是自然世界,一个面对的是人工系统。

  物理学以理解自然为最高目标,物理课本是经过浓缩的一代代物理学家所得到的知识。阅读大自然并非易事,比如当年英国物理学家焦耳花了二十年的时间,测定了热功当量的值1卡=4.2焦耳。这件工作确立了热力学第一定律的基础,可是在物理课本中也就几句话。物理课本上的内容是几百年以来的知识的结晶,然后用了精巧的数学把它包裹了起来。在这样层层的包裹下,其实也许核心就是那么一点点,如果真的学懂了,感受很像华罗庚教授所说的“由厚到薄”,厚厚一本书籍变成了少量一些key points。我现在正在教授本科生的大学物理课程,在第一学期,要花掉大约3个月的时间讲授力学,大概物理系的本科生学习力学要花掉一个学期的时间。其实,转过头想一下,力学(不算狭义相对论)的内容,不就是牛顿三定律吗。当然,在这个基础上,发展出了能量、动量、角动量这些非常重要的概念。但是,平均到每节课,也就那么一点点的核心概念,而其它的是“越来越多的x”。我常劝我的学生认真读课本,而且多读几遍,在课堂上我也会做一下演示实验,并且鼓励他们互相讨论。这一些努力,就是希望他们能够知道哪些知识点是最重要的,哪些是不重要的。

  物理学的难懂,也不仅仅是知识经过了浓缩,因为大自然的本性有时候难以琢磨(不知道她是否“邪恶”),所以我们只能花费多的时间去“琢磨”。对于我来说,狭义相对论就是这样一个例子。学习的时候,让我有数不清的晚上失眠,在两年前,也亲自教了一遍,但直到现在,这里面的一些概念还是让会让我头疼一会儿。狭义相对论难懂的原因是因为里面的概念违反了直觉,最有名的例子是“同时的相对性”。在日常生活中,几乎无法想象,如果你对你的朋友说“我1年前在重庆爱上了我的女朋友”,另一个在飞船上得家伙大声说“你是一年半前爱上的”,你想你该有多么愤怒。而狭义相对论说这两种说法都对。正是因为违背了直觉,所以当有时思考狭义相对论的问题时,你需要不停的问自己一些愚蠢的问题“这个时间是站台的人的还是火车上人的”。著名物理学家海森堡大概也碰到了这样的麻烦,他说狭义相对论中的物理因为违反直觉而理解起来很费力。

  而最近学习的Windows编程的这套系统是人工的系统,是由很多的微软的技术专家堆砌的系统。所以你需要的是了解他们的一些想法。这些想法当然“不邪恶”,很多时候倒是很繁琐。你需要的是知道他们的一些设计,从而弄懂这个系统如何运作。在这个过程中,常常会碰到一些生僻的名词,这是我劝我的学生要在表述物理问题时尽量避免的,我不会对这些名词像物理学中碰到的一样去努力弄清楚含义,太费事了就跳过去(可能心中也不屑于花太多的时间去弄懂它)。有时候,甚至不懂它的原理,但是会操作了,也就ok了,这对于习惯于物理思维的我来说,确实是一个挑战。

  希望能在几个月后,能够用程序画出一些好看的图线来,我的目的也就达到了。

转载于:https://www.cnblogs.com/fedorayang/archive/2012/04/03/5094206.html

一个物理学家学习Windows编程的感受相关推荐

  1. 有一定基础的 C++ 学习者该如何学习 Windows 编程?

    这篇文章是回答一位知友的提问: 有一定基础是指对大学教材级别的C++知识有了解,然而只停留在黑框程序的编写和阅读上. 手头有一个使用VS2010开发的windows工程想要读懂(这是契机,不是原因), ...

  2. 如何学习Windows编程

    有很多初入门的小朋友跟我说,他们想学"底层"的技术,因为觉得技术含量高,所以想学Windows C++开发,看着调用一个个的参数超级多,调用起来超级麻烦的Windows API,觉 ...

  3. 【程序人生】如何学习Windows编程?

    觉得这篇文章写得很好,对于初学者有启发.因此,转载一下,给更多人看到. 转载至:https://zhuanlan.zhihu.com/p/24773204 有很多初入门的小朋友跟我说,他们想学&quo ...

  4. 我为什么学习Windows编程

    前一段时间在看TCP/IP,在图书馆里面找了不少的书,其中有几本书还是不错的.比如: <Windows网络与通信程序设计(第二版)> 王艳平著 <WinSock网络编程经络> ...

  5. 学习windows编程 day6 之模拟记事本

    //短的函数最好定义为宏 #define BUFFER(x,y) *(y*cxBuffer+x+pBuffer)//取出一个字符//字符消息 //WM_CHAR,WM_DEADCHAR,WM_SYSC ...

  6. 学习Windows编程遇到的问题

    #define WIN32_LEAN_AND_MEAN #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINST ...

  7. 一个不错的windows编程网址

    http://www.zklmc.com/ 含有MFC,C#,web开发资料 转载于:https://www.cnblogs.com/foreverstars/p/3176472.html

  8. windows编程学习——1 关闭窗口不退出

    开始学习windows编程了.书是<windows程序设计>.祝这次能坚持下来吧 研究第一个windows程序 改了好多图标,觉着没意思了 试着把处理WM_DESTRY的部分注释了,想看看 ...

  9. Windows编程课程学习笔记

    一. Windows程序内部运行机制--Windows编程课程学习笔记 二. MFC框架程序分析--Windows编程课程学习笔记 三. 简单绘图--Windows编程课程学习笔记 四. 文本编程-- ...

最新文章

  1. android启动服务的生命周期,android Service启动运行服务 生命周期
  2. 聊聊Elasticsearch的TimedRunnable
  3. HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)
  4. python解析response的json_python:解析requests返回的response(json格式)说明
  5. k8s1.11.0安装、一个master、一个node、查看node名称是ip、node是扩容进来的、带cadvisor监控服务...
  6. photoshop 插件_Photoshop的柔光
  7. PySpark处理数据并图表分析
  8. Word控件Spire.Doc 【文本】教程(14) ;如何用图片替换Word中的文字
  9. js实现小写金额转大写
  10. 学会爬虫不用再收藏了,直接把网站拍照留念
  11. IDES翻译—利用采购订单进行跨公司库存转储
  12. 【杂谈】关于个人档案的机要邮寄
  13. HTML网页设计: 一 HTML的基本结构
  14. 华为与复旦大学合作开发全国首个医学人工智能课程
  15. C语言~~自制-拼图游戏
  16. 10只小白鼠1000支药水找出毒药问题
  17. 首席技术官(ChiefTechnologyOfficer)
  18. 部门新来了个阿里25K出来的,让我见识到了什么是天花板
  19. 推荐100首值得听的英文歌【ZT】
  20. 实战-完整代码答题系统

热门文章

  1. kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
  2. linux mysql操作知识--收藏
  3. python 之 从list中随机抽取元素
  4. 记录之Learning Deep Features for Discriminative Localization阅读
  5. HTML <dfn> 标签的简单介绍
  6. const_cast的使用:添加或去掉const、常量折叠
  7. 等式成立JAVA_java – 找到两个线性等式成立的整数集
  8. fork与操作文件的系统调用问题
  9. 学习记录1-python图片分割transforms方法
  10. NiftyNet开源平台使用