V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nananqujava
V2EX  ›  问与答

学习写代码是不是应该“抄”?

  •  
  •   nananqujava · 2018-07-06 00:50:32 +08:00 · 5320 次点击
    这是一个创建于 2337 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1,有个疑问,如果对一个编程语言和框架不熟,,是不是应该抄别人好的代码来学习? 抄一遍就知道大概的怎么回事了,比如一个博客网站,找一个写的好的博客, 抄一遍, 是不是以后对做一个博客就有一个轮廓了。电商网站,各种算法同理(个人认为)

    “抄”这个方法对入门来说有问题吗?其实也就是模仿, 欢迎指正, 还有其他更有效率的方法吗? (我说的抄不是无脑抄啊, 肯定是边抄边思考, 钻字眼的建议就算了)

    19 条回复    2018-07-06 16:53:40 +08:00
    ydirel
        1
    ydirel  
       2018-07-06 01:05:02 +08:00 via iPhone
    知其然,最终的目的是为了知其所以然😂。
    stephen9357
        2
    stephen9357  
       2018-07-06 01:09:43 +08:00   ❤️ 1
    是的,抄代码是很好的学习方式,比读一遍记忆深刻的多。
    cs923
        3
    cs923  
       2018-07-06 01:10:41 +08:00 via Android
    让我想起了大学的跟着敲 哈哈
    TripleZ
        4
    TripleZ  
       2018-07-06 01:14:54 +08:00 via Android
    我觉得会挺好,毕竟一开始自己不知道如何下手。打过一遍之后就会知道下一次应该在哪里做些更改才能让代码更好了。
    feiyuanqiu
        5
    feiyuanqiu  
       2018-07-06 02:07:06 +08:00 via Android
    写代码和写作文是一样的,好作文和好代码也是一样的:逻辑清晰,语言精炼,实事求是
    回想下以前是怎么学作文的?从对着作文书抄,到看名著模仿大师的遣词造句,到最后形成自己的文风,道理是一样的

    ps.现在看一个人聊天发言写邮件都能猜到他代码写得怎样…
    nl101531
        6
    nl101531  
       2018-07-06 08:29:19 +08:00 via Android
    抄代码确实挺好,抄的过程也要思考,熟悉之后再翻翻源码,基本上就差不多了
    justfindu
        7
    justfindu  
       2018-07-06 08:33:35 +08:00
    你要先思考自己怎么做, 然后开始抄, 抄的时候看为啥不一样. 一遍就差不多了
    baelish
        8
    baelish  
       2018-07-06 08:36:09 +08:00
    也可以是复制别人的代码, 套用别人的模式, 直接在别人的程序基础上改。 最终目的是做出自己要的结果。
    coderljx
        9
    coderljx  
       2018-07-06 09:10:06 +08:00
    抄完大概知道怎么写,然后自己按自己的理解再重新写一遍。此技能就学会了
    zpf124
        10
    zpf124  
       2018-07-06 09:19:08 +08:00   ❤️ 1
    我个人感觉,取决于你的超是哪种。

    打开人家的代码 ctrl + a,ctrl + c, 然后本地新建文件 ctrl +v, 或者整个复制一个项目然后改改数据库链接,改改标题,改改署名。 这种卵用没有,你学会个 p 了,下次要用的时候 又像这么 得 “学(个 p)” 一次。


    另一种, 打开对方一个文件, 然后照着他的内容结构自己手打,具体语句视情况粘贴一下, 我觉得有意义,
    比如我是 java 开发, 我打开一个 别人的项目文件, 看到这个人第一段,采用 spring 的某种注解 实现了 xx 功能,

    我自己照着 思路,一行一行看,
    遇上我本来就很熟的, 直接 粘过来 (虽然结果有时会出现某些很熟悉的用法里的类名方法名没记住...),
    遇上我写代码没怎么用过的参数或者写法时,看看他的注释或者百度一下, 很多时候得到的结果无非两种:
    - 哦这种写法和我用的另一种写法最终实现是一样的,我根据个人偏好照着他写或者接着用我熟悉的方式写。
    - 这种写法太久远了,早就被弃用了,现在都换 xx 了(因为中文教程 csdn 和博客园抄过来抄过去,几百几千个文档都特么是 2、3 个人写的), 我也换新写法,报错了不行了再照这个写。
    Everyman
        11
    Everyman  
       2018-07-06 09:24:39 +08:00
    之前看到传说 TJ 大牛就是靠阅读别人的代码而不是看书的方式学编程的。
    抄之前会阅读吧,所以...
    grewer
        12
    grewer  
       2018-07-06 09:33:51 +08:00
    抄->读->写
    unique
        13
    unique  
       2018-07-06 09:36:41 +08:00 via iPhone
    学习最开始都是模仿,后面才有创新
    shuimugan
        14
    shuimugan  
       2018-07-06 09:39:10 +08:00
    看个人习惯,我的习惯是先看答案,从答案里总结再开始自己写的模式,自我感觉效率比较高,类似于机器学习里有监督学习那样.
    反正这种功能都大同小异,你看多几套代码也知道基本上写出来的都是什么样,无非是具体到某个开发者的编程习惯或者是追求的信仰不同而已
    zhaogaz
        15
    zhaogaz  
       2018-07-06 09:46:28 +08:00
    差不多吧,本来就是模仿。

    你去看 quick start 不也就是看这个么?

    老师教你读书不也是一样的么?
    1024MB
        16
    1024MB  
       2018-07-06 09:50:09 +08:00 via Android
    不单是抄,抄的时候做好笔试,打好注释,多用图来表达自己的思维,单纯的抄,效果很低
    Mavious
        17
    Mavious  
       2018-07-06 10:13:29 +08:00
    初学者表示就是从抄开始的。某个功能不会写,没头绪?找一段别人类似的解决代码,改一改,运行运行,然后就用了=_=
    luoway
        18
    luoway  
       2018-07-06 10:13:42 +08:00
    好记性不如烂笔头
    v2lf
        19
    v2lf  
       2018-07-06 16:53:40 +08:00
    我觉的抄别人的代码是个学习的好办法,可以学习别人的实现方式,开拓视野。

    不过,抄完之后,应该想想这样子写,到底好不好!

    写代码,和作文类似吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:30 · PVG 05:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.