通过不编程来掌握编程语言?


9

计算机科学家彼得·诺维格(Peter Norvig)在他的论文《十年内自学编程》中指出,您需要大约10,000个小时的练习时间。

但是杰夫·阿特伍德(Jeff Atwood)在他的文章《如何通过不编程成为一个更好的程序员》中指出,他认为,成为一个更好的程序员的唯一方法是不编程。

这些条款是反对的。是否有科学证据证明Jeff Atwood的方法?


12
当翻阅标题时,我根本看不出它们是如何相反的。两者都很重要,但实际上是编程,并且还要从事工作中使用的非编程技能。两者都没有说你不应该做另一件事。他们每个人都说,一件事除了另一件事也很重要。
2013年

2
让我们将meta注释移至meta。 meta.programmers.stackexchange.com/q/6137/53019

Answers:


28

您错过了重点。

杰夫·阿特伍德(Jeff Atwood)说,要成为一名优秀的程序员,不仅需要编码技能。 这还需要成为一名优秀的设计师,与其他人一起工作,并且通常要成为更好的思想家和解决问题的人。

缺少的最大技能是既善于了解工程技术又与硬核工程师保持良好关系并将其与客户合作的桥梁。

- 比尔盖茨

彼得·诺维格(Peter Norvig)的观点是,您不能只是拿起《在24小时内成为一名程序员》的副本而期望它能奏效。但这恰恰是有很多在Stack Overflow上问问题的人似乎正在编程。他们认为可以加载Eclipse,学习一些关键字并编写下一本《愤怒的小鸟》。它所需要的还不止于此。


5
不,生气的小鸟可能就像2到3个关键词一样重复出现,并带有有趣的鸟类照片。是的 这是鸟类学家的数据库,对吗?
吉米·霍法

是的,但是在某种程度上,Peter Norving的观点指的是“掌握”事实,而不是通过肤浅的方式(这是他文章的重点)来了解编程语言。实际上,彼得和杰夫·阿特伍德被称为“大师”。用与您描述Jeff Atwood姿势相同的方式,我描述了Peter Norving在说,成为一名优秀的程序员,需要大量的编码(带有隐式学习主题)和实践。
bywronski

2
@Wronski:啊,你回来了,我知道了!很高兴再次见到你。当您不在时,我们正在讨论您的问题,将其关闭,然后重新打开。无论如何,你到底在说什么?Peter Norving的观点是,您不可能在24小时甚至21天之内成为大师。杰夫·阿特伍德(Jeff Atwood)的观点是,仅通过编写代码就不能成为高手。他们都是对的。
罗伯特·哈维

@RobertHarvey为什么关闭它并重新打开它?我是否应该只将Peter Norving的文章解释为一个好的“编码”,而将Jeff Atwood的文章解释为一个好的“工程师”?我有点困惑。
bywronski

1
@Wronski:大师既是优秀的编码员又是优秀的工程师。
罗伯特·哈维

10

经过大量的编程实践后,才可以进行“非编程”部分。

the only way to become a better programmer is by not programming

您必须先成为一名程序员,然后才能成为更好的程序员。第一个编程语言学习障碍将独自承担大量的工作,并且与以后将要面对的问题相比,解决问题的部分将变得微不足道。

更新:

正如评论中所建议的那样,当您最初以程序员身份开始时,仍然可以从“不编程又名:(思考)”中受益,但是我不会因为有人说我应该这样做而变得更好而放弃键盘,而是您应该这样做,因为您知道需要进一步考虑。


2
也许。但是设计技能并不是很遥远,即使是刚开始的时候。无论您的编码能力如何,人际交往能力都是宝贵的。
罗伯特·哈维

@RobertHarvey是的,但是Jeff Atwood的文章似乎更多地是关于解决问题和脱离计算机来思考您正在编程的内容。
Korey Hinton

2
@KoreyHinton对于某人,解决他们的第一个编程问题时,这样做是完全合适的。从第一天开始,您就可以并且应该这样做,而不是一旦您已经精通,那就是罗伯特所说的。
Servy

1
@KoreyHinton这就是为什么没人(既没有文章,也没有在这里回答的任何人)说您应该只做一个或另一个的原因。他们说做这两者很重要,因为这些技能是相辅相成的。
2013年

1
@Wronski我认为罗伯特在争论相反的观点,即在第一次学习编程时可以学习非编程技能。我也对此表示同意,但很高兴我个人一开始并没有使学习过程变得过于复杂。我的重点就像您提到的那样,首先将编程技能放在首位,将思考技能放在第二位,现在我一直在不断努力提高两者。
Korey Hinton 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.