程序员在周末学习的8个实用技术
论你是刚开始接触软件项目开发的新手程序员,还是一个正在寻找拓展技能的经验级软件工程师,都有许多学不完的新技术等待着你去拓展。当然如果你可以在周末学习下面这些实用技术,那就更棒了。学会一下8个技术或许会让你以后有更多的周末休息时间。 熟练掌握版本控制
如果你从来没有使用版本控制的经历,那么也许你现在会处于一种很艰难的境地:无法将代码恢复到上一个版本,或许你只能将你的代码以文件命名的方式进行备份,比如index_17.html,这是多么痛苦的一件事情。 版本控制意味着你可以将你的代码恢复到任意的版本——甚至精确到小时或者分钟。如果你使用过Google Drive,也许会对恢复到上一个版本的功能比较熟悉,对,这就是简单的版本控制原理。 灵活运用文本编辑器 程序员每天都会将大量的时间花在各种文本编辑器上面,你应该根据自身习惯和开发环境的需要,选择一款可以提高工作效率的文本编辑器,并且不断地深入学习它的使用方法。
如果你更喜欢在终端上工作,那么这里推荐使用VIM和Emacs;如果你喜欢使用本地文本编辑器,那么可以尝试一下Sublime Text;如果你喜欢在Mac环境中工作,也可以试试TextMate。 仅仅在文本编辑器上工作是不够的——你应该尝试安装一些插件和扩展,让自己的工作可以更加舒心。 强大的SQL
一个应用软件必须使用文件或者数据库来存储用户的数据,正因为数据库查询快速,并且提供更优的查询结果,我们的应用便更亲睐于数据库。 SQL是一种数据库查询语言,但是仅仅是学习基础的SQL对我们构建大型复杂的应用系统是远远不够的,很多时候我们需要进行多表,甚至是多库的联合查询。 所以,我建议程序员在周末的时候可以加强SQL方面的练习。 神秘的NoSQL NoSQL或者也叫Not Only SQL,它有着和传统的关系数据库不同的数据存储格式,NoSQL数据库更加关注数据库的可用性和水平扩展能力,它也有类似SQL的数据库查询语言。 NoSQL根据不同的数据组织结构有几种不同的类型,尽管像Quora这样的大公司并不使用NoSQL,但是如果你有非常庞大的数据需要处理,那么NoSQL是一种非常棒的选择。 爱上终端
对于一些特定的工作任务来说,使用终端会比使用可视化界面来的方便。举个例子,你需要从成千上万个字符串中查找并替换相应的字符串——想象一下这需要在几秒内完成。 如果你在远程服务器上工作,那么你更加需要擅长使用终端。尽管你可以在远程服务器上使用可视化界面来进行操作,但是使用终端会更快一些。还有更重要的一点原因是——使用终端将更加节省带宽,因为这样仅仅需要传输一些文本信息而已。 对于终端初学者来说,周末有空了可以从简单的文本拷贝开始学习,过一段时间,你会发现自己会爱上终端了。 控制远程服务器 作为一名程序员,你肯定不会将代码局限在本地的,如果开发了一款应用,你肯定会将它展示给全世界的人看。这样你就需要登录远程服务器,并且设置相关信息,以便自己的应用可以在服务器上正确运行。 学会单元测试 另外一个重要的技能就是单元测试,当你在开发一个庞大的项目时,是不可能写完所有的代码后才去测试应用的正确性的。我们最好将代码分割成几个部分,然后对每一个部分进行单元测试。 具体的单元测试方法根据不同编程语言有所区别,但是核心理念是一致的——写一部分代码,测试一部分代码。 学会使用Markdown 我将Markdown放到最后是因为它对你写代码并没有多大关系,但是这对那些习惯在网络上发布信息的同学来说就非常重要。比如说编写README文件,并将其添加到Github项目中。 Markdown是一个将文本转换成HTML的工具,它有自己的语法和标签,这些语法标签经过转换后成为标准的HTML结构,这对有些Web开发者来说有一定的实用价值。