- 论坛徽章:
- 0
|
本帖最后由 Hadron74 于 2016-04-05 18:21 编辑
1.简述下你在工作中使用的多门语言以及应用的场景,(例:shell和 python,shell和perl,shell和php,或3p….)
我的编程工作主要集中在生物信息学和数据分析领域,多在pipeline搭建工作,也有数据分析平台的搭建,软件集成的工作很多,所以会遇到很多语言。
1)Shell, 把现有软件在数据上跑,必部可少的工具,主要用Bash,而awk/sed/grep/...等在简单数据分析时很方便的;
2)Python, 把多软件粘合在一起,进行数据分析Pandas,搭建简单的数据分析平台Django,绘图matplotlib...;
3) R, 数据统计包很多时,需要调用。
4)Perl, 以前的生物信息软件很多是它写的,有时需要改;曾用了6年,但逐渐用Python取代了。
5)Java,搭过一个网站,由于第一开发者用Java,临时学的做二次开发。
6)PHP,用它做了个wordpress的博客网站。
7)Javascript, JQuery, 做网站爬虫
8)MatLab, Mathematica等,作过科学计算。
9)C用来写快速算法,Fortran做科学计算。
10)SQL,数据库查询必用的语言。
11)VBA开发Excel宏工具。
2.如果在这些语言中找到平衡的方法,不至于在使用的时候搞混淆
记住所有语言的细节是不可能的,其实多语言的应用场景,至少有两种情况,要根据情况进行处理,才不易混:
第一是要自主开发,第二是二次开发。
要自主开发,必须有几门三板斧,比如我主要做数据分析,必须的是Shell,Python,R和SQL,这几门是要精通的,由于几门语言的优点集中在不同的方面,所以语法差异就很大,就不易混淆。
每个语言都有自己的特点,其基本语法和数据结构是一体的,在设计项目时取各自的优点时,其基本语法记请了,不要拘泥于取其短,实施就容易了。
比如,Python在处理流程控制、字符串处理等比R好,而R对Dataframe结构分析更方便,可以在设计流程时用Rpy2把两者联系起来,各显其能;
Python在单任务复杂处理上比shell好,而shell在文件管理上容易处理,也要在任务设计上各取所长;
这样的例子很多。
如此采用每个语言的特色设计任务,而不拘泥每个语言的所有细节,只利用该语言的特色部分,在应用时交集不多,就不易混淆了。
要二次开发,我们一般没有选择,只能用原来的语言。但是语言多是类似的,诸如流程控制、文件管理等都是类似的,就是语法不同而已。
好在是二次开发,只要找本入门的书,先要把基本的语言要素了解,再好好读读程序,边看边改,遇到问题用Google**。天下文章一大抄,解决问题就不难了。
3.对于新语言的快速掌握,有什么好的心得?
和有人总结的学习外语的经验是一致的。第一门外语是最难的,其实最难的是母语,很难想像母语都不好的人,能学好外语;编程语言也类似。
所以个人觉得没有捷径,一门精才能触类旁通。个人是从Basic/C/Fortran入手的,兴趣所在编过很多小程序,对编程有了理解后,再学习其他就容易很多。
在有了一定编程经验后,学新的语言的时候,一定要注意新语言的独特之处,特别是概念级的设计,学会用其特色概念进行思考。其实程序就是在编程者头脑中思考的体现。只有能用新语言思考,程序就容易看懂,也容易写了。
当然新语言的语法细节特色也很重要,细节决定成败;要有一定的调试程序的基础,这是需要训练得到的等等。 |
|