无论你是刚开始接触软件项目开发的新手程序员,还是一个正在寻找拓展技能的经验级软件工程师,都有许多学不完的新技术等待着你去拓展。当然如果你可以在周末学习下面这些实用技术,那就更棒了。学会一下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开发者来说有一定的实用价值。

各位程序员,这个周末你准备好了吗?

译文链接:http://www.codeceo.com/article/8-tech-programmer-learn-weekend.html
英文原文:8 Essential Skills Developers Can Learn in a Weekend
翻译作者:码农网 – 小峰

转自:http://www.codeceo.com/article/8-tech-programmer-learn-weekend.html

程序员在周末学习的8个实用技术相关推荐

  1. 大龄程序员的人工智能学习之路

    我大学本科学的并非计算机相关专业,毕业后在外面工作了三年之后,考研重返校园,专业是计算机应用,算是半个科班出身.硕士毕业之后留在了武汉,然后就一直在武汉工作.在二线城市工作有一件比较尴尬的事情,就是跳 ...

  2. 程序员的周末:纯野的一天

    牵强的标题 自己写上这个标题都觉得挺牵强的.首先,我算不上是一个纯粹意义上的程序员了.虽然上了一个多月的班,但对于这份职业到底做什么我都还不是特别的清楚.每天做着一些类似文秘的工作,又类似技术支持的工 ...

  3. 黑马程序员——c语言学习心得——函数传递二维数组

    黑马程序员--c语言学习心得--函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.    变量 ...

  4. 送给 Java 程序员的 Spring 学习指南

    https://www.infoq.cn/article/Ad-8ghcGGCNU572U6oEX 学习 Spring 的基础要求 Spring 官网首页是这么介绍自己的--"Spring: ...

  5. Java开发程序员最值得学习的10大技术

    作为一个开发人员,我们最大的挑战就是保持自己了解新的技术.技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架. 就拿2017年来说,AR.VR.区块链.人工智能等等已经扑面而来了.除了这些离 ...

  6. 如何使用jquery_好程序员web前端学习路线分享jQuery学习技巧

    好程序员web前端学习路线分享jQuery学习技巧,jQuery在web前端学习中是一个必不可少的内容,很多小伙伴都在学习这阶段的时候遇到问题,今天我们就来聊一下jQuery,让我们一起来看一看吧! ...

  7. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

  8. scala语言的底层是java实现的_2020了,每个程序员都该学习的 5 种开发语言

    我曾在某处读到过(可能在<代码大全>,但我不敢确定),程序员应该每年学习一门新的编程语言.但如果做不到,我建议,你至少学习以下 5 种开发语言,以便你在职业生涯有很好的表现. 每个公司都喜 ...

  9. Java程序员最值得学习的10大技术

    程序员们是最具有挑战性的工作,我们最大的挑战就是保持自己了解新的技术.技术变化很快,你大概每两年就会看到一个新版本的编程语言和框架. 就拿2017年来说,AR.VR.区块链.人工智能等等已经扑面而来了 ...

最新文章

  1. STL--自定义类型的排序
  2. java通用库,java数据库访问通用种
  3. Ajax系列之JSON数据格式
  4. Asp.Net 之 通过调用 WScript.Shell 启动本地 exe 程序时产生“ automation服务器不能创建对象 ”的错误...
  5. :未来5-10年,NLP将走向成熟
  6. 所有编程皆为Web编程
  7. 2018年第九届省赛C/C++A组第5题——打印图形
  8. LoadRunner变量到参数的互换
  9. day06 hashlib模块
  10. 算法前戏 递归 二分查找 列表查找
  11. 【python零基础入门学习】Python入门,带你快速学习,Python 环境搭建
  12. mysql 高性能架构_高性能MySQL之架构与历史(1)
  13. 使用计算机过程存在的问题,中小学教师计算机应用过程中存在的问题及解决方法...
  14. lamp源码安装之二进制MySQL5.6.25安装
  15. java web实训项目_通知 | Java、web大前端将在南京开课啦!
  16. 大佬学习python_各位大佬我想学习python,应该买那些书?
  17. cvLoadImage()的调用参数设置
  18. 10月2场CMDN Club活动专题、视频、资源分享
  19. 数据架构选型必读:2021上半年数据库产品技术解析
  20. 定时报警器c语言程序,单片机控制的简易定时报警器电路设计(含电路图和程序)...

热门文章

  1. 珍珠(信息学奥赛一本通-T1384)
  2. 信息学奥赛C++语言:高个子的人数
  3. 信息学奥赛C++语言:满足条件的数累加
  4. 10 FI配置-财务会计-把会计年度变式分配给公司代码
  5. python调用函数_Python 函数中的 4 种参数类型
  6. python简单的小程序_Python简单小程序---名片简易系统
  7. 为什么要使用消息队列
  8. 一个大胖鲸-Docker(1)
  9. Caffe之DataTransformer
  10. OpenVINO InferenceEngine之CNNNet、CNNLayer、Blob介绍