天文學領域都需要哪些計算機技術?
用宇宙學領域以及系裡看到的狀況來報告一下:
1)語言
天文系大部分人沒有受到過正規的計算機訓練,都是半路出家,用的語言主要是:Python,IDL,C/C++,Fortran,Matlab等。老一輩的教授們用Fortran和C;IDL是一個類似Python的語言,因為有許多天文專用的package,所以受到青睞(但是彷彿只有天文學的人在用)。不過近期IDL在Python天文學package越來越猛的形勢下,開始失去優勢。Python越來越廣泛,一方面因為容易上手,一方面因為很多天文的package是用Python寫的了,比如很常用的AstroPy。Matlab也有少數人用,它有強大的代數和畫圖功能。C++適合大的collaboration一起寫,所以我在天文系比較少見到(大家比較獨來獨往),但是在粒子物理用的很多。
基本上,我們被建議需要學兩類語言,一個是比較基礎的,比如Fortran或者C,跑大程序、並行計算用。另外一個是高層次(High-level)語言,比如Python,IDL,Matlab,這些語言不用compile,可以快速地用來分析數據、畫圖、做簡單運算用。當然高層次語言也可以用來做並行運算,但是速度很難上去。
2)觀測VS理論
做觀測和做理論的同學用的軟體是很不一樣的。比如做觀測的有:高能天體物理用NASA HEASARC的軟體,可見波段用NOAO寫的IRAF,宇宙微波背景的用HEALPix。這些基本都需要在你決定研究方向後專門去學一下。
做理論的。。幾乎每個研究組都有自己的程序。成千上萬的程序在業界流通。有的時候一個項目裡面要用數個程序(甚至是用不同語言寫的)。所以基本上沒有辦法學好一個就一了百了,而是要把自己培養成萬金油,拿到新的程序馬上就要能跑。
3)宇宙學對計算機知識的極度渴求
宇宙學在近期從一個幾個人一個組就能獨立做的領域,變成一個大數據、大組織的領域。大部分的宇宙學項目,比如針對宇宙微波背景的剛做完的Planck、十年內要啟動的歐洲ESO的Euclid、美國NASA的WFIRST、美國NSF的LSST,大都是千人級的大組織。未來的數據量也將變得非常龐大,比如LSST每晚的觀測數據量是15TB——目前天文學屆尚無法處理這的大數據。所以天文學越來越多需要計算機領域的幫助。一是處理初試數據的軟體,二是分析數據的程序。
看到其他回應中說「數據挖掘、大數據技術等,抱歉我似乎沒聽說過有人用過」,我不贊同。宇宙學中有許多項目都需要用到大數據,比如Planck的官方論文就用了很多MCMC(馬爾科夫鏈蒙特卡洛),我和同事日常工作中需要用到有數萬核的超級計算機、同時跑數千個任務。我學校也有天文系和計算機系的教授們合作,用機器學習來分析天文學數據。在技術上,也有許多人用到大數據、機器學習。甚至有本專門為天文研究員而出的程序書:《Statistics, Data Mining, and Machine Learning in Astronomy》 作者:Zeljko Ivezic, Andrew Connolly, Jacob VanderPlas, and Alex Gray,網路的附帶教材可以在這裡看到:astroML: Python Datamining for Astronomy
也會時常見到做天文大數據博士生博士後,找不到天文的工作然後跑去google、facebook、華爾街做data scientist的。。導致現在看到data scientist的頭銜,腦海中自動出現「找不到工作的天文系學生」。。不過,工資也是翻了5倍的。。。






※製造航母需要擁有哪些技術?
※平面設計:學習需要掌握哪些軟體?
※平面設計需要學習些什麼?
※平面設計,需要學習哪些知識?
※服裝導購需要掌握哪些技巧?
※UI設計需要什麼樣的美術能力?
※人工智慧——機器學習工程師需要了解的十種演算法
※泡妞,你需要學會的聊天技巧!
※培養諾獎得主需要哪些要素——訪日本科學技術振興機構理事長浜口道成
※想泡到妞,一般需要哪些技能?
※申請英國研究生留學都需要哪些材料呢?
※擁有龐大的部隊需要些哪些計謀?——海賊王篇
※你需要系統地學一次瑜伽
※我們還需要純文學雜誌嗎?
※健身教練需要學習什麼專業的技能,才能掙到更多的錢?
※身為藥學生需要重點掌握哪些醫學方面的知識?
※在這個光棍節,我需要具備哪些技能才能與學術圈談一場為期三年的戀愛?
※別墅大宅裝修設計時,需要考慮哪些配套系統?
※中國工程師創新需要哪些支持,又要克服哪些障礙?