这一次我要真正学会C语言

不知道从什么时候开始,我的脑海里就植入了一个想法,“我要学会C语言”。虽然我在大学时学过C语言,还参加过C语言等级考试,但是我现在能写的代码也就是”hello world!”而已。你让我用C语言具体的完成一些事情,比如说读取一个FASTQ文件将其转成一个FASTA,我甚至都不会打开文件。

我买过很多C语言相关的书,比如下面这些

  • 笨方法学C语言
  • 啊哈C
  • C和指针
  • C专家编程
  • C陷阱和缺陷
  • C语言程序设计
  • C语言从入门到精通
  • C程序设计语言
  • C primer Plus

有些书太难,我看着看着就困了,有些书自我感觉太简单,我看着看着就无聊了,到最后我一本书都没有看完,每当处理数据的时候,还是掏出我的Python和R吧。

你说,Python库和R包,它不香吗?为啥要折腾地去学C语言,何苦呢,何必呢?

但是我还是不甘心,还是会去看C语言相关的书,忍不住点开bwa的源代码(然后自闭)。每次都感觉自己啥都没有学进去,但其实这些内容都在潜意识中不断的加工积累。终于在不久前,我有一种感觉,我站到了C语言的目前。

这感觉就像多年前我刚开始接触RNA-seq,看书都是似懂非懂(就是那本「RNA-seq best practice」)。就跟段子写的一样,打开书,马冬梅,关上书,马什么梅?打开书,马冬梅,关上书,什么冬梅?考试,孙红雷。直到某一次生物统计课后,我在回去的路上,突然感觉一切都连接在一起,整个大脑都兴奋了起来。那一天,我才感觉自己站到了生物信息学的大门前。

当然光看到门是不够的,我还需要不断强化这种知识的联结,最好的方式就是通过写作的方式倒闭自己输入。因此,我将会更新一系列和C语言有关的内容,把自己对C语言的理解写下来。

最后,不是所有人都需要学C语言。我学C语言是为了让自己心安,只不过在学习过程中,我开始思考如何编写更高效的Python和R代码,也能解决和C语言相关的报错(比如说段错误和编译失败)。

以下,是我本次学习C语言的一些计划

  • 掌握文件的读写
  • 彻底掌握指针
  • 学会对C语言代码进行调试
  • 学会使用结构体
  • 学会使用动态内存
  • 在实际项目中使用C语言编写小工具
  • 学习C语言库,包括不限于
  • 学习使用C处理生信数据
  • 学会使用多线程
  • 学会和R/Python进行交互