学编程,你不能学会了游泳再下水
2017-08-22 14:22
267 查看
我一直担任着公司游泳协会的教练。主要负责教会员学习蛙泳和自由泳。夏天要到了,最近收到了一些新会员学游泳的咨询。
今年的新会员比较特殊,很多压根不会游泳但说起游泳的要领都是如数家珍,对蛙泳腿的“收翻蹬夹”四要领,自由泳的最优划水线路这些知识的了解程度甚至超过很多老会员。也许无数个无聊的夜晚,他们通过网络学习了整套的教学视频,也曾在床垫上练习过多次基础动作,唯一的问题就是没有勇气下水试试。
我总开玩笑对他们说:“难道你们要等到在床垫上学会了游泳再下水吗?”
这些人实在是匪夷所思,但他们却活生生地出现在我身边,IT怪咖的思维方式有时候就是这么奇葩。
不过,这件事让我联想到了很多简书的朋友问我学习编程有什么捷径。我总说最好的捷径就是多敲代码。这就好像学游泳最好的捷径就是下水去游。其中的各种好处也只有亲身体会过的人才能了解。总结一下主要有四个功效。
后来有了电脑,我第一次把自己写在纸上的代码敲在计算机上运行的时候,那感觉变得完全不一样了。虽然我在教科书里已经见过Turbo C那个丑丑的黑框无数次了,但当它出现在我眼前的显示器上的一刹那我还是激动得不行。那种感觉不能简单地用一个“神奇”来形容,它充满着神秘感,让我一下拥有了好奇心想要探索下去。
有了这份动力,对我而言学习C语言不再是痛苦而是享受。每次上机练习的时候我都感觉自己状态特别好。之前记不住的关键字敲两遍就自然记住了。自己做过的每一个练习被深深地烙在了脑海里,想忘也忘不掉。仔细想想,敲代码与阅读教材最大的不同就是它是以试错为基础的。在你不断地输入调试的过程中,你所有的精力都被用到了你最容易出错的地方,因此这样的学习特别有效。
也许最终你花了半个小时的时间终于发现是有个变量没有初始化导致的错误。成功运行之后你真想说脏话,但这半个小时让你这辈子都不会再忘记变量要先初始化。
有时候编译器告诉你代码编译成功,你很开心。可是运行的时候却弹出了错误信息。一堆你根本看不懂得提示信息。你又郁闷了。你盯着IDE指出的错误位置发呆,心想它究竟又在闹什么脾气。最后实在想不到,你只能求助老师,结果是你的数组访问越界了。从此你学会了要规范地使用for语句的条件控制。
这些就是上机练习的意义。
这个时候,你该发挥IDE的优势调试你的代码了。最常用的方法就是通过打断点、单步调试的办法跟着代码的逻辑一步一步走,过程中要监视着各个变量是如何变化的。这样,你就会在某一次循环中突然发现原来你有个环节没有考虑周全。
不断地这样练习会让你的逻辑思维能力越来越好,而这个恰恰是编程能力最重要的组成部分。
工作多年的程序员们每次提交代码的瞬间都是喜悦的,这一点从他们的表情和话语中就能感受得淋漓尽致。如果说什么让这些程序员们对繁重的编码工作欲罢不能的话,那一定是这些星星点点来之不易的成功的喜悦。
程序员们心中最大的优越感就是觉得自己的工作是在改变世界。我想,改变世界的成就感足以让任何人有毅力完成繁重而枯燥的编程学习。不过你要习惯从现在的上机练习开始寻找这份成就感。
转载:http://www.jianshu.com/p/d1b0c6813b3d
今年的新会员比较特殊,很多压根不会游泳但说起游泳的要领都是如数家珍,对蛙泳腿的“收翻蹬夹”四要领,自由泳的最优划水线路这些知识的了解程度甚至超过很多老会员。也许无数个无聊的夜晚,他们通过网络学习了整套的教学视频,也曾在床垫上练习过多次基础动作,唯一的问题就是没有勇气下水试试。
我总开玩笑对他们说:“难道你们要等到在床垫上学会了游泳再下水吗?”
这些人实在是匪夷所思,但他们却活生生地出现在我身边,IT怪咖的思维方式有时候就是这么奇葩。
不过,这件事让我联想到了很多简书的朋友问我学习编程有什么捷径。我总说最好的捷径就是多敲代码。这就好像学游泳最好的捷径就是下水去游。其中的各种好处也只有亲身体会过的人才能了解。总结一下主要有四个功效。
1. 在敲代码中记忆
我本人刚学C语言的时候,自己还没有电脑。由于是利用寒假自学,也没有实验室的机器可以用。你能想象我当时有多痛苦。死记硬背32个关键字都让我颇费了一番功夫。在没有计算机的情况下学编程和学马经差别不大,除了死记硬背做选择填空题之外没有什么太好的方法,我一度有了放弃的打算,因为完全没有乐趣可言。后来有了电脑,我第一次把自己写在纸上的代码敲在计算机上运行的时候,那感觉变得完全不一样了。虽然我在教科书里已经见过Turbo C那个丑丑的黑框无数次了,但当它出现在我眼前的显示器上的一刹那我还是激动得不行。那种感觉不能简单地用一个“神奇”来形容,它充满着神秘感,让我一下拥有了好奇心想要探索下去。
有了这份动力,对我而言学习C语言不再是痛苦而是享受。每次上机练习的时候我都感觉自己状态特别好。之前记不住的关键字敲两遍就自然记住了。自己做过的每一个练习被深深地烙在了脑海里,想忘也忘不掉。仔细想想,敲代码与阅读教材最大的不同就是它是以试错为基础的。在你不断地输入调试的过程中,你所有的精力都被用到了你最容易出错的地方,因此这样的学习特别有效。
2. 让IDE帮你检查代码
为什么试错能提高学习效率呢?很多同学有这样的精力,信心满满地输入了一段代码,觉得肯定不会有任何问题,结果IDE告诉编译失败。最郁闷的是报错信息还看不懂,你很抓狂。这时候你能做的就是用自己仅有的知识进行排查。是不是什么地方少了个分号?是不是大括号没有匹配?是不是关键字写错了?是不是头文件没有包含?是不是...?也许最终你花了半个小时的时间终于发现是有个变量没有初始化导致的错误。成功运行之后你真想说脏话,但这半个小时让你这辈子都不会再忘记变量要先初始化。
有时候编译器告诉你代码编译成功,你很开心。可是运行的时候却弹出了错误信息。一堆你根本看不懂得提示信息。你又郁闷了。你盯着IDE指出的错误位置发呆,心想它究竟又在闹什么脾气。最后实在想不到,你只能求助老师,结果是你的数组访问越界了。从此你学会了要规范地使用for语句的条件控制。
这些就是上机练习的意义。
3. 在调试中培养逻辑性思维
最难的还不是这些。有时候你的代码能够成功运行,没有任何问题。当你刚舒一口气的时候,突然发现结果并不是你想要的。上机练习时常听到这样的自言自语:“怎么是3,应该是5呀...”。这个时候,你该发挥IDE的优势调试你的代码了。最常用的方法就是通过打断点、单步调试的办法跟着代码的逻辑一步一步走,过程中要监视着各个变量是如何变化的。这样,你就会在某一次循环中突然发现原来你有个环节没有考虑周全。
不断地这样练习会让你的逻辑思维能力越来越好,而这个恰恰是编程能力最重要的组成部分。
4. 成就感就是动力
这些过程是痛苦的,很多人都倒在了这条痛苦的路上。但正因为过程痛苦,成功后才格外的喜悦。每当看到自己千辛万苦调试的程序成功地显示出正确的结果,你一定想大声欢呼出来。工作多年的程序员们每次提交代码的瞬间都是喜悦的,这一点从他们的表情和话语中就能感受得淋漓尽致。如果说什么让这些程序员们对繁重的编码工作欲罢不能的话,那一定是这些星星点点来之不易的成功的喜悦。
程序员们心中最大的优越感就是觉得自己的工作是在改变世界。我想,改变世界的成就感足以让任何人有毅力完成繁重而枯燥的编程学习。不过你要习惯从现在的上机练习开始寻找这份成就感。
5. 最后
不要再纠结于教程上的某一个小小的知识点,也许它并不影响你掌握一门能够改变世界的软件开发语言。当你开始用键盘敲代码的时候,每敲一个字符你就离成功更近了一步,因为你走的是学习编程唯一的一条捷径。转载:http://www.jianshu.com/p/d1b0c6813b3d
相关文章推荐
- 学编程,你不能学会了游泳再下水
- 5分钟学会Lua编程(简明教程)
- 编程新手真言:不要去干追逐技术的蠢事,你只是用户,只需学会一门工具开发.
- 当你学会了什么之后感觉自己的编程算是入门了?
- 如何学会函数式编程
- Xcode有许多快捷键,这些快捷键在Xcode的工具栏里都有标注,学会使用这些快捷键可以大大的提高你的编程效率。本文来给大家介绍一些Xcode常用快捷键,设置方法:Xcode主菜单->Xcode->P
- 编程实现两个正整数的除法,当然不能用除法操作符。
- ADO编程:_ConnectionPtr 等不能识别的问题
- 学会使用函数编程,以及设计比较完备的测试用例完成对小程序的测试
- 学会在编程当中使用警报
- Peter Norvig:十年学会编程
- 三步学会Java Socket编程
- 三步学会Java Socket编程(三)
- 0001 零基础的小白能学会编程吗
- 【编程技巧】头文件不能定义全局变量+模板的实现应该头文件中
- 关于 windows sdk 编程中遇到的我不能解释的现象~~
- 【转帖】十年学会编程
- 微软面试题:编程实现两个正整数的除法,不能用除法操作符
- Java网络编程(3):为什么不能直接通过IP访问网站
- 几个令刚学会控制台转到Windows界面编程疑惑的变量