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

2018-07-06 00:50:32 +08:00
 nananqujava

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

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

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

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

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


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

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

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

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

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

写代码,和作文类似吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/468522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX