By 小穷博士
前言
公欲利其事,必先利其器。对于我们这个课题组,经常需要编程序进行软件开发,因此选择一些趁手的工具是必须的。所以这里我挑选了一些常用的工具软件给大家,请大家在日常工作和科研活动中坚持使用,不断学习,提高自己的业务水平。
这些工具软件大概分为以下类别:Linux操作系统,编程语言,编程环境,UML建模工具,效率工具,写作工具,版本管理工具等。下面开始详细介绍,在介绍每一款工具的时候,我会给出工具软件的具体名称,下载地址,推荐理由和推荐级别。推荐级别一般分为必装,强烈推荐,试用等三个等级。一般来说必装的,是要求大家都要安装并且使用的。
Linux操作系统
这里说Linux操作系统当然不是说编程序只能用Linux或者说Linux是程序员最好的操作系统,尽管我自己是这么认为的。但是大多数人还是认为MacBook才是程序员应该用的计算机。但是显然这个不符合咱们组的组情,毕竟能用的起MacBook的人还是少数。所以,还是说说Linux吧。另外,咱们这个组做的东西无非就是网络计算和计算机视觉,而Linux毫无疑问是最佳平台,所以第一个推荐的就是Linux操作系统。在这一部分我推荐两个系统,分别是Arch Linux和Ubuntu。其中前者是给配置比较低的电脑准备的,后者是给主流电脑准备的。
1 Arch Linux
最近我一直在用Arch Linux,以前我一直以为Arch Linux用起来会很烦,有点像LFS那样,后来实际使用了才发现,Arch Linux使用起来真是太简单了。因为它有wiki.archlinux.org这个强大的知识库在后面支撑的,有什么不懂的,立刻就能找到答案,不但让你会用,还能让你知道为什么这样用。是学习linux的最好的系统。
名称:Arch Linux
下载地址:http://www.archlinux.org
推荐等级:必装
推荐理由:轻量级的Linux,适合绝大多数电脑,具有丰富的知识库(wiki.archlinux.org),运行速度快,支持硬件多,高可定制,适合有志学习Linux的人。
2 Ubuntu
Ubuntu是一款非常成熟的,在业界拥有相对知名度的Linux发行版本,易用性强是它的最大优点,使用者众多,好处是有了什么问题非常容易找到解决办法,而且很多的软件都为Ubuntu专门制作了发行包,而且学术界似乎也比较偏爱Ubuntu,很多机器视觉的算法都是在这个平台上编译运行的。不足之处就是发行版本比较臃肿,也略微耗费些资源,不过这都是在一般计算机硬件配置的承受范围之内。
名称:Ubuntu
下载地址:http://www.ubuntu.com
推荐等级:必装
推荐理由:发行量大,用户多,运行平台广,对初学者友好,图形界面使用方便,各种功能比较齐备。适合初学Linux并且不准备在Linux上太折腾的同学。
编程语言
既然主要业务是编程,那么编程语言这里似乎没有必要推荐了,因为有的时候使用什么编程语言往往不取决于自身好恶而是项目的要求。但是,这里推荐的编程语言跟项目其实没什么关系,因为作为程序员,没事的时候也应该写点程序自娱自乐一下,所以在语言上自己还是有发言权的。而且从科学研究的角度来看,确实有一些语言是必须要掌握的,所以这里列出了几种语言,我认为大家应该掌握,但是不强求。
3 Java
这里推荐安装Java编程环境,不但是因为Java在网络编程和软件工程方面的优势,更重要的是后面推荐的很多工具本身是基于Java的,所以安装一个JDK(或者至少你得装个JRE吧)是很有必要的。
名称:Java Development Kit (Java Runtime Environment)
下载地址:http://java.oracle.com
推荐等级:强烈推荐
推荐理由:非常健全的生态环境,能够胜任从服务器到嵌入式系统的全栈开发,应用范围广,语言对软件工程的支持度高,就业市场好。
替代工具:openJDK,可以直接利用Linux发行版本软件管理工具在线安装,例如: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语言现在还不是很流行,但是应该是网络计算的首选语言,希望从事网络计算方面的同学能够抽时间学习一下。这个语言本身不是很难学,有项目的情况下稍微实践一下,应该能够比较快的掌握。
名称:Go语言
下载地址:http://golangtc.com/
推荐等级:推荐试用
推荐理由:Google出品,可以编译为本地代码,语言本身跨平台(类似C语言),语言本身支持并发且效率高,编码效率高(就是实现同样的功能Go语言所需要敲击键盘的次数最少),适合服务器上程序开发,号称网络时代的C语言。对于Linux操作系统可以直接利用pacman
或者apt-get
进行安装。
编程环境
编程环境就是用来实际进行软件开发的IDE(Integrated Development Environment),一般的语言都有约定俗成的开发环境,不过这里还是列出我推荐的IDE。注意,编程环境是一个很大的话题,而且很多程序员都有自己的编程哲学,所以我的要求是推荐大家使用,但不强求。
6 Eclipse
Eclipse是Java首选开发环境,当然它同时也可以用于其他语言的开发(包括上面提到的Python和GO),所以第一个推荐的,就是它。
名称: Eclipse
下载地址:http://www.eclipse.org
推荐等级:强烈推荐
推荐理由:功能实在是太强大了,没有语言可以形容。略微占用资源。
7 VIM
VIM是Linux上的一款编辑器(其实Win上也有,叫GVIM),这款编辑器我也是无力吐槽,只知道它被称之为神用的编辑器。关于它的推荐,大家可以百度之,爱的爱死,恨的恨死。但是,我要说的是,功能实在是太强大了。与其说是神用的编辑器,不如说是神开发出来的这款编辑器。与此类似的还有Emacs,但光学VIM就已经耗费了我许多的时光,实在是没精力再去折腾Emacs。VIM和Emacs都是神器,它们的信徒门为了争夺第一神器的称号经常在各大论坛掀起一阵阵的血雨腥风。我最早接触的就是VIM,所以我一直坚持着用它。推荐大家也用它,我觉得要相对比较容易入手一些吧。
名称:GVim,VIM
下载地址:http://www.vim.org/
推荐等级:推荐试用
推荐理由:神用的编辑器,通过插件可以扩展无数功能出来,可以定制各种功能,只有想不到,没有做不到。
UML建模工具
这里的软件工程工具主要是建模工具,总体而言我们的代码量比起公司来说要少的多,因此很多的软件工程工具这里就不放进来了,但是建模是必须的,所以这里就放一类软件建模的工具,也就是UML建模工具。
8 Astah Community
Astah Community是Change Version Inc的产品,好像以前不叫这个名字的,不过不用去操心这个问题了,我们只需要知道这是一个UML的建模工具,而且是社区版的(即免费的),当然它有商业版本功能更强,但是我们没钱去买,对于学生它有免费的学生License可以去索取。但我觉得其实社区版已经够用了。商业版我唯一喜欢的功能是能够导出无损的图形格式,这样方便插入到论文里去不会损失精度,否则只能导出PNG格式的图片,而且还有水印。如果大家不知道什么是UML建模工具,我也不能帮助大家,大家自行百度或者有时间另外撰文介绍吧。其实正宗的UML建模工具应该是Rational Rose,但是这个没有免费版,网上虽然有破解版下载,但是作为一个软件从业人员,版权意识一定要有,所以我不用Rose。
名称:Astah Community
下载地址:http://astah.net/editions/community
推荐等级:必装
推荐理由:UML建模工具,经过我多年寻找比较目前比较满意的一个软件,软件基于Java因此必须安装Java运行环境才能执行。
版本控制软件
版本控制对编程人员来说是必不可少的,一定要有。当然版本控制软件很多,这里给大家推荐git。
9 Git
Git可以单机使用,也可以使用服务器,对于科研来说,很多作者会把它的代码放到git服务器上,因此必须要使用git工具将其clone到自己的机器上来才能使用。所以这个工具也是我们组每位同学都必须要会使用的软件。关于Git如何使用,会另外再开辟文章进行说明,大家也可以在网上搜索教程,很多的。
名称:Git
下载地址:被墙,大家自己百度,Linux系统可以直接使用包管理工具在线安装
推荐等级:必装
推荐理由:大家都用,你呢?
效率工具
这里的效率工具主要是指帮助大家理清思绪的工具软件,不包括常见的记事本,日历,待办列表什么的。这里指的主要就是思维导图,这里的软件都是推荐大家试用的。思维导图是利用图形结构的方式,帮助你整理自己的思绪,找出困扰你的线索,或者安排你的任务工作等,任何需要动脑子的地方,都可以考虑用思维导图来进行辅助。
10 Freemind
FreeMind是一款免费的思维导图软件,本身是基于Java的,因此是跨平台的,同时又是开源的,使用也比较方便。但是能够使用的导图不是很多,而且近些年来的版本感觉在自动布局上怪怪的,虽然说不上什么不好,但是感觉使用不是很舒服,但是总体而言还是一款比较优秀的思维辅助软件。
名称:FreeMind
下载地址:(自行百度,SourceForge经常被封或者上不去)
推荐等级:推荐试用
推荐理由:使用方便,添加对象比较顺手,其他一般,主要感觉免费的mind mapping tools 太少了。
11 XMind
XMind是另一款思维导图软件,和FreeMind不同的是,这个软件不是开源的,而且做了封装(里子是Java,然后封装成本地代码),但是也是跨平台,支持主流平台。在Linux系统中往往可以直接利用包管理软件在线安装(例如pacman -S xmind
)。XMind的界面比较漂亮,使用感觉还行,很多功能要收费。
名称:XMind
下载地址:http://www.xmind.net/
推荐等级:推荐试用
推荐理由:使用方便,界面比较好看,其他还行,主要感觉免费的mind mapping tools 太少了。
写作工具
写作工具就是写文章的工具软件了。写文章有两种方式,一种是优雅的写文章,一种是高效的写文章,这里推荐两种风格的写法。当然,你尽可以使用WPS或者MS Office等软件。这里推荐的显然不是这两者。这种是所见即所得(WYSIWYG)的写作软件,适合办公用。要是用于出版等目的的话,显然要差一些。
12 Markdown
MarkDown是那种可以优雅的写作的工具。其实这不算是个软件,应该说是一种规范,有很多软件已经实现了它。但是目前应用最广泛的还是在线写作网站。比方说《简书》和《作业部落》。有一种说法是文科生用简书,理科生用作业部落。非在线的Markdown软件还没找到在各个平台通用的,先凑合用在线版的吧。
名称:简书/作业部落
下载地址:http://www.jianshu.com/, http://www.zybuluo.com
推荐等级:推荐试用
推荐理由:可以快速撰写适合在线看的文章,论文等。熟练应用可以快速让自己的Biger越来越大。
最近发现了另外一个功能比较强大的离线编辑和查看MD文件的程序:Typora 。字体优美,可以输入表格和公式,另外可以输出HTML和PDF格式。
13 Latex
Latex是专业的学术排版工具软件,可以帮你生成漂亮的令人发指的学术论文。另外就是输入公式极其方便。
名称:TexLive
下载地址:http://tug.org/texlive/
推荐等级:推荐试用
推荐理由:科技论文撰写利器。不要嫌大,硬盘那么大,与其浪费着,不如用来装一些有意义的东西。当然能用到的确实就只有那么一点点,如果实在不想全装,它可以选择安装,可以只装XeLatex,我用过,对中文支持比较好。虽然我写中文论文一般不会用Latex(杂志社只认Office)。
结语
这里列出了我认为对大家工作学习有作用的一些软件,希望大家能够去一一试用一下,能够写出这样的软件,创作者必然是牛人,我们在使用他们软件的同时,也能够感受到作者的一些哲学思想,开阔思路和眼界。其它的软件,有些是课题研究中必用的,这里反而就不说了,因为那是不得不用的软件,放在这讲了也没什么意思。就像机械专业的CAD软件,电子专业的Eda软件等。各位同学风华正茂,将来是要开辟一片天地的,因此眼界和思路对你们的作用远大于学习一些具体的技能和知识。计算机科学,信息技术是这个科技时代的潮流,优秀的软件不但能够帮助我们提高效率,还能够让我们更多的了解这个时代的发展和趋势。希望大家一定要抱有开放的头脑,不要辜负这个时代。