您如何学习语言的标准框架/ API /功能?[关闭]


14

我了解如何编码。我知道如何解决我经常使用的语言的基础知识。我知道如何编写略高于基本的正则表达式,可以与数据库对话,可以接受输入,打印输出,处理文件等。我或多或少地确信我可以吐出源代码的基本能力中等复杂的程序。

我的问题是我永远都觉得不够。我觉得我只了解我的语言的标准库的一小部分,在我完全理解之前,至少是顺便说一句,我什至无权尝试使用它。我刚离开(社区/初级/ whathaveyou)大学,而我的朋友正在从事该行业的工作,但是我仍然感觉像是假货或装腔作势者,而且我还不够出色。

是否有一个不错的标记“我足够了解”,我可以用来向自己保证可以编码?我是否应该认为我至少有能力编写FizzBu​​zz作为可以申请的指标?如何相对轻松地了解更多这些标准库,框架和/或API?我定期编写代码,阅读书籍,但是我的知识仍然很肤浅。

救命!


3
您了解的越多,您就会了解的越少。+1是一个很好的问题。
devnull

我不确定这些东西值得记忆。毕竟,您已经获得了可搜索的文档,智能IDE等。最好利用大脑来处理重要的事情,基础知识,并将所有易失的API排除在外。
SK-logic

I feel like I only know a small portion of the standard library of my language这句话应该是C ++的官方格言
ZJR

Answers:


8

我的推荐伙伴:

停止思考二进制(0/1,不知道/不知道,不识字/识字),然后开始思考模糊(我在某种程度上知道)。我们所有人在某种程度上都知道一些事情。知识是一个连续的过程,每个人都位于最不识字的人和最知识渊博,精明的人之间。您可以完成这项工作,但要在您自己的水平和之下。这是规则。不要害怕 不要等待一天,当您了解了框架的所有内容之后,恕我直言,这一天将永远不会发生。甚至具有20年经验的开发人员仍在阅读以学习新事物。编程本质上是如此广泛,以至于您不应该(或不能)掌握全部内容。

潜入工作环境,不要害怕。我们所有人都有无法做某事的日子。那不是犯罪。这是我们工作的一部分。你不知道,学到了,尝试去做,然后完成了。

我认为您现在需要的不是更多的知识。相反,这仅仅是自信。

祝好运


我了解到这全是模糊的知识,还有一些JIT学习的细节。我只是不知道如何向自己保证我甚至对基础知识都没有把握。我担心我会完全错过一些非常重要的事情。
弃用

2

我相信您在这里问错了一个问题,如果您允许我一点点不必要的心理,那是因为您受到一点点的自我怀疑和自信不足的困扰。

停止将自己与他人进行广泛的比较

首先,您无法与其他程序员进行广泛的比较。即使是您现在仰望的摇滚明星也可能会遇到问题(草率,做事的另一种方式以及态度问题),因此不必担心是否将它们与它们进行比较。相反,您的方法应该是获取尽可能多的导师,收集所有可能的知识,并通过观察和模仿专家来变得更好。

学会学习

而且,一般来说,成为更好的程序员和学习者的最佳方法不是学习特定的东西,也不是通过记忆来理解。海事组织,死记硬背是学习的最低形式。这就像一个程序,缺少Input-> Process-> Output的关键“处理”步骤。教自己像问题中提到的概念。您可以从中获得最大的编程价值。与学习如何解决问题相比,在您熟悉的范式中学习一种新语言是轻而易举的事。

现在,从比您大一点的人那里得到一些不好的建议

我小时候犯下的最大错误之一是,我假设自己还不够好,就为别人做出了其他人的决定,而我的时间和才华不值得他们花费时间和金钱。我一直都在低估我的能力和才华,尽管当时可能很少。这是一个巨大的错误。

您需要了解的是,即使是一个相当体面的程序员,也似乎是平均每天工作的向导。他们可能会讨厌您,可能总是不得不询问本地书呆子如何打开计算机而感到厌烦,但是由于他们缺乏洞察力和对您所做工作的理解,无论您看起来多么琐碎和简单,都不可能给他们。

人们会为您的时间,才能和精力付出代价。我们行业中有足够的绝对糟糕的程序员仅仅因为他们可以坐在一席之地并(可以说)编写基本程序而杀人。通过成就来建立自信,正确发挥自己的牌,练习口语和肢体语言,通过总是寻找您不了解的事物来继续掌握自己的技巧,并朝着那些事物寻求更多的理解,最后:停止淡化您开发的技能。


2

“我知道的足够多”和“我对这份工作很擅长”完全不同。

IMO“我对这份工作很擅长”更接近于“我了解基础知识,而且我知道-学什么/在哪里搜索/在哪里问/读什么-完成任务”。

(这并不意味着如果您需要1-2个月的时间来学习,例如:在XML文件中写入/读取,他们会雇用您。希望您理解我的意思。)

而且,我认为任何程序员都不会说“我足够了解”。(也许“足以胜任工作”,“足以致富”,“足以……”,但不足够“:”))

编辑: 当我说“基础”时,我的意思是

  1. 编程基础(位,字节,变量,函数,参数,循环,条件,递归)
  2. 您将使用的编程语言的基础知识(如何编译程序,如何调试程序;如何使用IDE; 90%的关键字并知道它们的作用,何时使用,如何使用;变量类型;如何使用语言中从1开始的内容;最有用的库;错误处理)
  3. “用您的血液连接1和2” :)

(可能需要在工作中使用2-3种语言)

我同意Saeed的观点,投入工作,工作是学习事物的最佳方式,您与知识渊博的人一起工作,向他们学习,了解他们的工作方式,但是他们像您一样开始(或者也许他们开始了知识比现在少了。


虽然我仍然认为可能要花一天的时间,但我不需要花一个月的时间来读写XML文件。您能否详细介绍“基础知识”?实际上,这是我提出问题的主旨,因为我不知道我的基本知识。我当然知道一些基本知识,但我真的担心自己会错过一些真正的基本差距。
一次性

1

你态度很好!成功的基本因素之一是永远不要沾沾自喜。永远不要解决。永不妥协。就是说,很难分辨该怎么做(例如,知道执行任务X的“最佳实践”并不像谷歌搜索那样简单,因为每个人都有自己的见解)。

最好学习如何识别好的代码及其背后的原理(如何以及为什么)。为此,我建议您阅读本领域知名专业人士的博客,因为这会使您了解所需的思维方式。为开源项目做贡献也是进入深度研究的一种方法,但是,它将为您提供一个在当前进展中向他人学习的机会。


谢谢。我认为我没有意识到需要多大的赞美。
弃用

0

我认为我们大多数人早晚都处于这种情况。每当您选择一种新语言时,一切都会重新开始。因此,来自我的第一条建议是:不要绝望,您并不孤单。并且:如果仅出于自我反思的事实,您可能比您想象的要好。记住那句古老的谚语:愚人冲向天使害怕踏脚的地方。

如今,大多数语言都有标准库,这些库太大了,任何人都无法完全了解。在顶部添加框架和API,您可能一无所知。您能做的最好的就是了解基础知识,然后找出在哪里可以找到更多。经验会变得更好,所以最好的建议可能是:随便使用!

没有单一的“体面”标记。一切都取决于环境。对于一个公司/项目而言,什么是完全足够的,而对于另一家公司/项目而言,则可能遥遥无期。如果您能按照自己的意愿去做,我会给您一个相当体面的初中生,您应该不会遇到麻烦。


[复制/粘贴我对@ e-MEE的上述评论],虽然我仍然认为可能要花一天的时间,但我并不需要一个月的时间来读写XML文件。您能否详细介绍“基础知识”?实际上,这是我提出问题的主旨,因为我不知道我的基本知识。我当然知道一些基本知识,但我真的担心自己会错过一些真正的基本差距。
一次性

0

根据您在问题中所写的内容,您实际上可以进行编码,并且您愿意提高自己的技能和知识。

每个人在每项工作中都必须以新手起步,然后从经验中成长。

您的成长有多快取决于您,每个人的成长速度都不同,唯一重要的是您现在不要对自己提出太多要求。

如果您觉得还不太了解,请不要担心。很快,您将能够获得图片。

您可能希望尽快开始从事该行业。由于您已经可以编写代码,因此您已经可以开始工作了。这是因为理论还不够好,您需要实践,并且需要解决实际问题。

至于您对库代码知识的关注,只要您继续学习,阅读文档并进行实践练习,它就会随着时间的流逝而出现。这样的站点也非常有用,如果您主动提出并回答相关问题,您将学得更快。

个人建议:如果您真的想在做意大利面条代码的许多人中脱颖而出,自称程序员,请学习最佳实践。学习最佳实践与您使用哪种语言或库学习或编码无关紧要。这将为您节省大量时间,错误,故障,头痛,并帮助您感觉更好的程序员。

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.