By 小窮博士
前言
公欲利其事,必先利其器。對于我們這個課題組,經常需要編程序進行軟件開發(fā),因此選擇一些趁手的工具是必須的。所以這里我挑選了一些常用的工具軟件給大家,請大家在日常工作和科研活動中堅持使用,不斷學習,提高自己的業(yè)務水平。
這些工具軟件大概分為以下類別:Linux操作系統(tǒng),編程語言,編程環(huán)境,UML建模工具,效率工具,寫作工具,版本管理工具等。下面開始詳細介紹,在介紹每一款工具的時候,我會給出工具軟件的具體名稱,下載地址,推薦理由和推薦級別。推薦級別一般分為必裝,強烈推薦,試用等三個等級。一般來說必裝的,是要求大家都要安裝并且使用的。
Linux操作系統(tǒng)
這里說Linux操作系統(tǒng)當然不是說編程序只能用Linux或者說Linux是程序員最好的操作系統(tǒng),盡管我自己是這么認為的。但是大多數(shù)人還是認為MacBook才是程序員應該用的計算機。但是顯然這個不符合咱們組的組情,畢竟能用的起MacBook的人還是少數(shù)。所以,還是說說Linux吧。另外,咱們這個組做的東西無非就是網絡計算和計算機視覺,而Linux毫無疑問是最佳平臺,所以第一個推薦的就是Linux操作系統(tǒng)。在這一部分我推薦兩個系統(tǒng),分別是Arch Linux和Ubuntu。其中前者是給配置比較低的電腦準備的,后者是給主流電腦準備的。
1 Arch Linux
最近我一直在用Arch Linux,以前我一直以為Arch Linux用起來會很煩,有點像LFS那樣,后來實際使用了才發(fā)現(xiàn),Arch Linux使用起來真是太簡單了。因為它有wiki.archlinux.org這個強大的知識庫在后面支撐的,有什么不懂的,立刻就能找到答案,不但讓你會用,還能讓你知道為什么這樣用。是學習linux的最好的系統(tǒng)。

名稱:Arch Linux
下載地址:http://www.archlinux.org
推薦等級:必裝
推薦理由:輕量級的Linux,適合絕大多數(shù)電腦,具有豐富的知識庫(wiki.archlinux.org),運行速度快,支持硬件多,高可定制,適合有志學習Linux的人。
2 Ubuntu
Ubuntu是一款非常成熟的,在業(yè)界擁有相對知名度的Linux發(fā)行版本,易用性強是它的最大優(yōu)點,使用者眾多,好處是有了什么問題非常容易找到解決辦法,而且很多的軟件都為Ubuntu專門制作了發(fā)行包,而且學術界似乎也比較偏愛Ubuntu,很多機器視覺的算法都是在這個平臺上編譯運行的。不足之處就是發(fā)行版本比較臃腫,也略微耗費些資源,不過這都是在一般計算機硬件配置的承受范圍之內。
名稱:Ubuntu
下載地址:http://www.ubuntu.com
推薦等級:必裝
推薦理由:發(fā)行量大,用戶多,運行平臺廣,對初學者友好,圖形界面使用方便,各種功能比較齊備。適合初學Linux并且不準備在Linux上太折騰的同學。
編程語言
既然主要業(yè)務是編程,那么編程語言這里似乎沒有必要推薦了,因為有的時候使用什么編程語言往往不取決于自身好惡而是項目的要求。但是,這里推薦的編程語言跟項目其實沒什么關系,因為作為程序員,沒事的時候也應該寫點程序自娛自樂一下,所以在語言上自己還是有發(fā)言權的。而且從科學研究的角度來看,確實有一些語言是必須要掌握的,所以這里列出了幾種語言,我認為大家應該掌握,但是不強求。
3 Java
這里推薦安裝Java編程環(huán)境,不但是因為Java在網絡編程和軟件工程方面的優(yōu)勢,更重要的是后面推薦的很多工具本身是基于Java的,所以安裝一個JDK(或者至少你得裝個JRE吧)是很有必要的。
名稱:Java Development Kit (Java Runtime Environment)
下載地址:http://java.oracle.com
推薦等級:強烈推薦
推薦理由:非常健全的生態(tài)環(huán)境,能夠勝任從服務器到嵌入式系統(tǒng)的全棧開發(fā),應用范圍廣,語言對軟件工程的支持度高,就業(yè)市場好。
替代工具:openJDK,可以直接利用Linux發(fā)行版本軟件管理工具在線安裝,例如:pacman -S openjdk或者apt-get install openjdk
4 Python
Python這個大家都知道了吧,絕對是科研利器,必須得裝,不裝不行。建議大家安裝python2,當然你可以2,3都裝,一般情況下也是沒什么問題的。另外在安裝python的同時把pip和其他的python包也裝上,這里就不贅述,有機會另外撰文說明。
名稱:Python 2.7
下載地址:https://www.python.org/ (推薦利用包管理工具在線安裝)
推薦等級:必裝
推薦理由:科研利器,配合openCV是研究計算機視覺的必備套裝。同時也是平時寫寫小程序首選工具,特別是在Bash編程方面還不夠純熟的情況下。另外,跨平臺,支持包眾多,豐富的學習資源等都是使用它的理由。
5 Go語言
Go語言現(xiàn)在還不是很流行,但是應該是網絡計算的首選語言,希望從事網絡計算方面的同學能夠抽時間學習一下。這個語言本身不是很難學,有項目的情況下稍微實踐一下,應該能夠比較快的掌握。
名稱:Go語言
下載地址:http://golangtc.com/
推薦等級:推薦試用
推薦理由:Google出品,可以編譯為本地代碼,語言本身跨平臺(類似C語言),語言本身支持并發(fā)且效率高,編碼效率高(就是實現(xiàn)同樣的功能Go語言所需要敲擊鍵盤的次數(shù)最少),適合服務器上程序開發(fā),號稱網絡時代的C語言。對于Linux操作系統(tǒng)可以直接利用pacman或者apt-get進行安裝。
編程環(huán)境
編程環(huán)境就是用來實際進行軟件開發(fā)的IDE(Integrated Development Environment),一般的語言都有約定俗成的開發(fā)環(huán)境,不過這里還是列出我推薦的IDE。注意,編程環(huán)境是一個很大的話題,而且很多程序員都有自己的編程哲學,所以我的要求是推薦大家使用,但不強求。
6 Eclipse
Eclipse是Java首選開發(fā)環(huán)境,當然它同時也可以用于其他語言的開發(fā)(包括上面提到的Python和GO),所以第一個推薦的,就是它。
名稱: Eclipse
下載地址:http://www.eclipse.org
推薦等級:強烈推薦
推薦理由:功能實在是太強大了,沒有語言可以形容。略微占用資源。
7 VIM
VIM是Linux上的一款編輯器(其實Win上也有,叫GVIM),這款編輯器我也是無力吐槽,只知道它被稱之為神用的編輯器。關于它的推薦,大家可以百度之,愛的愛死,恨的恨死。但是,我要說的是,功能實在是太強大了。與其說是神用的編輯器,不如說是神開發(fā)出來的這款編輯器。與此類似的還有Emacs,但光學VIM就已經耗費了我許多的時光,實在是沒精力再去折騰Emacs。VIM和Emacs都是神器,它們的信徒門為了爭奪第一神器的稱號經常在各大論壇掀起一陣陣的血雨腥風。我最早接觸的就是VIM,所以我一直堅持著用它。推薦大家也用它,我覺得要相對比較容易入手一些吧。
名稱:GVim,VIM
下載地址:http://www.vim.org/
推薦等級:推薦試用
推薦理由:神用的編輯器,通過插件可以擴展無數(shù)功能出來,可以定制各種功能,只有想不到,沒有做不到。
UML建模工具
這里的軟件工程工具主要是建模工具,總體而言我們的代碼量比起公司來說要少的多,因此很多的軟件工程工具這里就不放進來了,但是建模是必須的,所以這里就放一類軟件建模的工具,也就是UML建模工具。
8 Astah Community
Astah Community是Change Version Inc的產品,好像以前不叫這個名字的,不過不用去操心這個問題了,我們只需要知道這是一個UML的建模工具,而且是社區(qū)版的(即免費的),當然它有商業(yè)版本功能更強,但是我們沒錢去買,對于學生它有免費的學生License可以去索取。但我覺得其實社區(qū)版已經夠用了。商業(yè)版我唯一喜歡的功能是能夠導出無損的圖形格式,這樣方便插入到論文里去不會損失精度,否則只能導出PNG格式的圖片,而且還有水印。如果大家不知道什么是UML建模工具,我也不能幫助大家,大家自行百度或者有時間另外撰文介紹吧。其實正宗的UML建模工具應該是Rational Rose,但是這個沒有免費版,網上雖然有破解版下載,但是作為一個軟件從業(yè)人員,版權意識一定要有,所以我不用Rose。
名稱:Astah Community
下載地址:http://astah.net/editions/community
推薦等級:必裝
推薦理由:UML建模工具,經過我多年尋找比較目前比較滿意的一個軟件,軟件基于Java因此必須安裝Java運行環(huán)境才能執(zhí)行。
版本控制軟件
版本控制對編程人員來說是必不可少的,一定要有。當然版本控制軟件很多,這里給大家推薦git。
9 Git
Git可以單機使用,也可以使用服務器,對于科研來說,很多作者會把它的代碼放到git服務器上,因此必須要使用git工具將其clone到自己的機器上來才能使用。所以這個工具也是我們組每位同學都必須要會使用的軟件。關于Git如何使用,會另外再開辟文章進行說明,大家也可以在網上搜索教程,很多的。
名稱:Git
下載地址:被墻,大家自己百度,Linux系統(tǒng)可以直接使用包管理工具在線安裝
推薦等級:必裝
推薦理由:大家都用,你呢?
效率工具
這里的效率工具主要是指幫助大家理清思緒的工具軟件,不包括常見的記事本,日歷,待辦列表什么的。這里指的主要就是思維導圖,這里的軟件都是推薦大家試用的。思維導圖是利用圖形結構的方式,幫助你整理自己的思緒,找出困擾你的線索,或者安排你的任務工作等,任何需要動腦子的地方,都可以考慮用思維導圖來進行輔助。
10 Freemind
FreeMind是一款免費的思維導圖軟件,本身是基于Java的,因此是跨平臺的,同時又是開源的,使用也比較方便。但是能夠使用的導圖不是很多,而且近些年來的版本感覺在自動布局上怪怪的,雖然說不上什么不好,但是感覺使用不是很舒服,但是總體而言還是一款比較優(yōu)秀的思維輔助軟件。
名稱:FreeMind
下載地址:(自行百度,SourceForge經常被封或者上不去)
推薦等級:推薦試用
推薦理由:使用方便,添加對象比較順手,其他一般,主要感覺免費的mind mapping tools 太少了。
11 XMind
XMind是另一款思維導圖軟件,和FreeMind不同的是,這個軟件不是開源的,而且做了封裝(里子是Java,然后封裝成本地代碼),但是也是跨平臺,支持主流平臺。在Linux系統(tǒng)中往往可以直接利用包管理軟件在線安裝(例如pacman -S xmind)。XMind的界面比較漂亮,使用感覺還行,很多功能要收費。
名稱:XMind
下載地址:http://www.xmind.net/
推薦等級:推薦試用
推薦理由:使用方便,界面比較好看,其他還行,主要感覺免費的mind mapping tools 太少了。
寫作工具
寫作工具就是寫文章的工具軟件了。寫文章有兩種方式,一種是優(yōu)雅的寫文章,一種是高效的寫文章,這里推薦兩種風格的寫法。當然,你盡可以使用WPS或者MS Office等軟件。這里推薦的顯然不是這兩者。這種是所見即所得(WYSIWYG)的寫作軟件,適合辦公用。要是用于出版等目的的話,顯然要差一些。
12 Markdown
MarkDown是那種可以優(yōu)雅的寫作的工具。其實這不算是個軟件,應該說是一種規(guī)范,有很多軟件已經實現(xiàn)了它。但是目前應用最廣泛的還是在線寫作網站。比方說《簡書》和《作業(yè)部落》。有一種說法是文科生用簡書,理科生用作業(yè)部落。非在線的Markdown軟件還沒找到在各個平臺通用的,先湊合用在線版的吧。
名稱:簡書/作業(yè)部落
下載地址:http://www.itdecent.cn/, http://www.zybuluo.com
推薦等級:推薦試用
推薦理由:可以快速撰寫適合在線看的文章,論文等。熟練應用可以快速讓自己的Biger越來越大。
最近發(fā)現(xiàn)了另外一個功能比較強大的離線編輯和查看MD文件的程序:Typora 。字體優(yōu)美,可以輸入表格和公式,另外可以輸出HTML和PDF格式。
13 Latex
Latex是專業(yè)的學術排版工具軟件,可以幫你生成漂亮的令人發(fā)指的學術論文。另外就是輸入公式極其方便。
名稱:TexLive
下載地址:http://tug.org/texlive/
推薦等級:推薦試用
推薦理由:科技論文撰寫利器。不要嫌大,硬盤那么大,與其浪費著,不如用來裝一些有意義的東西。當然能用到的確實就只有那么一點點,如果實在不想全裝,它可以選擇安裝,可以只裝XeLatex,我用過,對中文支持比較好。雖然我寫中文論文一般不會用Latex(雜志社只認Office)。
結語
這里列出了我認為對大家工作學習有作用的一些軟件,希望大家能夠去一一試用一下,能夠寫出這樣的軟件,創(chuàng)作者必然是牛人,我們在使用他們軟件的同時,也能夠感受到作者的一些哲學思想,開闊思路和眼界。其它的軟件,有些是課題研究中必用的,這里反而就不說了,因為那是不得不用的軟件,放在這講了也沒什么意思。就像機械專業(yè)的CAD軟件,電子專業(yè)的Eda軟件等。各位同學風華正茂,將來是要開辟一片天地的,因此眼界和思路對你們的作用遠大于學習一些具體的技能和知識。計算機科學,信息技術是這個科技時代的潮流,優(yōu)秀的軟件不但能夠幫助我們提高效率,還能夠讓我們更多的了解這個時代的發(fā)展和趨勢。希望大家一定要抱有開放的頭腦,不要辜負這個時代。