专栏名称: 生信媛
生信媛,从1人分享,到8人同行。坚持分享生信入门方法与课程,持续记录生信相关的分析pipeline, python和R在生物信息学中的利用。内容涵盖服务器使用、基因组转录组分析以及群体遗传。
目录
相关文章推荐
51好读  ›  专栏  ›  生信媛

编程到底应该如何学?

生信媛  · 公众号  · 生物  · 2020-01-30 21:24

正文

请到「今天看啥」查看全文




如果我们要教别人学习编程,我们应该如何教别人呢?从别人写书的逻辑中,我看到了下面2种思路

第一种,先教别人的编程语言,然后教别人用代码解决实际问题

第二种,从实际问题出发,解释代码的含义,代码是如何解决问题

对于 第一种 而言,我们可能要先学很多基础知识,比如说变量,控制语句,函数等。等我们学完之后,却发现自己不知道如何如何能够用代码解决问题。

对于 第二种 而言,我们虽然敲完代码,把问题给解决了,但是由于对编程语言的基础知识不熟悉,所以我们都不知道为什么这些代码就能解决问题。

用造房子打个比方,第一种方法就是先告诉你各种材料的用法,然后再给你演示下如何用其中几个材料造房子。第二种就是给你先造好一个房子,然后告诉这个房子各个部位是用了什么材料,解释这些材料的用途。

那么问题来了,到底哪一种方法更好呢? 如果解决问题的能力是“道”,而用来解决问题的方法是“术“。 这个问题也就是问,我们应该先学“道”,还是先学“术“。

如果一味的学“道”,那么最后是自己好像懂了很多解题思路, 但实际上可能还是无法写代码解决自己的问题。如果一味的学“术“,结果可能不知道如何用学到的技术来解决自己的问题。

很久之前,我也很纠结,我应该先学技术,还是先学思想?但是,后来我发现这不是问题,这个问题主要是因为“看的太少,练的太少,而想的太多”。

2 年前我刚开始接触RNA-seq,看书都是似懂非懂(就是那本「RNA-seq best practice」)。 就跟段子写的一样,打开书,马冬梅,关上书,马什么梅? 打开书,马冬梅,关上书,什么冬梅? 考试,孙红雷。 直到某一次生物统计课后,我在回去的路上,突然感觉一切都连接在一起,整个大脑都兴奋了起来。而为什么会在那天下午会突然间明白了呢?主要是我已经在这个项目上折腾了差不多一个学期了,每当觉得自己好像会了,然后去练习,结果一个error教我做人,还好那个时候我也不做实验,让我能够反复练习。

因此,我们应该如何学习编程呢?无论是那条路,静下心来,起码给自己100个小时(也可能是更久)专注于学习和练习,那么你就会有一种顿悟的感觉。







请到「今天看啥」查看全文