- 我是一个线程(修订版)
- 我是一个 Java class
- Javascript:一个屌丝的逆袭
- Java : 一个帝国的诞生
- JSP 一个装配工的没落
- TCP/IP 之 大明王朝邮差
- TCP/IP 之大明内阁
- TCP/IP 之蓟辽督师
- CPU 阿甘
- CPU 阿甘之烦恼
- CPU 阿甘:函数调用的秘密
- 我是一个网卡
- 我是一个路由器
- 我是一个进程
- 我是一块硬盘(上)
- 我是一块硬盘(下)
- 我是一个键盘
- 张大胖的 socket
- 张大胖学递归
- 学习面向对象的令狐冲
- 张大胖学数据库
- 数据库村的旺财和小强
- 小李的数据库之旅(上)
- 小李的数据库之旅(下)
- 漫画:什么是机器学习?
- 那些烦人的同步和互斥问题
- IE 为什么把火狐和 Chrome 给打伤了?
- 对浏览器村的第二次采访
- 节约标兵 IE 的自述
- EMail 诞生记
- Email 诞生记(下)
- Http 历险记(上)
- Http 历险记(下)-- Struts 的秘密
- 动物王国的面向对象
- 冯·诺伊曼计算机的诞生
- Http Server : 一个差生的逆袭
- 张大胖的加法器
- 从 1 加到 100:一道简单的数学题挑战下你的大脑
- 编程语言
- Javascript:一个屌丝的逆袭
- 计算机语言之战
- 我和编程语言的爱恨情仇(上)
- 我和编程语言的爱恨情仇(下)
- Android 为什么选择了 Java
- iOS 为什么选择了 Object-C?
- Basic : 一个老兵的自述
- Node.js : 我只需要一个店小二
- 命令式编程 vs 声明式编程
- 编译还是解释?
- 程序人生
- “架构师"小赵
- 师兄说
- 师姐说
- 小王的架构师之路
- 小李的版本管理系统
- 小超穿越记
- 小李的 Build 之路(上)
- 小李的 Build 之路(下)
- 张大胖改 Bug
- 我的编程之路--大学趣事
- 码农小王的一天
- 小李在外企
- 张大胖的需求估算
- 从厨师到码农
- 聊一聊那些神一样的程序员们(上)
- 聊一聊那些神一样的程序员们(中)
- 聊一聊那些神一样的程序员们(下)
- 谁是互联网之父?
- 一个价值百万的创业教训
- 让自己与众不同 - 提升工作的价值
- 看看你的“易燃性”
- 从无聊的工作中寻找价值
- 什么样的学生适合报考计算机?
- 谈谈程序员的职业方向(上)
- 谈谈程序员的职业方向(中)
- 谈谈程序员的职业方向(下)
- 谈谈培训班的作用
- 码农需要知道的“潜规则”
- 学习编程的加速度
- 码农在工作中的必备能力
- 码农和英语
- 老司机经验
- 假如时光能够倒流, 我会这么学习 Java
- 假如我是计算机系老师
- 学会编程, 而不是学会 Java
- 从增删改查中突围
- 抽象:程序员必备的能力
- 懒就一个字
- 编程的自学方法
- 小王买房记
- 从一道面试题谈谈一线码农应该具备的基本素质
- 想写框架的看过来
- 苹果手机变砖头以后
- 如何快速的学习一门技术?
- 唯一不变的是变化: 谈谈微信应用号
- 什么是企业应用?
- 勿以浮沙筑高台
- 为什么敏捷开发难于成功?
- localhost vs 127.0.0.1
- GitHub/Stackoverflow 找工作时有什么用?
- 动词 or 名词 :这是一个问题
- 如何选择入行语言
- 有时候,沉默是金
- 零 Bug 的代码是怎么炼成的?
- 浮点数为什么不精确?
- 文章错误大全
- Open Source--不要为了开源而开源
- 一不留神,代码就腐化了
- 先做个“键盘侠”, 再来写程序
- 不加断点调试的程序员是好程序员
- 码农必备技能:烂代码的处理之道(上)
- 码农必备技能:烂代码的处理之道(下)
- 学习数据结构有用吗?
- 从现在开始,丰富你的简历
- 那些永不过时的书,你看过几本吗?
- 学好编程必备的一个品质你知道吗?
- 你最爱的 Java
- 搞懂了这几点,你就学会了 Web 编程
- Spring 的本质系列(1) -- 依赖注入
- Spring 本质系列(2)-AOP
- 三层架构和 MVC 那点事儿
- Java 帝国之拨云见日识回调
- 小张的 Duck Typing
- JDBC 的诞生
- JDBC 后传
- 一个不安分的 JDBC 驱动
- Java 帝国之 Java bean (上)
- Java 帝国之 Java bean(下)
- Java 帝国之函数式编程
- Java 帝国之函数式编程(下)
- 关于 Java 初学者需要知道的 10 件事
- JUnit 你不知道的那些事儿
- 圣诞礼物:Java EE 的历史
- Java EE 读书指南
- 给小白的 Java EE 指南
- 给小白的 Java EE 指南(2)
- 给小白的 Java EE 生存指南(3) : XML
- 给小白的 Java EE 生存指南(4) : 一只叫 Tom 的猫
- 给小白的 Java EE 指南(5) : AJAX
- 给小白的 Java EE 生存指南(6) :Java 反射
- 闲聊
- "饿了么"初体验
- 来自大脑的控诉
- 一个高中生是怎么玩自媒体的?
- 尝试 分答
- 到底应不应该上培训班?
- 自学编程中遇到问题怎么办?
- 据说 99%的初级程序员看完后都不迷茫了
- 一行代码引发的“血案”
- 对一个死锁问题的思考
- 通过外包进入名企
- 请开往十年前的今天
- 为什么自学中最好有个师傅指导一下?
- 这个网站值得你花时间投入
- 为什么你无法坚持自学编程?
学习编程的加速度
小王听说测试驱动开发(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 横空出世的时候,立刻就会明白它的本质了, 如果需要学习, 也会轻松很多。
所以不用羡慕别人用了什么热门的、时髦的技术, 学习编程最忌讳的就是朝三暮四,对每个技术都浅尝辄止,那样就像一直坐在驴车上,一直都晃晃悠悠,慢的要死, 相反把基础打好,就相当于在打造汽车,飞机, 甚至有一天你发现像火箭一般蹿升了 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论