知乎上有个问题:物理专业自学计算机应该学些什么?

题目大概是说他物理本科大四了,申请去美国读物理博士,但自己对计算机有很大兴趣,为了考虑以后的饭碗,想自学计算机。自己对计算机图形学有兴趣,希望得到一些建议。

回答的人不少,有几个人的回答震撼到我了。


第一个回答:

作者:陈然
链接:https://www.zhihu.com/question/23212279/answer/24061341
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

个人站的角度不同,现在的答案基本都是从图形学的角度建议,我换个角度。

从研究生计算机科学做研究的角度来讲,我认为本科最适合的专业首先是物理,其次是数学,再次才是计算机。数学学的太抽象,抽象层次太高,研究现实问题的人往往处在鄙视链的底端。计算机学的太底层,对于概率论、随机过程、线性代数等学科学的太少,不了解建模分析的那套方法论。而物理学一方面的数学知识足够多,另外一方面主要研究的方法也是对这个世界建模,然后进行观测,这与前沿的机器学习领域做的事情几乎是一样的。至于会不会写代码,其实科研里面要写的代码不多,主要都是在推公式,研究如何设计模型使得其拥有很多良好的性质。代码很多时候写写matlab就可以了。

所以恭喜你,如果你想转行做CS的科研,你有很大的优势。事实上,很多CS领域的大神都是学物理的,比如华人图灵奖得主姚期智,CMU Machine Learning领域大神Alex Smola。

如果你真的励志做CS相关的研究的话,物理PhD的选择最好到CS极好的学校,比如UCB, CMU, MIT, Stanford,一般这些学校都可以辅修Machine Learning的Master, 多修CS相关的课程,都是很好的选择。Coursera上的Machine Learning课程都很入门,如果想进阶,你可以看看CMU 10701(Machine Learning), 10702(Statistical Machine Learning), 10708(Probabilitic Graphic Model) 课程的课件、视频、相关阅读和作业,基本都不需要写代码,主要是数学证明、建模和分析。

当然,如果你想做应用而不是做理论什么的,当我以上没说。


第二个回答:

作者:Milo Yip
链接:https://www.zhihu.com/question/23212279/answer/23940891
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

其实在计算机图形学里有很多与物理相关的课题,例如物理模拟(刚体、柔体、流体等)、基于物理的渲染(光源、材质、媒介等),还有一些涉及物理的跨学科课题,例如生物力学、基于物理的声音渲染、光场摄影等等。简单介绍几本书

有空可以看看最前沿的图形学发展,特别是当中涉及物理部分的

看看那些文献的作者网站,可能会发现不少研究者都有物理背景。

我觉得能做理论物理研究的人,其智商做哪种科学问题也不大吧。而计算机科学之本就是算法,无论是哪一个应用方向都是必须的,建议深入学习。个人不建议浪费时间在API、OS、UI编程上面,不竟这些东西许多人都能做,有研究能力的人可以探索新世界。因为游戏、动画、电影这些娱乐工业,计算机图形学的职位在行业上也有需求。


第三个回答:

作者:徐枭涵
链接:https://www.zhihu.com/question/23212279/answer/27455609
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我是理论物理大二的…给师兄回答这个问题吧。
================================================
当师兄看到很多API繁杂但无从下手,答案是唯一的:多写。
再说说我的建议吧,
掌握一门快速开发语言:强力推荐Python,因为有scipy和numpy存在。可以把这玩意当Matlab用。我做过测试,进行大矩阵乘法numpy的速度比matlab快50%,这二者都比mathematica快20倍…而且python有一个很好的web framework django,结合html css,可以写出不错的网站(比如知乎)如果你是OI的,数据结构神马不用太多虑,直接上计算机图形学吧。
建议可以OpenGL+PhysX(物理引擎)+.NET/Cocoa(win/mac)一起做一个项目,像我做的是一个无人机控制的仿真平台。这个对于学习三这玩意都有效。特别是mvc的构建方式。
另外还有一个很轻巧的构建计算机图形学的方式是webgl,很漂亮。或者直接unity3d(游戏引擎)引擎亦可。
如果你会了html也就是如果你会了javascript,建议入手node-webkit,二十分钟构建一个跨平台桌面应用。对于交互UI我比较倾向于两种,一个是轻量级的html+js的形式,好看简单,一个是unity虚拟现实,我最近做的一个项目就是这两种结合的模式。强力推荐CUDA(GPU计算),物理口必备…想在自己的PC上模拟核聚变CUDA绝对是居家旅行,杀人放火必选。而且CUDA的模型天生是为物理学家设计的。同时需要学点cpp,可以把鄙校丁泽军老师计算物理A书上的习题全部CUDA一遍基本就练习的差不多了
micro.ustc.edu.cnML/DataMining我只看过一些些,这些东西如果自己写算法的话需要用c/cpp如果只是玩玩可以用python+一堆库的方式来搞。主要可能还是数据源吧。嵌入式&单片机,如果不慎入实验物理坑会点单片机嵌入式还是有必要的,入个树莓派玩玩ROS吧。从树莓派+arduino玩的方式入手玩起来很简单无压力,最练手的就是写机器人控制了。这个是从机械折腾到前段的。
树莓派既是典型的嵌入式Arm开发版,优势在于社区庞大。
arduino是一种高度简化后的单片机。比起51等用起来真的简单多了

移动开发:学习学习swift吧。玩玩iOS。。总是觉得Android怪怪的

学习轨迹:
1.熟练使用linux/unix(格式化硬盘一个月内可以生存)
2.选一个自己顺手的IDE(vim/emacs/VS),基本熟练cpp、python(均指一万行代码,可以写写计算物理习题)
3.搭建一个自己的服务器(using aws.amazon.com ec2)
4.写一个桌面app .net/cocoa,(学c#/o-c),在这里折腾OpenGL CUDA等
5.写一个绚烂的个人网站use Django&html5&css3&webgl
6.研究妹子回你短信速度和她对你好感度的关系(使用支持向量机/deep learning)
7.学习CUDA并在你的pc上模拟EAST using MHD model in FEA
(其实能跑出来一个N-S方程出来个卡门涡街就很好了)
8.学习单片机并且控制一架四轴飞行器给那个追了四年没追的女神泼一盆冷水(someone你丫两年以后给我等着)。
可以适当从ROS+树莓派入手,加上一些有意思的硬件比如kinect什么的,就很好玩,推荐学习OpenCV(人脸识别)+讯飞各种接口(语音)。

对了。。。工程控制论,或者什么ML,DataMining的数学比物理口的数学真的是弱爆了。一群不用解偏微分方程的渣渣。

顺便抛我的blog stlover.org(呃最近好像数据库挂了)
就这些差不多了…剩下做点小项目自己也就会了
=====================
操作系统建议看看,就是看看而已。。我大二选了操作系统课最后发现完全没听。
编译原理没有必要,想深入学推荐MIT的计算机结构和解释同时学习LISP


第四个回答:

作者:Joe Physwf
链接:https://www.zhihu.com/question/23212279/answer/102771418
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
如果读完PhD在转计算机,真真是浪费了。计算机对高等物理那些基本不需要,倒是数学是很需要的,但PhD依然是浪费。
那些图形学,虽然涉及到物理,但是最多也是本科就够了,图形学的很多东西都是在投机取巧,那些有颠覆的理论基本上根物理无关,细节的东西都是在拼奇技淫巧。不是不懂物理,而是上帝的高度凡人根本无法企及。你想两面镜子相互反射这种东西,在计算机看来就是无限循环(卡死),但是上帝那里却是realtime的,一点都不卡。
其他很多计算机领域跟物理就更加没有关系了,互联网,大数据,人工智能都没有。如果你对两者都割舍不了的话,那你应该关注计算机基本理论这些东西。你对软硬件结合很感兴趣,但是这些难度不大,而且你一旦了解之后估计很快就失去兴趣了,因为很容易理解掌握。真正难的是计算机物理基础层面的东西,那才是真正软硬结合的地方。半个多世纪之前,贝尔实验室发明了三极管,现在半导体技术已经日渐迟缓了,量子计算机,量子传输这些技术充满想象。当然未来很难说,但发言权在于那些位于基础理论前沿的那些人,很明显你有机会。实用技术有时的确很吸引人,但那些都是细致末节,你穷尽一生改变的只是一枝一叶,并且或早或晚都将坠落。

我的感悟:

第一个回答站在常春藤留学生的视角给出了实用的建议。给我的感觉就是,国外的课程比国内大学的课程领先了太多了,似乎这些课程已经完全成熟和系统化了,而国内还比较杂,很多人还必须去看网络课程来学习。这从一个侧面能看出,国内学生相比国外学生这方面受教育的深度和看问题的视野是有差距的,而且这样网络封闭的话,很不好弥补。

第二个回答罗列了不少书籍,都是物理和游戏、计算等相关的计算机书籍。这类书籍国内也越来越多,不过不得不说的是,大多好的教材,似乎都是外国人写的,中国引入翻译版(书的好坏甚至还要取决于译者的水准)。也就是说,好的教材都是英文的,大家最好学好英文,方便自己掌握知识。这也提醒我们,我们与他们的差距还是很大的。

第三个回答深深震撼到我了。一个大二学生,已经对计算机技术掌握了这么多,真是不简单啊。我感觉他做的事情如果让我去做,没有几年是做不完的。其中他讲到了Python、C#编程,js编程、html、css、javascript(也许他还会java呢),swift,用到了U3D,还会使用SUDA,也玩开源硬件,arm编程,而且非常擅长Python(用Python结合其他框架做了网站,做了GUI编程等)。学习MachineLearning(机器学习)、DataMining(数据挖掘),还会OpenCV、讯飞API。这个答案是答主在2年前回答的,估计现在已经用到了Google、百度的接口(语音接口还是很强大的),做模式识别,可能还有很多我根本没有听过的,也不知道存在的技术。我非常佩服他,

第四个回答比较理性。他简单澄清了物理和计算机的关系,并建议去做最基本的事情。题主感谢了他,而且题主已经走上了计算物理的道路。“我现在业余时间主要关心机器学习方面的东西,因为背后的数学支持挺对我胃口。我自己的科研方向也正是量子计算,我还在尝试涉猎量子计算+机器学习的交叉。”题主这样回答。


我摘下眼镜,停下来想了想。

普通大众忙忙碌碌,做的事情对他们来说可能过于简单了。世界上就是有这么一小部分人,走在人类发展的前列。虽然和大家一样一日三餐,闲了也玩耍逗乐,但静下来的时候,很多人选择看电视打牌睡觉娱乐,而他们选择去钻研他们的兴趣。

上面的只是物理和计算机的话题。其实,无论是摄影,研究昆虫,或者是别的什么,只要是钻进兴趣里了,人生不会太枯燥,追求也就不会太乏味。我不想说谁的生活更有意义,至少,这么些人的其中一些人做的事,会影响很多人。我感觉,他们活着的意义更大一些吧。

转载自:http://blog.csdn.net/cuhkljt/article/details/14501281

之所以想做APM/MWC/海盗,是因为三款飞控都是开源项目,资料基本上官方网址都能找到,包括原理图/PCB、
源代码、驱动等一般能下载到,这也给DIY提供了前提条件。自己做一省钱二还能学到东西,何乐而不为呢。下面是三款
飞控的官方网址,贴出来以备查找:
APM:
http://code.google.com/p/ardupilot-mega/
http://code.google.com/p/arducopter/
http://code.google.com/p/ardurover/
MWC:
http://www.multiwii.com/
http://code.google.com/p/multiwii/
海盗:
http://code.google.com/p/megapirateng/
http://code.google.com/p/ardupilotdev/

wiki上有的我就不多说了,单说自己总结的。三款飞控都是基于arduino系统开发的,最高配置都是mega2560。从软硬件
上讲APM是最复杂的:
1、APM板子是四层板,线宽7mil,间距5mil,这种精度国内的打样费基本在1500以上。而MWC/海盗用两层板就可以搞定。
2、APM用了一堆不太常见的IC。mega32U2:完成USB-UART、PPM编码、失控保护功能。TS5A23157:开关选择。
TXB0104UQFN、PCA9306DC:电平转换。这好像是故意增加板子复杂度,增加调试难度。MWC/海盗的2560和传感器用标准
I2C连接,简单明了,而APM不一样!有的是I2C,有的是SPI,I2C和SPI还加了电平转换芯片,超级麻烦!所以MWC和海盗的
硬件是通用的,用标准的arduino mega2560板子加九轴传感模块就能实现,而APM要复杂很多,与MWC/海盗不通用,想自
己做APM难度也是比较大的。
3、软件上由于APM代码太多,必须用relax版本的arduino IDE才行,这个版本官网上有下载。编译时间也是明显很长。
MWC/海盗没有这个问题。
4、各自特色:海盗是APM衍生出来的,PC端软件也是一样的,都支持地面站,缺点是支持的传感器很有限。MWC有简化版
328p可用,这就衍生出了很多MWC版本的有刷的超微多轴,此外支持的传感器也非常多,用户可以自由选择,缺点是没有
地面站。
5、某宝上卖的几种板子参考价格,搜一下就会发现有些卖的有点坑爹的。
APM2.5,价格500~600,可刷APM
AIOP:价格300~500,可刷MWC/海盗
arduino mega2560开发板+九轴模块:完全国产的板子,价格<200可以搞定。缺点是尺寸较大,排针要自焊。可刷MWC/海
盗。

谷歌的无人机项目,为我们描绘了他的蓝图和梦想。谷歌是想用无人机在全球为每一人提供服务,让人们不必等待太长时间就可以拿到快递。这一构想虽然宏伟,仍然有很多路需要走。其他无人机运输机构的目标跟谷歌不一样,他们仅仅是用来为特定的客户运送货物,甚至有专门的航线。但是,谷歌的目标似乎更远大,也更难,这条路需要走很久。另外,无人机的自主飞行和安全问题,确实是最难解决的问题。最终的结果应该是零人工干预的,只是认为会监管。期待吧。

下文为全文转载,转载自:http://www.cnbeta.com/articles/325947.htm

解密谷歌无人机项目:将再一次改变世界

天空划过一道白光。一位名叫尼尔·帕菲特(Neil Parfitt)的男子站在澳大利亚华威市郊的一个牧场里。一架比海鸥略大的白色的飞行器飞过树梢,径直向帕菲特滑翔过来。它头朝上保持垂直姿势,在离帕 菲特不远的空中开始盘旋,距离地面大约几百英尺。突然,飞行器的腹部分离出一个包裹,但在下落过程中仍然通过一根细线与机身相连。

解密谷歌无人机项目:将再一次改变世界

即将落地前,包裹降落的速度开始放缓,最终轻轻地落在地面上,甚至没有扬起一丝尘土。随后,连接在包裹一端的矩形模块与包裹分离,缓缓收回后,重新固定在机身底部。随后,飞行器的机翼恢复飞行姿势,返回了半英里外的发射台。这时,帕菲特走过去打开了包裹,从里面取出了他刚刚购买的狗粮。

除了这次试飞外,谷歌今年8月中旬还进行了另外30次类似的试飞。这一系列测试共同把谷歌Project Wing秘密项目推向了第一阶段的高潮。这个项目早在两年前就已经在Google X实验室内部启动。

尽管有关该项目的传言早就已经从谷歌内部流传出来,但Project Wing直到最近才正式现身。我花了一周时间与参与该项目的谷歌员工进行了沟通,观看了试飞视频,还采访了很多看好这类项目的业内人士。

综合考虑该公司的其他机器人投资,足以看出谷歌的野心之大。他们已经不再把目标局限于组织全球信息,他们还想组织整个世界。

查看全文

将一种结构看成是一种计算,结构即思维。
把宇宙看成一台计算机,宇宙是如何计算的?它是怎么知道在0重力场中,水有表面张力的情况下,水滴的结构会是完美的球形?
这样问其实似乎是有问题的。它们之间是靠分子引力和化学张力团结在一起的,但这样的一种团结速度未免太快了,宇宙这台计算机运行速度似乎非常快,而且是无限核的,可以同时刻执行不同的计算。也许我们应该向宇宙这台计算机学习,我们是否可以使用物质的自我组织帮我们进行某些计算。比如很多年前的DNA计算机。


查看全文

新闻链接:http://tech.163.com/photoview/5FVH0009/5682.html

第一个是农用无人机。农用无人机是个好项目,很有做头。

(1)农业无人机
简介:这种廉价的农业无人机配备了先进的传感器和图像处理模块,能够对农作物的生长状况进行密切监测,并提高水资源的利用率和虫害管理效率。突破性:配备摄像头、支持遥控操作、售价低于1000美元。主要研究公司(机构):3DRobotics、雅马哈和PrecisionHawk

第二个是智能并网发电。包括利用风能、太阳能等。很有搞头。智能太阳能发电,不错的想法,再智能并网,bingo!

(10)智能并网发电
简介:通过大数据分析和人工智能来对能源使用情况进行精准预测,进而将风能和太阳能等更多的间歇式可再生能源并入到电网之中。突破性:能够准确预测风能和太阳能。主要研究公司(机构):卓越能源公司、通用电气和美国大气研究中心。