分享

抄代码真的有用吗?

 象骑士Hack 2020-11-11

照着别人的代码敲进去,和太平洋岛屿上那些见过二战时美军机场工作人员,就戴着耳机形的木头块叽哩哇啦、以为经过这种祈祷仪式就能把“神灵的大铁鸟”召唤下来的野蛮人没有两样。

编程和飞机领航员一样,都不是跳大神。

恰恰相反,你得先明白飞机是什么、领航员发出的每一条指令起什么作用、为什么要发这条指令、遇到另外的情况如何解决、如何把解决方案翻译成指令,然后才有资格去看别人的指令、猜测他的意图、比较你和他的思路的优劣。

而为了达到这个目的,严肃的、负责任的教材才会鼓励你从helloworld写起、然后逐渐学习交换两个数字之类更多更复杂的花样――这才叫临摹。

编程和口语不同,口语起码你理解它的字面意思,还有可能“书读百遍其义自见”。编程是规则语法生效机制完全不同的另外一整套系统,中文说出它的思路你都看不懂,跟着太平洋岛上跳大神的叽哩哇啦叫唤一天你居然真把大铁鸟喊下来了?你自己信不信?

没错,哪怕领航员这种人类语言的工作,不明白含义,跟着喊泥嚎金田田起补挫,也永远都是个跳大神的。计算机语言可又隔一层了。

老老实实从自己独立编写helloworld开始,踏踏实实一步一步前进,出的错才是你有可能解决的――搞不明白helloworld,敢从抄冒泡排序这种东西开始,就和幼童识字不学楷书练狂草一样,纯属扯淡。这是稍微有点编程经验就知道的常识。

也许有点心理安慰。在努力中安慰自己,在努力中安慰自己。然后用战术上的勤奋来掩盖他们的战略上的懒惰。我也做过这样的工作,我的数据结构和算法基础不好。虽然我上课很认真,但我不明白老师说的话。为了保持我的注意力,我不得不和老师谈谈。

我紧闭双眼努力奋斗,然后在临摹时试着去理解。如果我不明白,我就试着背诵。结果发现这是一个非常糟糕的策略。因为虽然我花了很多时间和精力,但最终的效果不太好,也没有办法灵活运用。直到我知道我们班几乎一半的学生都在试用期,我才意识到这可能不是我一个人的问题。然后我学到了这一课(这两门课是同一学期教的)。

如果我听不到老师在某一科目上的讲课,我就自己学习,省点时间。总之,很多老师上课只看PPT,跟念经一样无聊。原来,自学远胜于强迫抄写和背诵,就像不耐乳酸的人一样,喝酸奶总比喝牛奶好。

不过,我不建议你像我一开始那样自学课本。因为时代不同,现在有很多在线教程,插图+视频可视化。只要你越过长城,就可以享受知识的海洋,然后只要你学会搜索,学会编程就可以像鱼在水中呼吸一样自然舒适。这是获得第一手信息的最好和最快的方法。但长城内部也有很多知识库。虽然时效性差,但对学生来说已经足够了。如果你想练习数据结构和算法,leetcode非常适合学生。如果你想自己做一些工具/产品。例如,小程序、网站、应用程序、游戏和软件都必须经过磨练。作为中国的互联网巨头,阿里巴巴和腾讯都提供免费和一流的课程。他们躺在那里等着大家去寻找。此外,掘金、博客公园、CSDN、网易云教室、建树、阮逸峰的介绍性博客、廖雪峰的Python/java教程、小鸟兄弟的Linux私家菜、雷神的视频包,以及GitHub上各种令人惊叹的降价都非常值得自学。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多