学习编程的加速度

小王听说测试驱动开发(Test Driven Development,简称TDD) 非常火爆,作为一个热爱新技术的程序员, 肯定得学一下。

他先是找到了TDD的经典书籍, 也就是Kent Beck写的《测试驱动开发》, 仔细看了一遍,他很快发现这本书虽然阐明了TDD的原理和实践, 但是举的例子实在是太简单了, 和日常的工作相距太远,很难体会到TDD的精髓。

要是有一本书用TDD的方式讲解Web系统开发就好了,  小王去找师傅求助。 

师傅拿出一本书说: “这本书里讲的就是TDD Web网站的例子, 一定要好好看看啊”

小王一看封面:《Python Web开发 --测试驱动方法》 , 心里立刻凉了半截: “这是Python, 我只会Java编程, 不一定能看懂啊。”

师傅说:  “不要担心, 这本书涉及到的技术在我们的Java 项目中也有使用, 只是用另外一种语言描述而已, 你看起来会很熟悉的。”

小王将信将疑,晚上回到家, 翻开书来先看了几页,马上就发现了熟悉的东西:  嘿, 书中要用Git来管理代码, 这个我会, 完全没有压力。

还有为了使用测试驱动开发 ,要用到Selenium 来做功能测试, 这个小王很早就搞过了, 就是模拟一个人在浏览器中的操作, 例如点击,输入文字 等来测试,只不过之前小王用的是Javascript 版本的, 现在需要熟悉一下Selenium 在Python中的表示:

Python语法看起来还是挺直观的, 和之前自己学过的javascript版本的Selenium非常相似。

为了做单元测试, 书里还用到了Python的unittest 模块, 这长的和Java 的JUnit很像:

公众号“码农翻身”注: 这个例子来源于《Python Web开发 测试驱动方法》一书

小王想:这个Python的单元测试的基本结构和Java 的JUnit很像, 都用setUp去做一些初始化工作, 用tearDown去做清除工作。测试也都以testXXXX开头。

但是这个 self 是什么鬼? 看样子应该和java 中的 this 类似, 为什么每个方法上都得加上 self 作为参数, 实在是太丑陋了!

小王觉得难于忍受, 但是也没有办法,只能硬着头皮看下去。

既然是开发Web应用, 免不了要用一个Web框架, Python世界就是著名的Django, 小王看了书中的介绍,也是一个MVC框架, 虽然和java世界的Struts, SpringMVC不同,  但感觉就是熟悉的陌生人。 

书中还用到了Jenkins, 不就是一个持续集成的框架嘛, 在项目中已经用过了,自己还写过不少脚本呢。

这么简单了翻了翻, 小王找到了熟悉的感觉,自信也慢慢的来了:  看起来是一门新语言, 其实很多基本的思想、原理和工具都是相通的。  

所以读起这本书来也没什么难的,  只需要把重点放到如何用TDD来做驱动开发就行了。

不光学习了TDD,还能顺便学习下Python, 确实不错。

讲这么一个小故事, 主要想说明一个程序员在工作中用到的基本的技术:单元测试, 功能测试 , 源码管理, 持续集成, MVC框架 等等,刚开始的时候需要认真的一点点的学,确实比较慢, 但是学的越多, 站的就越高,眼界就越宽,在学习编程的道路上好像有了加速度,越跑越快。最后发现即使面对一门新语言,也能轻松应对了。 

这还只是在技能层面, 如果掌握了一些基本的思想和原理, 那对于新出现的技术也能很快理解,迅速的上手。 

例如在Java里搞明白了异步调用的原理和Java 服务器端一个线程对应一个请求的弊端,  那当Node.js横空出世的时候,立刻就会明白它的本质了, 如果需要学习, 也会轻松很多。

所以不用羡慕别人用了什么热门的、时髦的技术,学习编程最忌讳的就是朝三暮四,对每个技术都浅尝辄止,那样就像一直坐在驴车上,一直都晃晃悠悠,慢的要死, 相反把基础打好,就相当于在打造汽车,飞机, 甚至有一天你发现像火箭一般蹿升了。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值