shuifu 写了:科学爱好者 写了:Hello,我今天正式注册了Ubuntu中文论坛。我装Linux目的很明确:学编程,在Linux上面跑FORTRAN、Mathematica、IDL、Python、LaTeX、IRAF之类的东西,我可能需要好几年来学这些东西,因为还要花大量时间学数学物理,还有天煞的英语!之前我一直对编程不感兴趣,C语言课也没好好上,学了几个月C语言和没学差不多。现在意识到编程的重要性了,而且听说天文学家一般用Linux或者Mac OS来搞计算,而非Windows,所以就决定用Linux了(我感觉Mac OS很花哨,全图形界面,不适合科学工作)。
想掌握FORTRAN、Mathematica、IDL、Python、LaTeX、IRAF之类的东西,要不要学习C语言或者其他高级语言?FORTRAN本身就是一种高级语言,直接学FORTRAN不就行了吗?学习这些东西要不要深入研究UNIX的Shell?我只知道上面标示蓝色的那些软件、编程语言需要学,却不知道对Linux本身的原理要掌握多少。之前我也曾考虑过学BSD,但是据说UNIX不适合台式机。
【爱因斯坦】不会编程
【霍金】不知道会不会,可以确定的是他从来没有编过程序。
【尼古拉·特斯拉】不会编程
【李政道】不会编程
【杨振宁】不会编程
【居里夫人】不会编程
【奥本海默】不会编程
【薛定谔】不会编程
【。。。。。】不会编程
物理学家不是程序员不一定要会编程,会编程的不一定就是物理学家。
楼主到底是要做物理学家还是程序员?劝楼主首先确定自己的目标,然后再做其他。
您觉得这个回答,您满意了吗?
我觉得吧,shuifu所言“物理学家不是程序员不一定要会编程,会编程的不一定就是物理学家”是只说对了后一半,会编程的可能是数学家、生物学家、化学家、政府领导、技术工人,甚至是诗人、画家,老年人、中年人、大学生、甚至是少年儿童,都有可能在电脑上编一段程序。一言以毕之,编程不是程序员的专利。
但是您所说前一半值得商榷啊:在您所述薛定谔及其之前的时代,没有计算机或者计算机不普及,物理学家做研究无外乎两种路线:理论分析(比如相对论的提出)和实验研究(比如光电效应),以及两者的结合。理论分析是在原有理论的基础上遇到新的实验现象和观察事实,创立新的假说或修正原有理论从而突破原来的框架而达到新的境界;这新的假说或修正理论如果不仅解释了已有的现象并能预言新的观察,则在一定程度上确立了新的理论地位。反之,则需要另辟出路。这就是那个时代物理学也是大多数科学领域的状况。爱因斯坦和编程,基本上不搭边。
但是时间演进到今天,计算机已经深刻的影响了科学研究的状况。作为科学计算的工具,计算机代替人工手算和算盘,大大加快了计算的速度和精度;编程计算如此发达,以至于科学计算逐渐衍生出被称为数值模拟或者叫做仿真的技术——并确立为实验观察和理论分析之外的第三条途径!在当今科学研究领域,计算机不仅仅是“用来检索文献、制作PPT和撰写论文”,那是一些非科学领域和脱离科研第一线的资深科学家和研究人员的观点。事实上,计算机在实验方案的设计和优化、实验数据的采集、处理和可视化,在理论模型和试验模型的求解、验证和修正……在科学研究的一切环节,都大显身手,而这其中就有非常多的工作是需要编程实现的。我们都有一个基本的认识:一个称职的年青科技工作者,一定同时是一个不赖的程序员。在有的领域,可以说,编程是科学家的主要工作!我是搞过程控制工程的,我的教研室还有搞计算流体力学和数值传热学的,有搞管道振动与噪声分析的,有搞压力容器腐蚀防护,办公室隔壁还有化学合成与分子组装的,大家除了做实验,大部分时间都在编程!编程,编程,又编程!我一个师兄2000年的时候买当时最高档的PIII机器(花了老板的血汗啊),用VC模拟我国沙尘暴的形成和演化机制,coding?debuging?那都是辛苦到半夜没人知道,我们知道是:每个算例都是回车之后等待一个月才出的结果,还经常运行到中间发现苗头不对,停止计算,半个多月的辛苦就付诸Ctrl+Z了。现在计算机发达了,经费也充足了,商用PC机、工业控制计算机、计算机网络、计算机集群、超级并行计算机、虚拟化、网格计算还有什么云计算,哦,或许将来还有框计算,搞的眼花缭乱。可是,在我们眼里,它就是程序的运行环境,我们要解决什么规模的问题,自然会选择什么规模的计算平台。卑之无甚高论!