尬聊系列之一---生信编程初学

出发点

大半年了,我没事就会在课题组内发一些脚本需求,希望通过这些需求来驱动课题组内成员的编程学习与提升,争取尽快能找到一个可以替代我的人。稍有进展,但仍不太快。转念一想,是否组内真的需要有能替代我的?故有此文。

学习生物信息到底要不要学编程

生物信息专业的朋友便无需考虑这个问题,毕竟是本行。而对于其他生物相关专业的朋友,事实上,不会有太少是不得不,更或者随大流地进去生信学习大军。到底需不需要学编程。我个人觉得,这一块的朋友在科研成果上,往往是干湿结合;那么如果侧重的是分析,则可能真的不得不学一些非常基础的;而如果侧重的是实验,则正好相反,需要做的可能是了解清楚并使用已有的工具,有必要的情况寻求科研或者商业合作。毕竟,每个人发挥擅长的,或许才是最有成效

编程要学到咋样?

目前市面上,各种生信N个任务,或者生信M个题目…我个人其实不感兴趣,毕竟我似乎没有认识的某某是通过刷这些题目而写一首好脚本的。相对而言,我觉得所谓的生信编程题目,最适合的并不是作为训练,而是作为测验,亦即,如果你会,那么你行;如果你不会,那么你需要更多的学习,而不是来刷题。
这似乎跟某些技能的日常应用和考试是一个逻辑。类比一下,你的六级考试666,然而你却说不好英语。
我个人觉得编程学习的逻辑应该是,了解一门语言,如果是第一门语言,应该是看经典的入门书(或者适合自己的入门书),刷书里面的题,随后再做一些带有自身需求的生信编程项目。这个说法似乎跟前述的生信N个任务或者M个题目有所矛盾。
其实没有。一本经典的编程入门书,往往是一版再版。后面的题之所以设置,事实上是带有训练意义,也往往是书本作者教学经验的归纳。相比之下,目前可见的生信N任务与N题,自然是有适合生信入门的朋友所需要的。但是否是合适的编程规范和思维形成,则并不说。
这也可以让我们看到存在部分公众号,为了某种商业化目的,其实本身初学并指示掌握了软件的使用,即推出各种绘图教程,如经典案例,某某用了Y叔的clusterprofiler,除了一个其实诡异的富集气泡图。对于真正要学习的人,到底是好是坏,更不谈各类培训班。有时候,我想想,到底是谁给你的自信?
看完书之后,要做些自身存在需求的或者课题组有需求的项目,而不是刷别人的题。我本身是做非模式生物较多的,所以并不是别人给的题目就适合自己的需要,更或者回事我们最终需要掌握。

编程的学习也需要一个正反馈过程

做自身有实际需求的项目 与 所谓刷题 ,所最大区别,事实上即是 完成之后的正反馈。
此点才是促进个人进步的最大动力。
想想为什么有些人会继续写博客,有些人会持续不断的开发新的工具,有些人会热衷论坛与公众号的运营,
一方面是兴趣(这点是扯淡的),更重要的是另一方面,存在一些持续的正反馈

那么我的想法

所以生物背景的朋友学习编程,我觉得需要确定的可能有:

  1. 到底需不需要学习

  2. 到底要学习到什么程度

  3. 找到兴趣或者放弃

  4. 看书,完成一些有趣的项目

  5. 完成一些自己有需求的项目(当然可以参考从一些生信M题),但最重要的还是从课题组出发

  6. 最后,还是自我定位 ==》 我与课题组的师妹聊过之后发现,她的定位很清晰,以后开展科研是要像现在课题组PI一样,那么其实,我给她在编程上的建议,大部分其实并不需要或者不合适的。

生信学习,其实真的不要相信任何人,应该相信自己,审视所有人的建议,包括这篇推。

再声明

  1. 本推文出发点就是……个人觉得有趣

  2. 本推文已尽可能地保证零基础的朋友能在windows下完全重现,但不保证每个人都能重现。毕竟我没有义务。所以最好不要针对本文的步骤向我提问(星球的朋友除外),近期赶课题,木有时间。

(另,个人时间和精力有限,大群可以学习交流,但我不一定会回复(也没有义务),直接私信我讨论交流的朋友,请先微信转账或附图支付宝转账-)。

参与讨论交流

(0)

相关推荐

  • 每日一题 剑指offer(反转列表)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 真人工智能招聘(微信群答疑)

    但实际情况是,我们的各个交流群仍然是充斥着"显而易见"的初学者问题,人工智能的出现并不能帮我们减轻工作量.而且我搞出来的群有点太多了,每一个ngs组学教学视频都免费在B站,就同步组 ...

  • 每日一题 剑指offer(二维数组中的查找)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 每日一题 剑指offer(合并两个排序列表)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...

  • 生信编程直播课程优秀学员学习心得及作业展示3

    学习感悟 首先说明一下,我不算是完全从0开始学习,因为生物的知识和python的语言之前都知道一点,但说实话,我的python距离真正的实践还差的很远,也没有常用所以基本忘完. 真的很感谢群主和老师们 ...

  • 高中生物水平考试合格演练测试16套习题

    高中生物水平考要不要刷题?答案是要刷一定要刷,要不然同学们背完知识点很容易做不上题目,这样知识点也是白背的.但是,并不像高考那样去大量的刷题,同学们只要做个十几套题目基本上就可以了. 下面这套题同学们 ...

  • 生信编程直播第11题:把文件内容按照染色体分开写出

    问题描述这个需求很常见,因为一般生物信息学数据比较大,比如sam,vcf,或者gtf,bed都是把所有染色体综合在一起的文件.如果想根据染色体把大文件拆分成小的文件呢?比如:ftp://ftp.ncb ...

  • 【高中生物】基础题100个“对”与“错”丨非常易混淆的知识点!

    相对其他科目而言相对简单,生物考取满分的几率比较高,从最近几年的高考题中可以看出,基础题目一直占据主要位置.所以不一定要选择难度较大的题目,但是一定要覆盖所有知识点,并实行地毯式.拉网式梳理,不放过任 ...

  • 生信编程直播第9题-根据指定染色体及坐标得到参考碱基

    还不知道怎么回事的先查看历史题目: 生信编程直播第0题-生信编程很简单! 生物信息学技能面试题(第1题)-人类基因组的外显子区域到底有多长 生物信息学技能面试题(第2题)-探索人类基因组序列 生物信息 ...

  • 每日一题 剑指offer(用两个栈实现队列)

    编程是很多偏计算机.人工智能领域必须掌握的一项技能,此编程能力在学习和工作中起着重要的作用.因此小白决定开辟一个新的板块"每日一题",通过每天一道编程题目来强化和锻炼自己的编程能力 ...