十个提高编码技能的诀窍,你掌握了几个?
原文:10 Tips to improve your coding skills
翻译:王江平
译者注:此文主要介绍一些提高编程技巧的小方法或者说是技能,嗯,我比较推崇第一条…..多练,熟能生巧。
你想成为一名程序员,并且正在为之奋斗,那么你努力的方式,比如做事方法、思维习惯都将会影响你会成为怎样的一名程序员。
那么,你需要成为一个天才才能学好编程吗?我觉得没有必要。
你必须建立自己的做事方式。需要学习一些(或更多的)技巧, 不断的在Google上搜索查询,与书成为朋友。有一长串的TODO需要遵循。我将在这里分享一些技巧,帮你提高编程技能。
尽可能多地练习:
坚持练习几个小时听起来很难, 但一旦喜欢上这种方式, 相信我, 你会乐此不疲。你一定听说过熟能生巧。这对程序员来说是非常必要的。
这里有个问题。练习什么?问得好。社会媒体是实践资源的一个重要来源。加入有新手程序员分享他们所面临的问题的群组和论坛,去帮助他们。几乎每本书都有很多经典的案例。不要跳过章节练习。留意实际运用中的问题并且尝试解决掉。
加入开发者社区:
如上所述,社交媒体可以给到你想要的一切。有大型专业社区。有些是非常流行的, 如 StackOverflow 和MSDN。这里有许多技术牛人可以给到你帮助,也有一些新手需要你的帮助。注册 (免费的), 然后扩大你的社交圈。
多吸取建议 :
允许他人阅读您的代码。如果有批评的观点, 请感谢他们。因为他们将帮助您找到代码中的漏洞,提高代码质量和逻辑。对有些人来说,很难接受批评。我就是其中之一, 但很快我意识到, 评论者正帮助我测试代码。
解决困惑和谜题:
当我还是新手的时候, 我常常解决一些编程难题,直到现在我仍然在周末寻找一些难题并享受解决之后的喜悦。它刺激大脑并保持头脑的运转。
当同样的问题再次出现时,在哪里可以找到解决这些困惑的方法? 下面是一些资源。
Sphere online judge
Uva online judge
Project Euler
Top coder
Python challenge
Code kata
参与代码挑战:
参与学校里面低级别的或者如Google Code Jam等国际级别的代码挑战,使您能够像专业人士一样思考。 它让你知道自己的水平,使你能够确定自己的速度。 如果您赢得了挑战,您将获得奖励,这是一种激励和鼓励,如果你输了,那就是刺激,给手机设置提醒,一个告诉你起床和奋斗的警报。
不要重新编写代码:
如果你正在练习,那么跳过这一点。但是如果你正在开发一个项目,那么它是为你而设计的。 您正在处理的项目可能是由多人共同完成的,整个代码或代码段都是开源的。 只要借用该代码,阅读并修改它,如果需要的话。不要重新发明已经发明的东西。 这可以真正提高您的工作效率。
不要试图记住代码:
这个帖子的第一点是尽可能的多练习。
问:你为什么需要练习? 为什么不记住代码?
答:一些初学者记住了代码和语法,这看起来比练习更容易和快捷,不是吗 ?但事情并不总是像#000000和#ffffff一样确定。 实际上,不需要记住特定问题或代码语法的任何代码,因为我们有存储设备和搜索引擎以便于检索。问题日益复杂,今天的代码对于明天变得无效。 所以你需要建立肌肉记忆,发展自己的想法而不仅仅是死记硬背。
我不会试图记住之前写的代码的某一行,甚至是某一个变量,因为我真的不需要。当然,我会为我的代码添加注释,方便以后再次阅读时理解。
避免使用过时的API:
过时的API是指那些旧的或较新版本的API。新的东西有新的功能, 对旧版本的特性和兼容性等方面得以改善。API开发人员试图使用户更容易使用。因此,让你的技能与时俱进,如果不需要使用旧版本的API,请避免使用它。
会用调试工具:
对于所有程序员来说,调试是编码过程中最苦恼的一部分。如果某一个人写了很多行代码而没有BUG,那是比较少见的。调试是解决BUG的过程。根据bug难易程度和个人调试技能不同,调试单个bug可能需要1分钟或几天时间。但是, 您可以使用某些工具来提高调试效率。幸运的是,每个IDE都包含调试工具。您只需要学习如何使用这些工具, 并在每次调试过程中使用它。真的会对你有帮助!
擅用Google
在开发过程中,你将不得不面对一个艰难的处境。当你在代码中发现了很多BUG的时候,或者你正在努力想出一个方法去做一些事情。在这种情况下,很可能你不会是第一个做这些事的人。 数以千计的人可能也遇到同样的麻烦。他们是如何成功解决的呢? Google会给你很多答案。所有你需要的都可以进行搜索查询。
谷歌 (搜索引擎, 而不是谷歌公司) 只是聪明,不是智能。它适用于关键字。因此, 为了获得最佳答案,你需要知道如何以巧妙的方式向google提问。为此, 学习SEO(译者注:搜索引擎优化) 基础知识。这这将使您能够像Google一样思考,从而提高您的搜索技能。