jcr*_*son 31 language-agnostic
我知道这个问题可以用一个简单的句子来回答,并且它可能被视为主观的,然而,我是一个有兴趣从事编程生涯的年轻学生,并想知道你们有多长时间去了你现在的经验水平?
我问这个是因为我正在努力在Android平台上用Java构建一个应用程序,让我感到困扰的是,我不断地在我的应用程序中查找如何编写某段代码,例如写入数据库,或者如何if语句应该是结构化的.
我的问题是,在您编写代码之前,您需要多长时间才能真正了解下一行代码的具体内容?
And*_*are 47
您可以快速调用语言语法,常用库函数和最佳实践模式的速度与使用它们所花费的时间成正比.
换句话说,你会发现自己越快越快.
Dón*_*yle 22
我几乎有一半的时间都在编程,而且我不能总是回想起简单的语法,更不用说整个代码轨道来处理更复杂的任务了.如果你问我这是什么参考书和谷歌.
一个更重要的技能是任何语言编程的一般知识,即递归,循环,面向对象的设计,使用API,错误处理等......一旦你完成所有这些,你可以将它应用于任何语言和平台.
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")和我得到第二个.你没有打败那个(特别是看到我是一个打字员,所以我快速输入这三个或四个键).除了速度,作为额外的奖励,自动完成不会弄乱你"我 - ".
在许多情况下,我不确切地知道我会得到的那条线:当然,我知道它"或多或少",而这正是应该的样子.
不要太多出汗.正如其他人所提到的那样,最终编写代码变得更容易,而不会随着时间的推移而使用特定语言.
然而 ,即使是经验丰富的程序员发现自己经常使用参考资料,也有一些原因:
(1)与以往的日子不同,现在大多数项目都要求您使用多种语言来完成工作.例如,单个网站项目,网站可能需要在同一个项目中使用C#,XML,JavaScript,SQL,HTML,XHTML,RegEx和CSS.在某些语言之间进行切换实际上可能会引发一个循环,因为它们中的许多只是相似而已经足够熟悉,但只是差别足以让你忘记语法中的微妙差异.
(2)当你开始熟悉内部和外部的语言时,供应商会发布一个新的更新,改变你所知道的一切.例如ASP-> ASP.NET.
我仍然经常查看简单的事情,而且我已经待了将近20年.重要的是你了解基本概念和原则.
我花了12年才到达今天的位置,这是我在专业编程方面的经验.在使用某种编程语言时,即使您在过去5年中一直使用它,也会始终得到改进.
关于你的问题,这取决于.我认为你应该在一周后熟悉语法,一个月后熟悉主要的库,并在6个月后熟悉平台.
但是当你到达那里时,不要停下来!
如果您每天使用相同的语言进行编码,那么您可能会在一两个月内记住共同的语言元素和模式.但是有很多东西你可能永远不会记住,仅仅是因为你不经常使用它们,而且因为现代IDE可以帮助你,如果你利用他们所有的东西,你真的不需要记住所有东西功能(如代码片段,快捷方式,智能感知).
我已经编写了15年的代码,并且在最后三年做了C#,我仍然每天使用MSDN参考资料.然而,就语言的基本构成部分而言,我在第一个月或第二个月就记住了它们.
此外,您编码的频率越高,您就越能将其提交到内存中.