学编程,你不能学会了游泳再下水

作者: 天花板 | 来源:发表于2017-03-31 21:26 被阅读3953次

我一直担任着公司游泳协会的教练。主要负责教会员学习蛙泳和自由泳。夏天要到了,最近收到了一些新会员学游泳的咨询。

今年的新会员比较特殊,很多压根不会游泳但说起游泳的要领都是如数家珍,对蛙泳腿的“收翻蹬夹”四要领,自由泳的最优划水线路这些知识的了解程度甚至超过很多老会员。也许无数个无聊的夜晚,他们通过网络学习了整套的教学视频,也曾在床垫上练习过多次基础动作,唯一的问题就是没有勇气下水试试。

我总开玩笑对他们说:“难道你们要等到在床垫上学会了游泳再下水吗?”

这些人实在是匪夷所思,但他们却活生生地出现在我身边,IT怪咖的思维方式有时候就是这么奇葩。

不过,这件事让我联想到了很多简书的朋友问我学习编程有什么捷径。我总说最好的捷径就是多敲代码。这就好像学游泳最好的捷径就是下水去游。其中的各种好处也只有亲身体会过的人才能了解。总结一下主要有四个功效。

1. 在敲代码中记忆

我本人刚学C语言的时候,自己还没有电脑。由于是利用寒假自学,也没有实验室的机器可以用。你能想象我当时有多痛苦。死记硬背32个关键字都让我颇费了一番功夫。在没有计算机的情况下学编程和学马经差别不大,除了死记硬背做选择填空题之外没有什么太好的方法,我一度有了放弃的打算,因为完全没有乐趣可言。

后来有了电脑,我第一次把自己写在纸上的代码敲在计算机上运行的时候,那感觉变得完全不一样了。虽然我在教科书里已经见过Turbo C那个丑丑的黑框无数次了,但当它出现在我眼前的显示器上的一刹那我还是激动得不行。那种感觉不能简单地用一个“神奇”来形容,它充满着神秘感,让我一下拥有了好奇心想要探索下去。

有了这份动力,对我而言学习C语言不再是痛苦而是享受。每次上机练习的时候我都感觉自己状态特别好。之前记不住的关键字敲两遍就自然记住了。自己做过的每一个练习被深深地烙在了脑海里,想忘也忘不掉。仔细想想,敲代码与阅读教材最大的不同就是它是以试错为基础的。在你不断地输入调试的过程中,你所有的精力都被用到了你最容易出错的地方,因此这样的学习特别有效。

2. 让IDE帮你检查代码

为什么试错能提高学习效率呢?很多同学有这样的精力,信心满满地输入了一段代码,觉得肯定不会有任何问题,结果IDE告诉编译失败。最郁闷的是报错信息还看不懂,你很抓狂。这时候你能做的就是用自己仅有的知识进行排查。是不是什么地方少了个分号?是不是大括号没有匹配?是不是关键字写错了?是不是头文件没有包含?是不是...?

也许最终你花了半个小时的时间终于发现是有个变量没有初始化导致的错误。成功运行之后你真想说脏话,但这半个小时让你这辈子都不会再忘记变量要先初始化。

有时候编译器告诉你代码编译成功,你很开心。可是运行的时候却弹出了错误信息。一堆你根本看不懂得提示信息。你又郁闷了。你盯着IDE指出的错误位置发呆,心想它究竟又在闹什么脾气。最后实在想不到,你只能求助老师,结果是你的数组访问越界了。从此你学会了要规范地使用for语句的条件控制。

这些就是上机练习的意义。

3. 在调试中培养逻辑性思维

最难的还不是这些。有时候你的代码能够成功运行,没有任何问题。当你刚舒一口气的时候,突然发现结果并不是你想要的。上机练习时常听到这样的自言自语:“怎么是3,应该是5呀...”。

这个时候,你该发挥IDE的优势调试你的代码了。最常用的方法就是通过打断点、单步调试的办法跟着代码的逻辑一步一步走,过程中要监视着各个变量是如何变化的。这样,你就会在某一次循环中突然发现原来你有个环节没有考虑周全。

不断地这样练习会让你的逻辑思维能力越来越好,而这个恰恰是编程能力最重要的组成部分。

4. 成就感就是动力

这些过程是痛苦的,很多人都倒在了这条痛苦的路上。但正因为过程痛苦,成功后才格外的喜悦。每当看到自己千辛万苦调试的程序成功地显示出正确的结果,你一定想大声欢呼出来。

工作多年的程序员们每次提交代码的瞬间都是喜悦的,这一点从他们的表情和话语中就能感受得淋漓尽致。如果说什么让这些程序员们对繁重的编码工作欲罢不能的话,那一定是这些星星点点来之不易的成功的喜悦。

程序员们心中最大的优越感就是觉得自己的工作是在改变世界。我想,改变世界的成就感足以让任何人有毅力完成繁重而枯燥的编程学习。不过你要习惯从现在的上机练习开始寻找这份成就感。

5. 最后

不要再纠结于教程上的某一个小小的知识点,也许它并不影响你掌握一门能够改变世界的软件开发语言。当你开始用键盘敲代码的时候,每敲一个字符你就离成功更近了一步,因为你走的是学习编程唯一的一条捷径。

我是天花板,让我们一起在软件开发中自我迭代。
如有任何问题,欢迎与我联系。

相关文章

  • 学编程,你不能学会了游泳再下水

    我一直担任着公司游泳协会的教练。主要负责教会员学习蛙泳和自由泳。夏天要到了,最近收到了一些新会员学游泳的咨询。 今...

  • 不会游泳的人

    不会,别下水,除非下水是为了学游泳。

  • NLP亲子关系工作坊

    开题: 你是如何学游泳的? 有一本学游泳技巧的书,你看了好多背,倒背如流,全部技巧都学到了。当你跳下水中,你会游泳...

  • 当你放手时孩子成长最快

    什么时候学游泳最快,三岁?五岁?又或十岁?我想说的是下水的时候学游泳最快。当然不是下水就会游,而不下水是不...

  • 关于“下水文”

    要学游泳,必须下水,要教运动员游泳,教练必先下水示范,“下水作文”也由此引申过来。下水作文就是老师布置的作文,老师...

  • 做中学最重要

    怎么真正研究? 第一,要做中学。学游泳得要跳到水里才能学会,学开车得驾上车才能会开。不下水,你就是把游泳的知识背下...

  • 90天自媒体锻造营第五周复盘

    人们总说学炒股就像学游泳,无论讲了多少大道理,不下水是不行的。 我认为,无论学什么都是如此。 游泳是在呛水中学会的...

  • 害怕下水的游泳教练

    金正延妈妈领着儿子去上游泳课,这次平时一起学游泳的另两个小伙伴没有来。 “教练,你没换泳衣!你不下水?” “不下水...

  • 手机学游泳,学会了还是溺水了呢?

    我们都知道手机是千万不能进水的,可是有这么一部手机,它却在学习游泳。手机学游泳,大家猜猜它学会了还是溺水了呢? 学...

  • 在游泳中,学会游泳

    文/鱼择 学游泳,得下水; 学写作,得下笔! 穷思竭虑之后,我终于制订了适合自己的明...

网友评论

  • b7714b8c8674:感谢UP主
  • 夏沐星流:敢问阁下是用什么软件来编写C的?能否推荐一个软件?
    天花板:@末诺1 windows下当然是VS啦
  • 逍遥W恪心:百度,全部百度
  • 辗转迷茫:确实是这样的。不敲代码纸上谈兵,作用不大.等到真正写代码的时候就麻爪了:sweat:
  • c7c3218cc7fd:其实还有个误区是不依靠外力自己一个人搞定收获更大。没思考瞎搞才是致命伤
  • d5593d2099c6:最后,最后,最后
  • FlynnHai:额 不下水从何谈起学会了游泳
  • 静晨:多敲代码只是必要条件,记代码更是完全错误的方向。如果多思考,整天想着为什么是这样,如何更好,我写的代码有什么问题,别人是否很容易通过看我的代码就能理解我的思路、流程,之前写的代码为什么不好,改过后的代码为什么更好,如此种种,都是非常可怕的事情,你能感受到不断的进步,每天都是全新的自己。总之,以为多敲多记就能成为真正优秀的程序员,真的是比较天真的想法。
    天花板:首先,我们这篇讨论的内容不是如何“成为真正优秀的程序员”,而是如何让初学者快速掌握一门语言。你所说的整天想着“如何更好”的方法的确很有助于提高,但对于连main函数也时常忘记写的初学者而言并不适合。另外,可能我没说明白,我并不是让大家死记代码,我所说的记忆其实是记忆自己上机练习时的错误和使用过的算法逻辑,这些作为每个人的预制模块是有必要记住的。比如一个冒泡排序,如何用效率最高的方法实现已经不需要讨论了,初学者需要做的就是理解算法然后记住如何实现,达到自己随时可以独立写出来的程度。学习了经典才能创新,大部分程序员不都是这样走过来的吗?如果不吸收只是一味的思考,那么再怎么进步也是有限的。学而不思则罔,思而不学则殆,对于编程学习同样适用,两者相辅相成。至于初学者,多学习多积累永远是重点。
  • 亓云风:敲敲敲,确实能理清逻辑
  • 神小乐丶:其实任何行业的初级进阶中级都是通过大量练习来完成
  • everfight:想找女朋友,你等学会了如何去恋爱,女朋友早成别人家妈妈了。
    用心沉淀: @EverFighting 然后遇见同你携手到老的那一个
  • 枫叶mzn:确实是这样,当花了好多时间找到bug,真的是对自己所犯的低级错误印象深刻
  • 靈落九界丶简琉璃:用高级语言不就没有这么多等待的坑
    天花板:高级语言用起来的确方便,但有时候也让人抓狂。Android开发者就常常在Debug的过程中发现系统提供的库有问题。这种坑要是掉进去可得花时间慢慢爬出来了。不过我们还是不要陷入“语言之争”这个大坑,无论什么语言,只要喜欢就好好学吧
  • 喜欢文学的工科男:内存泄露最恶心。。。完全找不到
    e1f8cf9045e0:@喜欢文学的工科男 内存泄漏你可以这个链表存起来,每次用完就清一遍链表
    喜欢文学的工科男: @天花板 膜拜大神
    天花板:防止内存泄露更多的要靠自己养成一个良好的编程习惯和代码风格。比如对称地申请与释放空间,规范的指针使用方式。随着调试经验的增多,你会发现它没那么恶心了。

本文标题:学编程,你不能学会了游泳再下水

本文链接:https://www.haomeiwen.com/subject/otnvottx.html