首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程初学开发者的十大误区

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/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180412G1T1V600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券