小云悄悄告诉生信小白的关于编程debug的知心话

小云当年在写代码的时候,有时候一个bug要找半天,真的,甚至有可能找一天都找不到。所以,为了让粉丝们别走小云的老路,在这里先教给大家一些基本功,然后再教给大家一个投机取巧的办法。
基本功如下:针对编程中的报错,一方面是看报错,另一方面是多输出过程数据。先确定问题所在,然后才能解决问题,这就是debug秘诀
看报错日志
把报错放到谷歌上去搜索,看看别人是不是都遇到了类似的问题,他们又是如何解决的。当然我不建议拿到一个解决方案,就马上去干。最好是先看那么七八个,然后综合判断一下,哪一个是最可能和自己的相似的。而且在众多解决方案中,你不要逮住一个就用,最好是选择那种阅读量比较高,可信度比较强的,大牛的解决方案。
输出过程数据
可以一行行输出,也可以分段输出,并且把这些输出打印到屏幕上或者是生成一个文件,查看这个文件和理论中自己想要的文件有什么区别?关注中间输出文件,从而寻找问题在哪一行代码产生。
有一个最好的理论就是单变量分析,也就是控制一个变量发生变化,然后看看是不是错误的产生原因,不要同时有两个变量,如果有两个变量,你就搞不清楚到底是哪个引起的错误了。
比如说我们改动一个数值,看看是不是会有问题,如果说改动之前没有问题,改动之后发生了问题,那么我们就找到问题所在了。记住, 你一次不要改很多,一次只改一个地方。
改了后,我们与正常运行的代码进行比较,寻找中间生成的数据不同之处,根据控制变量的理念,找到问题所在的代码。
好了,下面进入投投机取巧时间:
其实是写程序过程中,往往很容易陷入钻牛角尖,其实你自己看不出来,别人可能一眼就能看出,所以说你最好去找一个好朋友能够互相改代码。其实这个过程也是非常有意思的,大家在互相帮助的过程中得到了成长。那如果你有男朋友和女朋友能写代码,你让他给你直接修,甚至直接写。这个也是完全没有问题的。哈哈。
作为生物信息的入门级的专业人员,编程水平是一个基本功,如果你编程水平强大,有了想法和思路后,可能在半天之内就能够完成一个项目,但是如果你水平不行,可能你一个月都实现不了你的想法。在这里很多人是可以拉开差距的。这是我们能够做到的,也是应该做到的。
这里插一句,若是要成为生物信息学高手,不仅仅是需要的是编程。学霸们的数学,总是稳定在接近满分的程度,不管题目是难还是容易,但是学霸和学霸之间如果拉开差距靠的是语文和英语。但是我想咱们既然还是生信小白,是还在努力成为学霸的路上。我们能够做的就是努力把编程做的相当好,相当好。编程就是学霸们的数学,学霸的数学都是满分。若是你是生信小白,是不是也想成为学霸呢?那么你的编程是不是应该是满分呢?因为这是学霸们的基本功啊。
当你们不再是小白的时候,小云也就不会在这里啰嗦了。这个过程中也希望你不断的关注微信公众号,不断的去学习和成长。
若是不会写代码,但是想实现一些例如绘图,数据挖掘等功能,也可以找小云来定制代码。欢迎咨询。
