工具、课程与学习资料

这些是我整理的为一般性的研究工作做准备的一些资料和工具。大部分都可以从网上下载(docin, doc88, iask文库之类的地方,当然还有Google)。

  • General discussion of Scientific Investigation and Scientific Thinking: The Art of Scientific Investigation by W.I.B. Beveridge, Learning, Creating and Using Knowledge by J.D. Novak.
  • LaTeX (typesetting): The Not So Short Introduction to LATEX2ε, a sample file or a journal specific template, google latex symbols when needed.
  • gnuplot (figures): gnuplot in action, gnuplot manual, gnuplot not so frequently asked questions.
  • jaxodraw (Feynman diagram): jaxodraw official website.
  • Linux shell (A series of Linux commands in a file to save time): Linux Shell Scripting Tutorial v1.05r3 A Beginner’s handbook (http://www.freeos.com/guides/lsst/index.html) .
  • C:
    1. Find a good textbook and a good tutorial on C programming: Programming in C By Stephen G. Kochan, C by Examples by Greg M. Perry, C in 21 days by Aitken and Jones, The C Programming Language by K&R, http://en.wikibooks.org/wiki/C_Programming, http://www.cprogramming.com/tutorial/c-tutorial.html .
    2. First find a compiler (gcc), compile from the command line.
    3. Learn how to compile and run a basic program (makefile), such as printing “Hello World” to the screen and exit.
    4. Learn about variable types, such as the difference between char, int, float, double, etc.
    5. Learn about the concept of variables, arrays and functions.
    6. Learn pointers, dynamic memory allocation.
    7. Learn conditional statements and loops, such as the “if”, “switch” and “for” statements. Also learn the continue and break statements.
    8. Learn some basic standard library functions, but not too much.
    9. Start with small programs, however meanwhile constantly think about one much bigger problem on your mind, say the task you want to accomplish in the beginning when you notice that you need C and start to work on that problem (via for example, first decomposing the big problem into many small ones) as soon as possible.
    10. Learn key steps about debugging (gdb).
    11. Learn a little bit about programming style: Notes on Coding Style for C Programming, Writing Bug-Free C Code.
    12. Learn data structures and a little bit on algorithms, linked list, graph, tree.
    13. Learn a little bit of code profiling (code optimization): gprof, http://www.ibm.com/developerworks/library/l-gnuprof.html .
  • Python: 转闫小勇(@yanxy)整理的资料:Python精要参考(第二版)——iask上有,100多页,保证几天学会Python基本编程:)Networkx入门笔记——我博客上有: here
    Numpy 1.5 Beginner’s guide——iask上有,200多页,看前三章一般就够了,推荐!
    用python做科学计算——在线版:http://hyry.dip.jp:8000/pydoc/index.html,可以看看里边的numpy和matplotlib部分,其他不看也罢。
    个人建议:学编程,关键是动手写。看书看不会,越写越熟练!
  • R: http://www.ling.upenn.edu/~joseff/rstudy/index.html,Introductory Statistics with R by Peter Dalgaard,The Art of R Programming: A Tour of Statistical Software Design by Norman Matloff, The R Book by Michael J. Crawley。
  • sage: http://www.sagemath.org/doc/tutorial/index.html,SAGE For Newbies by Ted Kosan,Sage Beginner’s Guide by Craig Finch。
  • Network Analysis and related packages: An Introduction to Networks by Newman, Our own review paper and several papers from others (see documents from the complexity group on this website), NetworkX, Pajek, UCINET, SNAP: Stanford Network Analysis Platform, igraph, Network Workbench.
  • Monte Carlo and Monte Carlo in statistical physics:
  • Linear Algebra System (BLAS, Lapack, Petsc, Slepc): official websites, examples and manual
  • General algorithms (numerical diffrentiation, integration, the Runge-Kutta method, root finding etc): gsl and gsl manual, Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, The Algorithm Design Manual by Steven S. Skiena。
  • Parallel programming (MPI, just some general priciples): “Parallel Programming in C with MPI and OpenMP” by Quinn, Petsc, Slepc manual and examples
  • Physics, Math and Economics:
    1. Classical Mechanics: Feynman’s Lecture on Classical Mechanics,力学概论by方励之,Mechanics by Landau;Calculus required.
    2. Quantum Mechanics: Feynman’s Lecture on Quantum Mechanics, Principles of quantum mechanics by R. Shankar, Modern Quantum Mechanics by J.J. Sakurai,高等量子力学by喀兴林,Quantum Mechanics by L. Ballentine;Classical Mechanics, Linear Algebra, Probability Theory required。
    3. Statistical Physics: 量子统计物理学by杨展如,Statistical Mechanics by D.A. Mcquarrie, Statistical Physics by Leo P. Kadanoff, A Modern Course in Statistical Physics by L. E. Reichl, Equilibrium Statistical Physics by Michael Plischke and Birger Bergersen, Introduction to Modern Statistical Mechanics by David Chandler;Classical Mechanics, Quantum Mechanics, Probability Theory, Stochastic Process required.
    4. Quantum Field Theory: Quantum Field Theory: From Operators to Path Integrals by Kerson Huang,Many-Particle Physics by Gerald D. Mahan,An Introduction to Quantum Field Theory by Peskin & Schroeder; Classical Mechanics, Quantum Mechanics, Statistical Mechanics required, Group Theory, Functional Analysis can be helpful。
    5. Non-linear Dynamics: Invitation to dynamical systems by Edward R. Scheinerman, Chaos: Making a New Science by James Clark(译作《混沌学传奇》或者《混沌:开创新科学》) 。
    6. Linear Algebra: 线性代数by居余马,线性代数与矩阵论by许以超,Algebra by M. Artin
    7. Calculus: Calculus Early Transcendentals by James Stewart,简明微积分 by 龚升,Principles of Mathematical Analysis by Rudin
    8. Probability Theory: 概率论导引 by A·H·柯尔莫戈洛夫,概率论引论by汪仁官,概率论by何书元,A course in Probability Theory by Kai Lai Chung
    9. Statistics: Statistics by D. Freedman, 有中文版
    10. Fokker-Planck equation, Master equation etc. in Stochastic Process: Fokker-Planck Equation by H. Risken
    11. Game Theory: Games of Strategy by Dixit etal, 演化博弈论 by 威布尔
    12. Microeconomics:
    13. Mathematical Modelling (the idea of searching and presenting phenomena by their natural math structures): A first course in mathematical modeling by Frank R. Giordano
    14. Group Theory (to have a better understanding of math, also helpful in understanding Quantum Mechanics, Quantum Field Theory): 熊全淹的《近世代数》, Representations of Compact Lie Groups by T. Bröcker and T.tom Dieck
    15. Functional Analysis (essential for understanding properly Quantum Mechanics and Quantum Field Theory):
    16. Differential Geometry (to have a better understanding of math, also important in learning General Relativity): 微分几何与广义相对论入门by梁灿斌,尤其是各种附录要仔细看,非常有价值

《工具、课程与学习资料》有2个想法

  1. 重新整理Python部分资源:
    Python精要参考(第二版)——iask上有,100多页,保证几天学会Python基本编程:)
    Networkx入门笔记——我博客上有: here
    Numpy 1.5 Beginner’s guide——iask上有,200多页,看前三章一般就够了,推荐!
    用python做科学计算——在线版:http://hyry.dip.jp:8000/pydoc/index.html,可以看看里边的numpy和matplotlib部分,其他不看也罢。
    个人建议:学编程,关键是动手写。看书看不会,越写越熟练!

发表评论

电子邮件地址不会被公开。 必填项已用*标注