我接触C语言是在研一的暑假时期,那会练习着写简单的小程序,比如判断质数,多项式相加之类的,算是在入门了。估计每个故事开始之前都是“hello world!”,对于我来说不仅仅是最简单的程序,更像是对世界的宣告:“我来了!”,所以也算是把它放在网站首页的原因吧。最初的输入输出,到条件判断和循环,一点点地感受自己的进步。后来觉得编程语言只是逻辑思维的载体,要想真正地体会程序的魅力之处,还是得去学习数据结构。链表,树,图,Hash,排序,DFS,BFS,Dijkstra最短路径以及动态规划,这些东西体现着人类的智慧,这应该是人类不会被人工智能取代的原因吧,人类不是只会“遍历”。这也是我一直比较崇尚的解决之道,比如说利用二进制来解决“三只老鼠,八个瓶子”的问题。
谈谈生信中用到的语言吧,C语言作为面向过程的编程语言,我比较喜欢它直观透明的逻辑方式。python,R 有着大量的安装包,使用起来比较方便,但对于其中某些函数,我并不了解其内部的工作方式,类似于电脑上的软件,不需要懂为什么,会用就行。C语言对于程序处理时,所需的时间空间复杂度较python低。除此之外,我在学数据结构的时候,都是以C语言作为载体,主要还是因为它的简洁和效率吧。python对于网页抓取,统计画图等有着很大的优势。外加上C语言作为其他语言的基础,很容易去学习别的语言,例如Java的语法与C基本无异。python,R等语言在实际操作时,经验比较重要,需要积累。说到应用于生信,最直接的一个感触就是,awk命令中处理函数的写法,基本上没差别。编程语言这东西,有这么一句话:“引而伸之,触类而长之”,都有它们的共同性,更重要的还是算法和数学。
前两天改的一个抢火车票的脚本,还挺有意思的。
我最初是做遗传分子实验的,在分析来自公司给的剪切位点突变与致病性的关系,最后发现没有相关性。然后决定自己分析,去找学院做生信的老师借服务器,自己处理外显子数据,最后发现确定的突变位置。还好自己学这些东西比较快,目前对于常见的二代测序分析,蛋白质组分析等,基本上都基于已有的生物信息软件,需要做的就是了解各个参数的作用,读懂自己的数据,更多的是与基础研究的结合。
说了这么多,还是感谢你能看这么多,希望考虑鸭!!!
对了这个页面仅你可见,只能直接访问( • ̀ω•́ )✧