这是我自己编程技能提升途径的总结,主要有以下三点:

  1. 业务驱动,修炼技能

  2. 合作需求,扩展技能

  3. 个人兴趣,不为金钱,只为快乐和创造



最近刚入职两个月, 同样从事的是生物信息分析, 之所以从事当前这个行业, 原因在于读大学时几乎大多数的专家, 高级知识分子都提出“21世纪是生命科学的世纪”, 于是当时读的是生物科学专业。


可是编程技能,在大学我掌握的只有C语言, 而且对于C语言的指针感到一片茫然, 当然这跟我当时读的专业几乎没有任何关系。

第一点我为什么要重新学一门语言-python

毕业后, 出于对编程的热爱, 我开始学习Python, 当然这是跟我研究生阶段的业务需求有关的, 对生物基因序列的批量分析迫使我必须掌握一门语言,“人生苦短, 我用python”, 在这个过程中,我渐渐明白,或许生物跟计算机的结合可以给自己带来巨大的职业发展空间。


我热爱编程, 我也喜欢python, 这也有养成了我的代码风格,遇到条件判断和循环语句必须要有代码缩进, 可是接下来的学习过程依旧是业务驱动的,由于科学分析方法需要用到统计模块, 我开始学习R,在这个过程中, 我掌握了R的入门技能,遇到不会的我就上网搜索,也及时从51cto里找到了很多我需要的学习材料,下载了Beginning R英文版,还有C程序设计语言(K&R)。


对Python和R基础的掌握,使我谋得了人生的第一份工作- 助理生物信息分析工程师,虽说薪水不高,但这是一个起点, 我会继续学习。


这是我学习编程的第一阶段,到后来我发现生物信息分析这个行业在国外已经发展了好久了, 高手已经很多,想要成为高手的道路依然遥远。


第二点为什么学习JAVA

现在是我的第二份工作 , 我的老板是个JAVA高手,他是懂技术的,而且也对我们这个工作组的业务十分精通,不得不说我很佩服他,要跟这个组里的成员交流技术, 我不得不开始学习JAVA。


 在这个过程中,个人感觉JAVA语法相对啰嗦, 一段可执行的代码必须要放在class里才可以执行, 只是我们老板的代码只用到了string和 string数组就几乎把我们的所有业务都解决了, 偶尔要做一些图形展示,也没有用到JAVA, 依旧用的是R, 所以我在JAVA里没有打算继续深入学习, 只掌握了ArrayList和HashMap 这两种数据类型的基本运用,而且老板也强调了,我们不需要太多高大上的,花里胡哨的东西,只要能把问题解决就可以了。


我也深刻的领悟到, 技术是为业务服务的,业务的量和复杂度决定了技术所能达到的高度。所以,我回头继续学习Python, 希望掌握一些基本的爬虫技术, 也许以后会用得上。


第三点为什么回头学习C

随着自己技能的提升, 一是想掌握一些计算机程序的基本原理,另外想挑战一些有难度的,所以我回头去看C语言的知识和文档,另外在工作的过程中也遇到了一些C语言的爱好者, 而且大家都说C语言的效率高, 我就试图用C语言解决自己工作中遇到的问题, 可是我发现这是相当难实现的, 我用python一个函数能实现的思路, 在C语言里不得不写很长很长,而且相对难以理解的代码, 或许是自己的技能还太粗浅, 写代码时也不注意注释, 后来真的不知道自己在写什么了。


所以我对自己学习C语言的定位就是, 纯粹为了兴趣,为了巩固基础技能,不为了业务量和速度的提升。


当然我也掌握了一些shell 和 Erlang, 想学习Erlang的初衷纯粹是为了并发编程,当时听说What‘s APP 这个应用的后台团队就是用Erlang语言实现的, 所以才去学习, 虽然只是学了两个星期,但是在后来还是用上了一点点。


个人感觉,每个人都应该掌握一点程序设计的思维, 因为跟不懂技术的人谈技术真心累啊, 另外技术的确是服务与业务的,我也忘了听哪位牛人说的了, 我一直谨记于心。也有很多大牛说过,很多时候, 用合适的语言去开发好的产品才是重要的。


我成长的路还有很远很远, 希望能继续在51cto学院,在这个博客向各位大牛学习。


我正在参与“51CTO学院三周年,我在学院不得不说的收获”征文活动,参与就有奖~你也来看看吧~ 周年庆  更多精彩活动敬请期待!

         活动地址: http://51edu.blog.51cto.com/8899635/1775394