生物信息之程序学习

作为本科学生物,后来转行生物信息的人,经常会被人问起,为啥学习生物信息了呢?这背后通常会带着一些困惑,生物信息分析好不好学?我读书的时候,实验室纯计算机出身的人员只占很小

作为本科学生物,后来转行生物信息的人,经常会被人问起,为啥学习生物信息了呢?这背后通常会带着一些困惑,生物信息分析好不好学?

我读书的时候,实验室纯计算机出身的人员只占很小比例,更多的是大学期间学生物的;特别的,有个做的挺好的师兄,本科是商科出身。从这来看,像我这样本科学生物转行生物信息还不算是有跨度的。这也从一个侧面说明,专业背景不是能否学好生信的决定因素。

想想自己大学开始自学生信的时候,可以说是一头雾水,只知道先学习编程,查了查资料,是要学习 perl语言,但是不知道要在什么地方写,怎么去运行。费了些劲,在windows上安装好perl,写个文本文件,改下后缀,发现文件的图标变成了perl的图标,双击就可以运行了,不会写命令行参数,不会输出重定向,一种傻呵呵的体验。

后来接触了Linux系统,体验到在终端输入命令的快意,才找到了编程的感觉。不过,深深印在脑海里的还是作为一个生信小白的时候,写一个程序不知道在哪写,在哪运行。看过不少的教程都默认学习者会打开终端,会使用终端,会在终端运行命令。而我却是个例外,什么都不会。程序可以照着教程写下来,却不知道怎么运行。所以在我后来写python教程的时候(后台回复 python 可获取),第一部分就是介绍程序在哪儿写,在哪儿运行,怎么运行。(最开始学习perl,在研一时在QQ群一个同一大学学长的忽悠下,尝试了下python,那时有些编程基础,寒假在家看了遍《python简明教程》就可以写了,以后也就习惯了这个语言)。

我个人是个理解能力比较差的,尤其是在接触新的领域时,阅读不少教程,总觉得这些教程都是给有些基础的人写的,自己去学习时,需要多方尝试,多多综合,才能找到门路。为了方便自己学习,也为了记述学习过程,就开始写博客去记录,力争从一个小白的视角、从最基础的角度去写作,记述哪怕是最简单的一步操作,一个错误,提供一个近乎人人可以直接上手的教程 (比如虚拟系统Docker的使用教程和任务流控制管理的Airflow教程,这些文章被转载后,在同一平台相比于同类的教程阅读量多了10倍,我想这正是因为简单、可操作,为初学者接触这些工具提供了最大的便利)。

在初步知道程序语言怎么运行并能成功运行完示例后,就要系统地读一本简明教程;简明的教程不多见,因为一般的教程都涵盖的面比较广,而我们初期只需要关注最基本的就好 (所以我提取了我个人认为比较重要的基础内容,形成教程),可以找本经典书,请身边朋友划下重点,先从头到尾读一遍,不管理解多少,然后再读一遍。读不下去,就抄写一遍。最好的自学方式就是守住一本教材,一遍一遍地去读去熟悉,每看一遍都会有一些了解,从陌生到熟悉,慢慢就串起来了。然后就开始自己去写代码,代码就是我们思想的体现;我在教人写代码时,总会让他先描述下如果没有程序,我们自己是如何一步步的手动处理这个问题的,模拟的是程序运行的过程。理清一遍思路之后,怎么想的就怎么写,只要你敢写,就成功了。

当然这个时候一般会遇到初学者经常犯的错误,写完代码,觉得自己写的很对,但运行时却总是提示错误。绝大多数情况下,错误是我们自己写作的错误;起码在最开始时,要相信是自己的错误,不是程序语言设计的错误。错误的种类就这么几种,比如引号未配对、缩进不对、少了空格、文件名不对、变量名字不一致等。这时需仔细看屏幕提示的错误信息,在提示的错误行附近反复去查看。在之前的python教程和后续的文章中,都有或会提到经常出现的错误和解决办法。

能让程序提示的错误都算不上大的错误,而程序运行成功,不等同于程序的逻辑是对的,获得的结果是对的。程序是我们设计的,多数情况,我们对程序的输出结果是可以预估和判断的,不符合预期的结果是我们最应该慎重对待的。

在能独立写作程序后,一方面是学以致用,在解决问题中逐步学习;这时谷歌是你最好的帮手,把你遇到的错误或想解决的问题的关键字提取出,一键搜索,可以帮你解决大部分问题。另一方面,则是去学习别人的代码、学习初学时跳过的内容,利用社区中提供的优秀的模块或包来简化、加速自己的操作。入了门,就不需要像刚开始时,什么操作都自己去写了,俗语叫“自己造轮子”;可以用很多经验更丰富的开发人员做好的轮子解决我们的问题。

关于学习周期,如果能静下心去学习的话,1个月的时间是足够的。如果不时还能有人给你点播,2-3周就差不多了。关键的关键是去背、去抄,书读百遍其义自见。

生信宝典至今除了写文章,也能提供些帮助。


程序学习心得

生物信息之程序学习

Linux 学习

Linux学习-文件和目录

Linux学习-文件操作

Linux学习 - 文件内容操作(1)

Linux学习 - 管道、标准输入输出

Linux学习-常见错误和快捷操作

Linux学习-环境变量和可执行属性

Linux学习-文件排序和FASTA文件操作

Linux服务器数据定期同步和备份方式

查看服务器配置信息

ssh免密码登录远程服务器

R绘图学习

R语言学习 - 入门环境Rstudio

R语言学习 - 入门环境Rstudio

R语言学习 - 热图绘制 (heatmap)

R语言学习 - 基础概念和矩阵操作

R语言学习 - 热图美化

R语言学习 - 热图简化

Python学习

Pandas,让Python像R一样处理数据,但快

Python学习极简教程 (一)

Python学习教程(二)

Python学习教程(三)

Python学习教程 (四)

Python学习教程(五)

Python学习教程 (六)

生信傻瓜

生信宝典之傻瓜式 (一) 如何提取指定位置的基因组序列

生信宝典之傻瓜式 (二) 如何快速查找指定基因的调控网络

生信宝典之傻瓜式 (三) 我的基因在哪里发光 - 如何查找基因在发表研究中的表达

生信人写程序

生信人写程序1. Perl语言模板及配置

生信人写程序2. Editplus添加Perl, Shell, R, markdown模板和语法高亮

NGS软件

测序数据可视化 (一)

测序数据可视化 (二)- IGV

测序数据可视化 (三) - UCSC genomebrowser

测序数据可视化 (四)- Epigenomebrowser

Cytoscape教程(一)

RepeatMasker安装和使用

Rfam 12.0+本地使用 (最新版教程)

测序文章数据上传找哪里

轻松绘制各种Venn图

ETE构建、绘制进化树

分子对接

来一场蛋白和小分子的风花雪月

不是原配也可以-对接非原生配体

简单可视化-送你一双发现美的眼睛

你需要知道的那些前奏

其它

用了Docker,妈妈再也不担心我的软件安装了 - 基础篇

参考文献中杂志名字格式混乱问题一次解决


转自:生信宝典
  • 发表于 2018-08-27 20:18
  • 阅读 ( 1663 )
  • 分类:编程语言

0 条评论

请先 登录 后评论
不写代码的码农
shengxinbaodian

16 篇文章

作家榜 »

  1. 祝让飞 117 文章
  2. 柚子 91 文章
  3. 刘永鑫 64 文章
  4. 生信分析流 52 文章
  5. SXR 44 文章
  6. 张海伦 31 文章
  7. 爽儿 25 文章
  8. shengxinbaodian 16 文章