某人能够从内存中输入代码需要多长时间?

jcr*_*son 31 language-agnostic

我知道这个问题可以用一个简单的句子来回答,并且它可能被视为主观的,然而,我是一个有兴趣从事编程生涯的年轻学生,并想知道你们有多长时间去了你现在的经验水平?

我问这个是因为我正在努力在Android平台上用Java构建一个应用程序,让我感到困扰的是,我不断地在我的应用程序中查找如何编写某段代码,例如写入数据库,或者如何if语句应该是结构化的.

我的问题是,在您编写代码之前,您需要多长时间才能真正了解下一行代码的具体内容?

And*_*are 47

您可以快速调用语言语法,常用库函数和最佳实践模式的速度与使用它们所花费的时间成正比.

换句话说,你会发现自己越快越快.

  • 非常同意这一点.抛出你最近使用的语法/库/模式.我开始在记事本中编写C/C++,可以为我的介绍类编写完整而正确的解决方案.在做了5年的Java之后,我绝对无法从内存中编写C++模板.但请告诉我一个参考或样品,我立刻就知道了! (3认同)

Joh*_*ing 32

在过去的20年里,我一直是C++程序员.我花了很长时间才达到这种专业水平.我主要是一个Windows程序员,我一直在我的一个监视器上保持msdn网站.

无论你做多久都没关系.你永远不会从记忆中知道一切.不要出汗.

  • 是的,但是当我不记得某些WINAPI功能的功能参数时,任何持有它的雇主都是我不想使用的雇主. (33认同)
  • 当你接受采访时会出汗,而未来的雇主希望你能记住一些事情.:P (2认同)

Dón*_*yle 22

我几乎有一半的时间都在编程,而且我不能总是回想起简单的语法,更不用说整个代码轨道来处理更复杂的任务了.如果你问我这是什么参考书和谷歌.

一个更重要的技能是任何语言编程的一般知识,即递归,循环,面向对象的设计,使用API​​,错误处理等......一旦你完成所有这些,你可以将它应用于任何语言和平台.

  • 是的,设计和逻辑的基础知识将带您到任何地方.学习所有这些可能需要很长时间,对某些人来说可能是一个完整的职业. (7认同)
  • 和智能感知! (3认同)
  • @robault:不幸的是,有些人的整个职业生涯甚至已经足够...... (3认同)
  • 能够回忆简单的语法是一项非常基本的技能.参考文献适用于不常见的内容. (2认同)

Syn*_*r0r 14

我可以告诉你,25年后有一些代码,我不知道它们究竟会是什么样子.

想要一个例子吗?我从上个世纪开始使用Java进行编程,如果我要输入hashcode()hashCode(),我仍然可以犯错误.

为什么?因为实际上自己输入这样一个方法名称就是上个世纪.您的目的是覆盖Object的hashCode()方法,因此您可以按意图使用编程.

按Ctrl-O然后按h,你会得到一个以你可以覆盖的'h'开头的方法列表.然后你点击回车.作为奖励,"@Override"也会为您插入.

4把钥匙.4,得到这个:

@Override
    public int hashCode() {

    }
Run Code Online (Sandbox Code Playgroud)

老实说,hashCode是否采用大写的"c"......我不在乎.这不是哈希码的意思,我的目的不是要知道语言和API设计者提出的所有不一致性.我的目的是覆盖返回对象的哈希码的方法,而我的(现代)IDE允许我在四个按键中获得该骨架,包括按Enter键.

另一个例子:有些人每天都会无数次打字:

for (int i = 0; i < ; i++) {

}
Run Code Online (Sandbox Code Playgroud)

或者更棘手:

for (int i = ; i >= 0; i--) {

}
Run Code Online (Sandbox Code Playgroud)

请注意,在后一种情况下,我仍然可以搞砸并输入"i ++"而不是"i--"(称为'thinko').

但我根本不关心,因为我键入"fi <tab>"(三个键),我得到第一个或"fir <tab>"(四个键,"for i(in)reverse")和我得到第二个.你没有打败那个(特别是看到我是一个打字员,所以我快速输入这三个或四个键).除了速度,作为额外的奖励,自动完成不会弄乱你"我 - ".

在许多情况下,我不确切地知道我会得到的那条线:当然,我知道它"或多或少",而这正是应该的样子.

  • 完全同意.让IDE完成大部分工作.花时间学习一般概念(OOP,递归等)和特定技术(库,框架,系统,工具等). (2认同)

Joh*_*nFx 7

不要太多出汗.正如其他人所提到的那样,最终编写代码变得更容易,而不会随着时间的推移而使用特定语言.

然而 ,即使是经验丰富的程序员发现自己经常使用参考资料,也有一些原因:

(1)与以往的日子不同,现在大多数项目都要求您使用多种语言来完成工作.例如,单个网站项目,网站可能需要在同一个项目中使用C#,XML,JavaScript,SQL,HTML,XHTML,RegEx和CSS.在某些语言之间进行切换实际上可能会引发一个循环,因为它们中的许多只是相似而已经足够熟悉,但只是差别足以让你忘记语法中的微妙差异.

(2)当你开始熟悉内部和外部的语言时,供应商会发布一个新的更新,改变你所知道的一切.例如ASP-> ASP.NET.

我仍然经常查看简单的事情,而且我已经待了将近20年.重要的是你了解基本概念和原则.


Rav*_*lau 6

我花了12年才到达今天的位置,这是我在专业编程方面的经验.在使用某种编程语言时,即使您在过去5年中一直使用它,也会始终得到改进.

关于你的问题,这取决于.我认为你应该在一周后熟悉语法,一个月后熟悉主要的库,并在6个月后熟悉平台.

但是当你到达那里时,不要停下来!


Igb*_*man 6

如果您每天使用相同的语言进行编码,那么您可能会在一两个月内记住共同的语言元素和模式.但是有很多东西你可能永远不会记住,仅仅是因为你不经常使用它们,而且因为现代IDE可以帮助你,如果你利用他们所有的东西,你真的不需要记住所有东西功能(如代码片段,快捷方式,智能感知).

我已经编写了15年的代码,并且在最后三年做了C#,我仍然每天使用MSDN参考资料.然而,就语言的基本构成部分而言,我在第一个月或第二个月就记住了它们.

此外,您编码的频率越高,您就越能将其提交到内存中.