免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345
最近访问板块 发新帖
楼主: o枫叶o飘零
打印 上一主题 下一主题

[学习共享] 程序员,当你将两种语言混淆的时候,咋办? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2016-04-05 16:21 |只看该作者
哈哈哈,和我曾经的情况很相似啊,我的办法是,多练习,随着时间推移,慢慢就好了。

1.简述下你在工作中使用的多门语言以及应用的场景,(例:shell和 python,shell和perl,shell和php,或3p….)
        开始运维的时候,就用shell;后来工作顺后,利用空闲时间,自学了python,开始用部分python替代shell,是很不习惯,但慢慢习惯就好了,
2.如果在这些语言中找到平衡的方法,不至于在使用的时候搞混淆
        我一般情况是:
        如果增加部分功能,那原来用shell,就继续shell;原来python就python,如果是python2,如果没有涉及到2和3的package差别,我就升级到python3了
        如果是需要新写一些脚本,我尽量用python,感觉python应该是以后运维的主要方向了
3.对于新语言的快速掌握,有什么好的心得?
        多练习,多泡论坛,没是什么捷径,慢慢就习惯了
       
       
        以上,纯属个人愚见,不喜勿碰!

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
42 [报告]
发表于 2016-04-05 16:29 |只看该作者
1.简述下你在工作中使用的多门语言以及应用的场景,(例:shell和 python,shell和perl,shell和php,或3p….)
matlab仿真,C实现
shell/sed/awk搭建测试环境为测试C编程的电路板
shell/sed/awk做文本处理,为了给C、verilog。。。。。。产生代码
python:没用过,听说很好使,不过习惯了shell/sed/awk。
2.如果在这些语言中找到平衡的方法,不至于在使用的时候搞混淆
用多了就熟了,不太会混淆。出现混淆还是用的不熟,不过这没关系,时间一长,谁都会忘记,用的时候混淆了查一下手册,有的时候我可能会连C语言里memcpy的三个参数都说不清楚顺序,man一下就好啦。
3.对于新语言的快速掌握,有什么好的心得?
不要求了解新语言所有的特征,用好自己需要的即可。

论坛徽章:
0
43 [报告]
发表于 2016-04-05 18:17 |只看该作者
本帖最后由 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入手的,兴趣所在编过很多小程序,对编程有了理解后,再学习其他就容易很多。

在有了一定编程经验后,学新的语言的时候,一定要注意新语言的独特之处,特别是概念级的设计,学会用其特色概念进行思考。其实程序就是在编程者头脑中思考的体现。只有能用新语言思考,程序就容易看懂,也容易写了。

当然新语言的语法细节特色也很重要,细节决定成败;要有一定的调试程序的基础,这是需要训练得到的等等。

论坛徽章:
0
44 [报告]
发表于 2016-04-08 16:08 |只看该作者
就像有的时候就会忘记退出时用quit还是exit还是直接q,用错了就换一个用咯,反正基本错了就想起来了,嘻嘻~~


   

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
45 [报告]
发表于 2016-04-08 17:43 |只看该作者
恩  这个是重点 只要使用标准传统的语法 即使语言不同 也不会出现极易混淆的情况  老实的写就好了

bskay 发表于 2016-03-29 15:15
回复 1# o枫叶o飘零

论坛徽章:
12
射手座
日期:2014-10-02 11:31:29程序设计版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-27 06:20:00程序设计版块每日发帖之星
日期:2016-05-25 06:20:00每日论坛发贴之星
日期:2016-05-24 06:20:00程序设计版块每日发帖之星
日期:2016-05-24 06:20:0015-16赛季CBA联赛之深圳
日期:2016-05-23 15:33:59程序设计版块每日发帖之星
日期:2016-05-20 06:20:00程序设计版块每日发帖之星
日期:2016-04-26 06:20:00神斗士
日期:2015-12-03 09:27:3215-16赛季CBA联赛之八一
日期:2016-12-29 09:56:05
46 [报告]
发表于 2016-04-09 16:37 |只看该作者
1.简述下你在工作中使用的多门语言以及应用的场景,(例:shell和 python,shell和perl,shell和php,或3p….)

语言混淆太正常了 经常遇到呀

bash : 主要 用来写快速算法
python : 数据库查询必用的语言
go : 做网站爬虫
C, C++ : 绘图
awk : 博客网站
perl : 作过科学计算
java : 生物信息
javascript : 主要做数据分析
lua : 做二次开发
PHP : 作过科学计算
MatLab : 很方便的

嘻嘻~~ 只要老实的写就好了

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-03-15 17:09:4315-16赛季CBA联赛之新疆
日期:2016-04-18 14:21:37shanzhi
日期:2016-06-17 17:59:31
47 [报告]
发表于 2016-04-18 15:01 |只看该作者
好活动~~

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
48 [报告]
发表于 2016-05-04 21:29 |只看该作者
回复 1# o枫叶o飘零


   
1.简述下你在工作中使用的多门语言以及应用的场景,(例:shell和 python,shell和perl,shell和php,或3p….)
shell 主要用来批量处理数据
python,用的少,感觉运算速度上不去(别喷,菜鸟)
perl,用的最多了,非常适合处理数据,文本信息等
R,主要用来可视化,统计学分析等
awk,sed,。。。这些小工具语言也用的比较多,主要用来回答CU的问题

2.如果在这些语言中找到平衡的方法,不至于在使用的时候搞混淆
混淆是经常的是,特别是不是很熟悉的语言,还好有好男人(man)help


3.对于新语言的快速掌握,有什么好的心得?
多练多写,文档细读,中英文文档结合看

评分

参与人数 1信誉积分 +8 收起 理由
Hadron74 + 8

查看全部评分

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之福建
日期:2016-08-08 13:37:03
49 [报告]
发表于 2016-06-15 09:27 |只看该作者
本帖最后由 shenyue_sam 于 2016-06-15 09:27 编辑

1 工作中,web前、后台开发会用到jsp,js,java,
做运维需要写一些脚本,简单的用shell,复杂的用python,perl,有时还需要写点bat。

2 混淆各种语言的语法,这确实是个让人郁闷的事儿。尤其是【else if】,啥写法的都有。
前几年用perl比较多,后来python流行起来了就尽量用python,结果perl都忘差不多了,
遇到个用管道对文本做替换的需求,本来 COMMAND | perl -e 'xxx' 一行就能搞定的,偏偏想不起来怎么写了。
想用python吧,怎么把python脚本写在一行里啊

我认为还是要注意积累,保留一些示例程序,需要的时候翻出来改改就能用了。
还有就是记住各种语言获取联机帮助的方法。

3 学习新语言主要是了解这种语言能做什么,擅长做哪方面的事情。语法是小事。

论坛徽章:
3
15-16赛季CBA联赛之北控
日期:2016-06-06 21:01:08程序设计版块每日发帖之星
日期:2016-06-19 06:20:00程序设计版块每日发帖之星
日期:2016-07-17 06:20:00
50 [报告]
发表于 2016-06-16 15:32 |只看该作者
回复 48# yinyuemi


    ss,好流弊呀,懂这么多语言,佩服!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP