21CTO导读:本文介绍了初学者学习编程时的心态和实践方法,对新手有用,对形成一些路径依赖的老手同样有价值。
如果你刚刚开始编码之旅,那么可能需要你很用心用力的努力,每个人都从初学者时经历过,那是一段较长的艰难时期。
编程并不容易,初学者会常常犯错误。也就是今天我列出初学程序员常犯的十个错误。通过了解这些内容,可以更好的提高我们编程的水平。
为了能够真正帮到读者,我们先来看错误和可能的解决方案。
在我作为初学者的经历(我仍然认为自己是个初学者)中,看到了一些不断重复的模式和经常遇到的挫折。
当你阅读完这些清单列表后,相信可以轻松的决定哪些错误需要关注并一一解决它。
1、你的态度
我们是人类,心理其实很脆弱。我们还常常高估我们的能力与才学。
几乎所有人都经历这个时期。编码在一开始时都挺有趣,这时候我们能有很多资源来搞定它。
这确实是一个令人愉快的开头,似乎好多事并没有那么多挑战。加上互联网的很多资源,对初学者来说很友善,前面编程都非常愉快,这会让人产生飘飘然,似乎自己是全能一样。
这种态度会让我们在学习中放缓脚步。要想摆脱这种思维,你应该探索更多有挑战的事情。你可以做的第一件事是在GitHub上搜索复杂的项目,你会发现要建立一个像样的项目需要多少努力和知识。
与同龄人交流他们的经历,可以帮助你了解程序员成长要经历的学习曲线。
当你开始编程之旅时,我并不反对“感觉良好”,但是:“勿以浮沙筑平台”——坚持脚踏实地的学习任何知识,尤其是编程,这是最佳的打开方式。
2、怀疑 - 我能做到吗?
以“知道所有的态度”为出发点,这是初学者放慢学习过程的另一个原因。
这一次初学者的杀手是“怀疑”。
编程从来都不容易,如果再加上怀疑可能会另一个极端。这可能会让你很快的下结论,自己不适合编程。
做什么行业都会遇到困难,只有勇气才能解决问题。计算机科学技术更是解决问题的领域,如果你开始怀疑自己,那你怎么能够解决计算机的问题。
这类似于帮助别人,去爱,去帮助我们需要帮助和自己爱的人。
克服怀疑综合症是的最好方法是获得社区的帮助,寻找与你同级别的朋友。还可以去看励志电影,做有信仰的人。
请永远记住,失败永远是成功的第一步。
3、不一致的代码写作风格
对于初学者来说,编码不一致的情况很常见。我们应该从一开始就要强制自己写结构良好的代码,比如适当的代码缩进,比如用于变量名的CamelCase驼峰规则,适当的备注等。
初学者同学会随时的用小写或大写变量名,整个代码看起来会很混乱。一致性的代码风格概念非常重要,也对其它同事查看代码会更清晰方便。
经验表明,一致性可以提高生产力,建议你使用IDE进行编码,确保变量名在声明后,使用时自动提示一致。
请永远记住,我们是为其他人编码,而不是给机器。运维工程师或其他工程师会读你在工作中的每一段代码,一致性会帮助到大家。
4、更大更好的函数?- 并不是
复杂性让我们相信我们聪明,与别人与众不同。根据Einstien的说法,复杂性对许多人来说非常有益,但找到简单的方法总是更好。
初学者往往对一个功能写出数百行的代码。如果功能很大,就会很难调试和维护,如果出现Bug,会出现整夜寻找修复错误的故事。
解决方案是,我们把它分解成小且易读的函数。没有一个人喜欢复杂,如果代码可读性良好,你会发现代码调试起来会更容易。还有一个非常神秘的故事,第一次编译都不会出错。
一个很好的例子是“用自然语言写程序”。在这种情况下,英语能力就非常需要了。如果我用写英文来写文章,不将内容分成段落,那么阅读和理解就会非常困难。
简单永远胜过复杂,它让我们更好的编写易于维护和调试的程序代码。
5、不好的函数和变量名 - 我们是为人类而编码
随着讨论函数,我们很自然的遵循同样的思路。函数非常有用,它用来创建一个逻辑块,然后用来复用来创建可用的应用程序。
如果函数的名字起得更有意义,看起来会更棒,感觉更好。
如下代码:
DoesXThing() {}
do_something()
}
这个函数名是告诉自己和未来维护的人,这个函数用来做什么的。当然,这并不需要你写一个长达100个字的函数名。
比如,使用ToCalculateTheMeanOfTheSumOfEpicNumbers() 这样的名字是没有用的。它会让其他维护的人和你一样困惑。
一个更适合的函数名称是MeanSum()。
现在,我们遇到了关于变量名的思索。变量名和函数名与你正在使用的编程语言有关,还有一些语言不允许使用下划线或数字开始作为变量或函数名称。
另一方面,为了提高可读性,起一个简短的变量名称,通过名称给阅读者提供尽可能多的信息。
最近,我一直活跃在HackerRank来解决一些简单问题。以下是我的一些代码,是用来解决服务通道问题而写的。
//calulating the largest vechile
def find_vehicle(entrypoint,exitpoint):
the_final_array = arr[entrypoint:exitpoint+1]
the_largest = 3
for each in the_final_array:
if each
the_largest = each
return the_largest
//taking input
length, testcases = input().split()
length, testcases = int(length), int(testcases)
arr = list(map(int,input().split()))
for i in range(0,testcases):
entrypoint, exitpoint = input().split()
entrypoint, exitpoint = int(entrypoint), int(exitpoint)
res = find_vehicle(entrypoint, exitpoint)
print (res)nd_vehicle(entrypoint, exitpoint)
print (res)
如果你能阅读出问题,并且知道如何解决问题的,那么很多想法都会自然而然地提供给你,这便是良好代码的写法。(也欢迎各位点评更多好代码的建议)
6、注释与过度注释
像硬币总有两面一样,对于我们日常生活中遇到的许多想法、概念或行为来说,都是如此。
注释如果写得好,对于自己和看代码的同学都是非常有益的。但是还有两号人不这样对待自己写的代码。
第一种是根本不写注释,另一种写注释,但一写就写大坨。
这两个类型都挺糟糕,需要做个补充。代码注释可以有效快速理解,以自然语言的方式将信息传递给读者。另一方面,太多的注释,可能会变得不必要的复杂。
在注释中轻微的用一些幽默段子是可行的,但是不建议你写一篇小作文(除非特别特别需要)
7、半瓶水的知识
初学者们往往无法全部利用编程语言的力量。编程语言几乎都配备了全部的工具和技术,初学者每天至少学习一个新概念,将对你驾驭编程语言更富有成效。
另外,掌握一门编程语言需要一段时间,需要长时间坚持用一门编程语言会更有效果。其实最重要的是,开发一个有价值的好项目可以帮助你获得编程语言更完整的知识。
8、记住备份
一个朋友最近来我家,问我如何恢复丢失的数据。诚然,有一些方法可以恢复丢失的工作,但大多没有备份方面的支持。
电脑会出现故障,硬盘会损坏,我们工作时也可能误操作。确保我们保持安全工作的最佳方式是:定期备份(两天一备份或使用GitHub)。
比如我们使用DropBox或者其它云盘,我们随时可以拖放上传到云端,随时保存工作成果。
9、不用纸和笔
我是笔和纸的踏实粉丝。这是我20年来一直坚持使用的工作,它让我的大脑工作得更好。
使用笔和纸的真正优点是,让你在编码之前先思考如何解决问题。
很多的初学者在不了解细节的情况下就开始编码。那将是一场灾难,他们将非常容易损失时间和金钱,且没有任何重大的进展。
持续进行规划是真正的关键。在你在编辑器写代码之前,应该牢记如下基本事项:
1)理解问题需求和时限
第一个关键步骤是理解手头的问题。输入是什么,什么格式?期望什么样的输出?这个工作计划的时间限制是什么?这些问题需要在我们前进前解决掉。
2)数据结构的挑战
接下来,为你的问题选出一个最佳的数据结构。我现在的技术栈能够解决问题,或者更好的解决方案吗?我们要尝试从解决方案中寻找最佳的数据结构,这对解决方案的性能至关重要。
3)思考任何角度的测试用例
代码测试与代码编写同样重要。可以画一张思维导图或写出你能想到不同角度的测试用例列表。
4)思考自己代码的粗略工作草案
这种情况适合于我自己。我写得不是最优的代码,但它已经可以工作,并与解决方案非常接近。
5)将问题分解成小块可解决的问题
对于许多程序员来说,简单的小问题在头脑中就能完成。但是对于现实世界的问题则不一样了,需要彻底的计划。
现在,我们启动编辑器开始编码。
10、IDE或调试工具使用不当
调试也是编程的一个重要部分。它可以用手动完成或使用工具完成,工具会提供程序执行时出现无法使用的错误和其它重要信息。
使用调试工具或集成开发环境(IDE)可以改善我们编码和调试的效率,提高生产力的背后,是你和家人的满意。
小结
编程是一个帮助人们提高创意的有益工作。
但是大多数情况下,它会让不少人产生沮丧与失望的情绪。人人可能都经历过“我不是个做程序员的料”的想法,但如果你坚持下去,一步步的成功一定会给你充分且满意的回报。
今天,我们一起经历了初学者程序员会犯的十个错误。但是它并不完整,权当我抛砖引玉,希望各位同好分享你自己的好经验。
当我的一些朋友来问我,如何避免犯下这些常见错误时,我决定写下这篇文章。初学者最容易陷入这样的思维陷阱:他们往往认为自己正朝着正确的方向前进,浪费着大量时间来写烂代码和养成不良的编码习惯。
初学者以各种各样的方式来体验编程世界,很快的犯错是好事。快速的犯错可以在更短的时间内纠错,在提高工作效率的同时,它会使你成为一个更优秀的程序员。
最后,你认为本文写得是不是完整?欢迎在本文评论让大家知道。如果你觉得有价值,千万不要忘了与你的朋友一起分享。
分享爱。
作者:NITISH SINGH
编译:洛逸
来源:http://www.techaltair.com/10-mistakes-beginner-programmer-makes/
领取专属 10元无门槛券
私享最新 技术干货