程序员编程物理学本科教育
物理系学生如何提高编程水平?
问题描述
大三,只学过谭浩强的C而且只学到指针,只会用Mathematica一些简单的功能,我知道自己很挫所以打算每周花一两个小时提高一下编程水平,主要是针对自己专业。将来打算出国攻读理论粒子物理方面的研究生(勿喷)。针对我这个方向我该如何提高编程水平呢?谭书剩下的部分有必要学完吗?我报过一个数学与应用数学辅修,跟编程有关的课程有C++,离散数学,数据结构,数值分析(附带教MATLAB),我们自己专业的有计算物理(貌似用Fortran,没学过,不知道到时候怎么样)。不知道哪门课值得选?同学中有人python用得好,并且推荐我学,不知道学起来快不快?总之就是我想问问我该如何针对自己的专业提高自己的编程水平?
- 编程不需要上课
- 如果你想跳 C++ 坑的话,
把 The C++ Programming Language 好好看一遍!!! 把 The C++ Programming Language 好好看一遍!!! 把 The C++ Programming Language 好好看一遍!!!
而且要看最新版。这是能正常使用 C++ 的最低标准。
太多次了,看到网上的「高手」在为一个问题犯难,或者 stackoverflow 里一个人在认真给小白说明,我的第一反应都是「纳尼??TCPPPL 里不是写了么???」 - 如果觉得有什么事在电脑上做起来特别烦,就写个程序解决。
- 没事翻翻 Numerical Recipe 总是没错的,尤其是与线性代数算法有关的部分。
- 除了高性能计算的部分以外,语言的选择不重要,最重要的时候要能用你选择的语言快速写出易懂且可扩展的代码。高性能计算部分基本上没得选,就是 C++. 有一段时间我想折腾 Julia 来着,但是在我经常用的超算上编译失败…… 而且传说这玩意的编译器有很多坑?Rust 我觉得还是要观望,倒是 Haskell 可以折腾折腾。
- Mathematica 是个非常牛逼的语言,绝不仅仅是用来算积分这么简单,但是入门门槛比较高,最好先学一下 Scheme.
- 谭书是什么?能吃么?
- Fortran 是什么?能吃么?
- Matlab 这种定义函数居然需要单独一个文件的丑陋语言,咱们物理系作为一个艺术类专业是不用的。
- …… 不行,再黑下去就没赞了……
评论 11